Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry

[es] :: PHP :: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry

[ Pregleda: 2027 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

webjunior

Član broj: 301714
Poruke: 106
193.107.4.*



+4 Profil

icon Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry15.05.2012. u 09:49 - pre 145 meseci
core.inc.php --->
Code (php):

<?php
ob_start();
session_start();
$current_file = $_SERVER['SCRIPT_NAME'];// or SCRIPT_FILENAME
if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) {
     $http_referer = $_SERVER['HTTP_REFERER'];
}

function logovan_da_ne() {
     if (isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])) {
          return true;
     } else {
          return false;
     }
}

function daj_polja($field) {
$query = "SELECT `$field` FROM `korisnici` WHERE `id`='".$_SESSION['user_id']."'";
     if ($query_run = mysql_query($query)) {
          if ($query_result = mysql_result($query_run, 0, $field)) {
               return $query_result;
          }
     }
}
?>
 


connect.inc.php --->
Code (php):

<?php
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = 'lozinka';
$mysql_db = 'flydragon';

if (!mysql_connect($mysql_host, $mysql_user, $mysql_pass) || !mysql_select_db($mysql_db)) {
     die ('Nema konekcije sa serverom/bazom!');
} else {
     return true;
}
?>
 


index.php --->
Code (php):

<?php

require 'core.inc.php';
require 'connect.inc.php';

if (logovan_da_ne()) {
$nadimak = daj_polja('nadimak');
$email = daj_polja('email');
     echo 'Ulogovani ste, vaš nadimak je: '.$nadimak.', a vaš email je: '.$email.'. <a href="logout.php">Odjava</a>';
} else {
     include 'loginform.inc.php';
}
?>
 


loginform.inc.php --->
Code (php):

<?php
if (isset ($_POST['nadimak']) && ($_POST['lozinka'])){
     $nadimak = $_POST['nadimak'];
     $lozinka = $_POST['lozinka'];
     $lozinka_hash = md5($lozinka);    
     if (!empty ($nadimak) && !empty ($lozinka)) {
          $query = "SELECT `id` FROM `korisnici` WHERE `nadimak`='".mysql_real_escape_string($nadimak)."' AND `lozinka`='".mysql_real_escape_string($lozinka_hash)."'";
               if ($query_run = mysql_query($query)) {
                    $query_num_rows = mysql_num_rows($query_run);
                    if ($query_num_rows==0) {
                         echo 'Pogrešna kombinacija nadimak/lozinka';
                    } else if ($query_num_rows==1) {
                         $user_id = mysql_result ($query_run, 0, 'id');
                         $_SESSION['user_id'] = $user_id;
                         header('Location: index.php');
                    }
               }
     } else {
               echo 'Unesite nadimak i lozinku.';
       }
}
?>

<form action="<?php echo $current_file; ?>" method="POST">
Nadimak: <input type="text" name="nadimak"><br>
Lozinka: <input type="password" name="lozinka">
<input type="submit" value="Prijava">
</form>
 



Hocu da loginform.inc.php podelim na dva fajla : tako da kad se poziva iz indexa loginform.inc.php da se ucita samo forma bez php, a da se php skripta poziva kad se submituje forma. Probao sam da odvojim sa include, tako sam promenio imena fajla, ali mi ne radi, prikazuje gresku. Uradio sam to ovako:
u index.php sam promenio:
include 'loginform.tmp.php';

u loginform.tmp.php

sam smestio html formu a kao action sam stavio action="loginform.inc.php"

u loginform.inc.php sam stavio sav kod za akciju formi. Ali negde gresim...





 
Odgovor na temu

webjunior

Član broj: 301714
Poruke: 106
193.107.4.*



+4 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry15.05.2012. u 13:08 - pre 145 meseci
da, izgleda da ne moze bas totalno da se odvoji php od html. Sa html formom mora da ide i definisanje varijabli:
$nadimak=$_POST['nadimak']..
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry15.05.2012. u 14:58 - pre 145 meseci
Može skroz da se odvoji php od HTML-a.
Pre bilo kakvog HTML output-a obradiš sve informacije, zahteve, upite i smestiš ih u varijable, nizove itd. a posle ih prikazuješ.
Uglavnom se na taj način i prave template sistemi, framework-ovi itd. jer je takav pristup dosta fleksibilniji i brži.

Da bi napravio neki jednostavan sistem koji razdvaja php od HTML-a, potrebno je da prvo smisliš koncept kako bi to funkcionisalo. Na primer napraviš novi fajl post_zahtevi.php i tu obrađuješ sve $_POST varijable. Zatim upiti.php gde obrađuješ sve upite iz baze i smeštaš ih u niz (i kasnije prikazuješ u okviru HTML-a).
Na taj način se najbolje dinamički generišu php stranice.
To sve znači da pre bilo kakvog HTML koda (uključuje i onaj echo 'neka poruka'; ) napraviš sve obrade i provere, a posle ih prikazuješ u okviru HTML koda.

