Problema

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Avatar utilizator
andra2103
Junior Member
Mesaje: 35
Membru din: Mie Iul 02, 2008 9:17 pm

Problema

Mesajde andra2103 » Sâm Aug 06, 2011 6:52 pm

Buna ziua.

Va rog sa ma ajutati intr-o situatie, am 2 coduri php si o variabila i care as vrea sa functioneze astfel;

primul cod php (pag1.php)

<?php
$i=1;
?>


si al 2-lea cod php (pag2.php)

<?php
$i=$i+1;
if ($i=10){$i=1;};
echo $i."<br>";
?>

de pe pag1.php apelez pag2.php, variabila i vreau sa aiba valoarea 1 la intrare in pag2. Pe urma, de cate ori dau refresh la pag2 valoarea lui i creste cu 1 pana ajunge la 10 cand ii atribui din nou valoarea 1. Problema e ca la intrare in pag2 nu-mi recunoaste i-ul. Banuiesc ca variabila i trebuie declarata intr-un anume mod in pag1 ca sa poate fi preluata si in pag2. Cum fac ?
Sper ca am reusit sa ma fac inteleasa si sa ma puteti ajuta.

Va multumesc anticipat.



FCsernik
PHPRomania Supporter
Mesaje: 21
Membru din: Joi Iun 16, 2011 8:47 pm

Mesajde FCsernik » Sâm Aug 06, 2011 7:12 pm

Dar de ce vrei sa-l pasezi pe $i din prima pagina, de ce nu il declari in pagina cu numarul 2?

Si daca totusi vrei asta, il pasezi fie prin metoda POST sau GET in url.

Sonic3R
Average Member
Mesaje: 76
Membru din: Dum Dec 05, 2010 4:14 pm

Mesajde Sonic3R » Sâm Aug 06, 2011 7:14 pm

tu ai asa la pag1.php
<?php
$i=1;
?>


pune o functie include adica :
<?php
$i=1;
include('pag2.php');
?>

FCsernik
PHPRomania Supporter
Mesaje: 21
Membru din: Joi Iun 16, 2011 8:47 pm

Mesajde FCsernik » Sâm Aug 06, 2011 7:19 pm

And what's the point then?

Oricum, daca vrei sa numeri un refresh n-ai sa reusesti doar cu atat.
Scriptul se reexecuta la fiecare refresh, totul porneste de la 0.

O sa ai nevoie sa folosesti sesiuni in php si in felul asta ti-e mai usor si cu acel $i, care va fi o variabila de sesiune, accesibila unde vrei tu.

Avatar utilizator
andra2103
Junior Member
Mesaje: 35
Membru din: Mie Iul 02, 2008 9:17 pm

Mesajde andra2103 » Sâm Aug 06, 2011 7:28 pm

@Sonic3R ... nu contorizeaza i-ul, ramane tot pe valoarea 1.

de pe pag1 apelez pag2 printr-un buton, nu am mai intrat in amanunte sperand ca se intelege.

Sper sa inteleaga cineva ce vreau si sa ma ajute cu o solutie.

Avatar utilizator
andra2103
Junior Member
Mesaje: 35
Membru din: Mie Iul 02, 2008 9:17 pm

Mesajde andra2103 » Sâm Aug 06, 2011 7:32 pm

@FCsernik ... asta vreau, ca variabila i sa-mi fie accesibila oriunde. si ce trebuie sa folosesc $_session ? Ma ajuti, te rog, putin mai in detaliu.

Nsilviu
Average Member
Mesaje: 136
Membru din: Dum Dec 21, 2008 10:18 pm
Contact:

Mesajde Nsilviu » Sâm Aug 06, 2011 7:48 pm

ALT + F2
Scrii " Free the fish "
Apesi Enter.
Sistem de operare: Linux

Sonic3R
Average Member
Mesaje: 76
Membru din: Dum Dec 05, 2010 4:14 pm

Mesajde Sonic3R » Sâm Aug 06, 2011 7:49 pm

my bad

pai fa asa
<?php
session_start();
$i=1;
$_SESSION['numar']=$i;
?>

pag2.php
<?php
session_start();
if(isset($_SESSION['numar']))
{
$i=$_SESSION['numar'];
$i=$i+1; //sau poti folosi simplu $i++;
if ($i=10){$i=1;};
echo $i."<br>";
}
?>

Nsilviu
Average Member
Mesaje: 136
Membru din: Dum Dec 21, 2008 10:18 pm
Contact:

Mesajde Nsilviu » Sâm Aug 06, 2011 7:56 pm

Sonic3R
E gresit ce ii scrisasi tu in primul rand nu inclusasi pag1.php in pag2.php
Si apoi nu e bine pentru ca tu declari $_SESSION['numar'] incotinu = '1'
Incercal si ai sa vezi ce spun.
ALT + F2

Scrii " Free the fish "

Apesi Enter.

Sistem de operare: Linux

FCsernik
PHPRomania Supporter
Mesaje: 21
Membru din: Joi Iun 16, 2011 8:47 pm

Mesajde FCsernik » Sâm Aug 06, 2011 8:14 pm

Incepi sesiunea apeland session_start();
Trebuie sa apelezi functia la inceputul fiecarei pagini care vrei sa faca parte din sesiune.

In sesiune, este disponibila o variabila superglobala $_SESSION.

Aceasta variabila este un tablou asociativ.

Astfel, dupa ce ai creat sesiunea setezi $_SESSION['request_counter'] = 1; Aceasta variabila va fi cum accesibila oriunde ai session_start();, adica pe paginile care fac parte din sesiune.
Numele cheii il alegi tu, eu am ales request_counter pentru ca e mai sugestiv.

Pentru a iesi din sesiune apelezi session_destroy() si inainte, optional un session_unset() pentru a distruge toate variabilele legate de sesiunea respectiva.

Acum asta este baza, cauta si citeste mai mult despre sesiuni si putin HTTP, ca sa intelegi de ce avem defapt nevoie de sesiuni.

Spor!

Avatar utilizator
andra2103
Junior Member
Mesaje: 35
Membru din: Mie Iul 02, 2008 9:17 pm

Mesajde andra2103 » Sâm Aug 06, 2011 8:44 pm

Va multumesc tuturor pt ajutor. In principiu asta vroiam, incerc sa ma descurc singura in continuare. Daca e ceva mai revin ...


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 10 vizitatori