Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
"Ciudatenii" control pasa...

Impamantare

Apple maps pe Windows 10

Sfarsitul woke-ismului si al core...
 Renovare completa + pompa de cald...

Libre Office nu vad liniile

Modalitați amuzante și ...

O disparitie de ani buni, Acces D...
 Mancarea e scumpa

Parere achiziționare BMW G20

Schimbarea bateriei moderne la VA...

Rostschreck Lidl
 Si noi suntem Florin Piersic? / J...

Rascumparare euroobligatiuni (pri...

Detartraj partial slatina

Cu ce pot izola fonic peretii pen...
 

Conditionare

- - - - -
  • Please log in to reply
13 replies to this topic

#1
Owidiu

Owidiu

    ***

  • Grup: Senior Members
  • Posts: 5,360
  • Înscris: 11.08.2008
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
neobluenet

neobluenet

    Member

  • Grup: Members
  • Posts: 489
  • Înscris: 13.08.2004
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
Owidiu

Owidiu

    ***

  • Grup: Senior Members
  • Posts: 5,360
  • Înscris: 11.08.2008
Exista si alta modalitate pentru a pune codul de conditionare in alt fisier si apoi sa-l includ ?

#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

 Owidiu, on 30th June 2011, 21:51, said:

Exista si alta modalitate pentru a pune codul de conditionare in alt fisier si apoi sa-l includ ?
Da. Îl pui într-un alt fișier și îl incluzi.

#5
Owidiu

Owidiu

    ***

  • Grup: Senior Members
  • Posts: 5,360
  • Înscris: 11.08.2008

 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
Owidiu

Owidiu

    ***

  • Grup: Senior Members
  • Posts: 5,360
  • Înscris: 11.08.2008
daca pun if(conditie nerespectata) header('Location: http://...'); , tot executa scriptul

#7
Paullik

Paullik

    Active Member

  • Grup: Members
  • Posts: 1,760
  • Înscris: 05.07.2008
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
Owidiu

Owidiu

    ***

  • Grup: Senior Members
  • Posts: 5,360
  • Înscris: 11.08.2008
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
Paullik

Paullik

    Active Member

  • Grup: Members
  • Posts: 1,760
  • Înscris: 05.07.2008
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
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Ș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. :nonobad:

#11
inka333

inka333

    Junior Member

  • Grup: Members
  • Posts: 129
  • Înscris: 08.11.2006

 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
Paullik

Paullik

    Active Member

  • Grup: Members
  • Posts: 1,760
  • Înscris: 05.07.2008

 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.
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?

#13
inka333

inka333

    Junior Member

  • Grup: Members
  • Posts: 129
  • Înscris: 08.11.2006

 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
Paullik

Paullik

    Active Member

  • Grup: Members
  • Posts: 1,760
  • Înscris: 05.07.2008

 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"...
In cazul asta documenteaza-te despre BL(business logic) respectiv VL(view logic).
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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate