Conditionare
Last Updated: Jul 07 2011 13:52, Started by
Owidiu
, Jun 30 2011 21:42
·
0
#1
Posted 30 June 2011 - 21:42
Doresc sa pun o conditie pentru executarea scriptului.
Mai exact: conditia de autentificare. Cum terbuie sa procedez ? if(conditie nerespectata) header('Location: http://...'); sau if(conditie nerespectata) {header('Location: http://...')}else{ restul codului } Este vre-una dintre aceste variante buna ? |
#2
Posted 30 June 2011 - 21:48
A doua este mai buna. Tot timpul cand ai o conditie trebuie sa spui ce se face daca nu este adevarata. Daca tu afisezi si ai vreo eroare (ai un spatiu inainte de header()), vei primi o eroare si utilizatorul va vedea informatii la care nu ar trebui sa aiba acces.
|
#3
Posted 30 June 2011 - 21:51
Exista si alta modalitate pentru a pune codul de conditionare in alt fisier si apoi sa-l includ ?
|
#4
Posted 30 June 2011 - 23:09
#5
Posted 01 July 2011 - 01:17
OriginalCopy, on 1st July 2011, 00:09, said: Da. Îl pui într-un alt fișier și îl incluzi. Asta inseamna ca trebuie sa merg pe prima varianta ?: if(conditie nerespectata) header('Location: http://...'); |
#6
Posted 02 July 2011 - 15:30
daca pun if(conditie nerespectata) header('Location: http://...'); , tot executa scriptul
|
#7
Posted 02 July 2011 - 23:02
Sunt confuz.
Expune in cuvinte, problema ta, in 5-6 fraze sau propozitii ca sa stim ce ai avea nevoie si unde te-am putea ajuta. Din cate deduc tu inveti despre if/else si conditii? Oricum nu stiu ce sa zic, totusi impartaseste problema ta cu noi, in propozitii! |
#8
Posted 03 July 2011 - 15:11
Am un fiser add.php, care permite adaugarea de comentarii. Eu doresc sa pun o conditie [ if(!isset($_session['id'])) ] pentru a nu posta daca este neautentificat.
am incercat cu if(!isset($_SESSION['id'])) header('Location: http://www.site.ro/login.php'); Dar daca pun aceasta conditie, tot se pot adauga comentarii. Am ales sa varianta urmatoare, dar preferam ceva care sa fie inclus in alt fisier gen conditionare.php, sa nu amestec prea tare codul de pe pagina de adaugare. if(!isset($_SESSION['id'])){ header('location....'); }else{ //// /restul codului //// } |
#9
Posted 03 July 2011 - 19:44
1. Sper ca stii ca headerele se trimit inaintea oricarei afisari, da?
Poate de aici vine problema ta in prima varianta. 2. Ai putea face un fisier conditionare.php care sa contina: if(!isset($_SESSION['id'])){ header('Location: http://www.domain.tld/login.php'); } Iar in add.php zici: require 'cale/catre/conditionare.php' //rest of the code here |
#10
Posted 04 July 2011 - 07:25
Și ca să iasă frumos, trebuie să separi view logic de business logic. Altfel iese o varză, pe care probabil o vei petici cu output buffering.
|
|
#11
Posted 07 July 2011 - 13:06
Owidiu, on 3rd July 2011, 16:11, said: Am un fiser add.php, care permite adaugarea de comentarii. Eu doresc sa pun o conditie [ if(!isset($_session['id'])) ] pentru a nu posta daca este neautentificat. am incercat cu if(!isset($_SESSION['id'])) header('Location: http://www.site.ro/login.php'); Dar daca pun aceasta conditie, tot se pot adauga comentarii. Am ales sa varianta urmatoare, dar preferam ceva care sa fie inclus in alt fisier gen conditionare.php, sa nu amestec prea tare codul de pe pagina de adaugare. if(!isset($_SESSION['id'])){ header('location....'); }else{ //// /restul codului //// } Eu folosesc asa: if (!isset($_SESSION['name'])) { $url = URL . 'login.php'; ob_end_clean(); header("Location: $url"); exit(); } "else..." nu cred ca trebuie. Daca pui asa ceva in add.php, si nu este autentificat, nu poate sa acceseze pagina. |
#12
Posted 07 July 2011 - 13:23
inka333, on 7th July 2011, 14:06, said: Eu folosesc asa: if (!isset($_SESSION['name'])) { $url = URL . 'login.php'; ob_end_clean(); header("Location: $url"); exit(); } "else..." nu cred ca trebuie. Daca pui asa ceva in add.php, si nu este autentificat, nu poate sa acceseze pagina. Pt. asta s-a inventat separarea business logic de view logic. Un om recomanda intr-un fel(felul bun si de durata), altu' vine cu ceva mult mai scurt si rapid, dar calitate 0. Puneti intrebarea: ce va alege topic starter-ul? |
#13
Posted 07 July 2011 - 13:48
Paullik, on 7th July 2011, 14:23, said: Citeste te rog ce a zis OriginalCopy mai sus, sa faci asa ceva e bad practice. Pt. asta s-a inventat separarea business logic de view logic. Un om recomanda intr-un fel(felul bun si de durata), altu' vine cu ceva mult mai scurt si rapid, dar calitate 0. Puneti intrebarea: ce va alege topic starter-ul? Am citit, dar nu vad diferente prea mari intre ce ai scris tu si ce am scris eu... De ce nu poate sa includa si ce am scris intr-un fisier separat, daca asta e problema? Sau nu inteleg nici eu ce vrei sa zici, sunt destul de incepator si eu Mii de scuze dace am scris ceva prostie... btw, ce am scris este luat din cartea lui Larry Ullman, "PHP and MySQL for Dynamic Web Sites"... Edited by inka333, 07 July 2011 - 13:49. |
#14
Posted 07 July 2011 - 13:52
inka333, on 7th July 2011, 14:48, said: Am citit, dar nu vad diferente prea mari intre ce ai scris tu si ce am scris eu... De ce nu poate sa includa si ce am scris intr-un fisier separat, daca asta e problema? Sau nu inteleg nici eu ce vrei sa zici, sunt destul de incepator si eu Mii de scuze dace am scris ceva prostie... btw, ce am scris este luat din cartea lui Larry Ullman, "PHP and MySQL for Dynamic Web Sites"... Sunt doua concepte care te ajuta sa iti modularizezi codul, tocmai ca sa eviti folosirea output buffering-ului(nu stiu in ce sens e implicatia totusi ob->BL & VL sau invers, ideea e ca BL & Vl sunt good practice). http://forum.softped...howtopic=666017 Edited by Paullik, 07 July 2011 - 13:53. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users