Recimo tvoja funkcija daj_polja() nije baš najbolje smišljena. Jednim upitom možeš dobiti sve potrebne informacije, a kod tebe se pravi upit za svako polje posebno i to svaki put kada je korisnik prijavljen. Možeš izmeniti skriptu tako da korisničko ime i email (po potrebi i ostale informacije) smeštiš u sesiju, a POST varijable obradiš ako je forma poslata ili ako je korisnik prijavljen/nije prijavljen.


I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry15.05.2012. u 15:09 - pre 145 meseci
A ako krećeš na sesije, juniore, evo ti ovaj sitan pdf, kao podsetnik.
about:networking
Prikačeni fajlovi
 
Odgovor na temu

webjunior

Član broj: 301714
Poruke: 106
193.107.4.*



+4 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry15.05.2012. u 17:07 - pre 145 meseci
hvala @plus_minus.

Odvojio sam html forme od php ali ih inkludujem zajedno kad mi treba, za logovanje, registraciju. Medjutim, sad pokusavam da se snadjem kako da mi se echo izlazi iz php skripti prikazuju u template a ne izvan. To je sto se tice mog rada.
A ovo o cemu pricas jos nisam savladao, to verovatno znaci rad sa klasama ili ne?

Evo recimo kako ovo da resim?

} else {
echo 'Poruka';
}

To mi se prikazuje izvan template. Kako poruku da smestim u varijablu?
mozda?


$poruka=' Neka greška';
...

} else{
return $poruka;
}

a u template da stavim na određeno mesto:

<?php if ($poruka !=NULL) echo $poruka; ?>

Moze?
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry15.05.2012. u 18:47 - pre 145 meseci
Ako $poruka već ima vrednost onda možeš da probaš i samo else {} baš tako, blanko.
Ako imaš jedno striktno if($poruka != "something||anything") nakon $poruka promenjive.
Kasnije tu gde ti je else, između, dodaš šta ti treba, onda kad ti treba.

Reurn bi ja upisivao unutar funkcija...
Rad sa sesijama ne mora da znači i da ćeš odmah morati i Oo da studiraš..
Dakle, samo hrabro.
Mic po mic.
about:networking
 
Odgovor na temu

webjunior

Član broj: 301714
Poruke: 106
193.107.4.*



+4 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry16.05.2012. u 07:04 - pre 145 meseci
Code (php):


<?php
if (isset ($_POST['nadimak']) && ($_POST['lozinka'])){
     $nadimak = $_POST['nadimak'];
     $lozinka = $_POST['lozinka'];
     $lozinka_hash = md5($lozinka);    
     if (!empty ($nadimak) && !empty ($lozinka)) {
          $query = "SELECT `id` FROM `korisnici` WHERE `nadimak`='".mysql_real_escape_string($nadimak)."' AND `lozinka`='".mysql_real_escape_string($lozinka_hash)."'";
               if ($query_run = mysql_query($query)) {
                    $query_num_rows = mysql_num_rows($query_run);
                    if ($query_num_rows==0) {
                         echo 'Pogrešna kombinacija nadimak/lozinka';
                    } else if ($query_num_rows==1) {
                         $user_id = mysql_result ($query_run, 0, 'id');
                         $_SESSION['user_id'] = $user_id;
                         header('Location: index.php');
                    }
               }
     } else {
               echo 'Unesite nadimak i lozinku.';
       }
}
?>
 


ovaj kod mi lose radi. Izbacuje mi: echo 'Unesite nadimak i lozinku.'; cim pristupim stranici, a kad je osvezim izgubi se poruka. Zatim mi ne prikazuje 'Pogrešna kombinacija nadimak/lozinka'; za sve slucajeve... a kad probam da se ulogujem sa praznim poljima ne prikazuje mi nikakvu gresku, kao da nisu prazna ???
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
77.243.20.*



+303 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry16.05.2012. u 08:13 - pre 145 meseci
Citat:
webjunior: da, izgleda da ne moze bas totalno da se odvoji php od html.
Pogledaj: http://www.elitesecurity.org/f139-Smarty-template-engine
 
Odgovor na temu

webjunior

Član broj: 301714
Poruke: 106
193.107.4.*



+4 Profil

icon Re: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry16.05.2012. u 13:50 - pre 145 meseci
evo sad sam skinuo smarty pa da vidim bas o cemu se radi...pojam nemam sta je to, nema ni 1 mb a toliko ga hvale :)
 
Odgovor na temu

[es] :: PHP :: Razdvajanje php i html kako u ovom slucaju? malo duzi post...sorry

[ Pregleda: 2027 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.