Tot transfer variabila intre coduri php ... Topic is solved

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

papaleon
Average Member
Mesaje: 87
Membru din: Dum Dec 27, 2015 11:26 pm

Tot transfer variabila intre coduri php ...

Mesajde papaleon » Mie Aug 24, 2016 4:42 pm

Am o pagina HTML din care apelez un cod "vezi_domenii.php" sub forma:

...linii pagina HTML ...
<?php
$_GET['domeniu'] = 1;
$_GET['sectiune'] = 1;
$_GET['optiune'] = 1;
$_GET['tip_client'] = 1;
include("/vezi_domenii.php");
?>
...linii pagina HTML ...

iar in acest cod "vezi_domenii.php", am un link

//vezi_domenii.php
</php
... linii de cod php ...
echo"<a href='.../inscriere_client.php'>Inregistreaza-te aici</a>";
...linii de cod php ...
?>

prin care doresc sa transfer variabilele $_GET['.........'] initiate mai inainte,
intr-un tabel din baza de date:

//inscriere_client
<?php
...........
// formular inserare date
echo"<form name=\"InscriereClient_form\" action=\"$_SERVER[PHP_SELF]\" method=\"POST\">
<p>Tip client: $domeniu</p><tr>
<p>Tip client: $sectiune</p><tr>
<p>Tip client: $optiune</p><tr>
<p>Tip client: $tip_client</p><tr>
<input type=\"text\" name=\"nume_client\" id=\"nume_client\" />
<input type=\"text\" name=\"prenume_client\" id=\"prenume_client\" />
...............................................
</form>";
//urmeaza codul de inserare date in tabelul clienti
...............................................
$sql = "insert into clienti values (null, $domeniu, $sectiune, $optiune, $tip_client, '$_POST[nume_client]', '$_POST[prenume_client]')";
...............................................
?>
Problema este ca nu pot transfera variabilele $_GET['......'] initiate in pagina HTML la codul "vezi_domenii.php",
la rutina "inscriere_client.php" pentru a le putea insera in tabelul din DB.
In primul cod "vezi_domenii.php" se initializeaza variabilele, dar la rularea linkului, in al doilea cod "inscriere_client.php"
nu se initializeaza variabilele definite mai inainte ....
Tot respectul, daca ma luati in consideratie !... TKS !



nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Tot transfer variabila intre coduri php ...

Mesajde nevvermind » Joi Aug 25, 2016 12:03 pm

$_GET e populat cu parametri din URL.

Poate ti-a scapat, dar URL-ul /script.php?a=1&b=2 va popula $_GET['a'] cu 1 si $_GET['b'] cu 2. Deci creeaza un astfel de URL.

Superglobala $_GET e accesibila din vezi_domenii.php.

PS: Fa-ti si tu textul mai lizibil, folosing tag-uri de cod. Nu mai scrie ca in notepad. Sau foloseste pastie.org pt un script mai mare.

PPS:

Cod: Selectaţi tot

$sql = "insert into clienti values (null, $domeniu, $sectiune, $optiune, $tip_client, '$_POST[nume_client]', '$_POST[prenume_client]')";

Tulai, doamne!
Omu, documenteaza-te despre "sql injection"[1], fiindca interogarea aia-i foarte periculoasa. Niste solutii/sugestii:
a) Foloseste PDO sau mysqli si prepared statements. E putin mai mult de scris, dar e mai bine.
b) Tu folosesti direct si orbeste valori care pot veni de la orice persoana de pe planeta asta. Nu suna bine, nu? Niciodata sa nu ai incredere in $_GET, $_POST, $_FILES sau din orice alta sursa externa.
Vorba ceea - sa programezi ca si cand utilizatorii aplicatiei tale are fi niste criminali sociopati.
c) http://stackoverflow.com/questions/6017 ... ion-in-php

[1] - Niste exemple: https://www.owasp.org/index.php/Testing_for_SQL_Injection_(OTG-INPVAL-005)
Ultima oară modificat Joi Aug 25, 2016 5:33 pm de către nevvermind, modificat 1 dată în total.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

papaleon
Average Member
Mesaje: 87
Membru din: Dum Dec 27, 2015 11:26 pm

Re: Tot transfer variabila intre coduri php ...

Mesajde papaleon » Joi Aug 25, 2016 1:11 pm

TKS ! nevvermind... de asemenea sfaturi aveam nevoie... sunt chestii pe care tutorialele nu le explica.
Stiu, folosesc mysqli, linia aceea era doar ca exemplu, iar variabilele $_GET si $_POST imi vin de la formular deci au o adresare corecta.
Intr-adevar , am editat pe notepad ...

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Tot transfer variabila intre coduri php ...

Mesajde nevvermind » Joi Aug 25, 2016 5:32 pm

papaleon scrie:$_GET si $_POST imi vin de la formular deci au o adresare corecta.

N-ai inteles. Valorile din GET si POST sunt scrise de diavoli care vor sa-ti fure sufletul si sa-ti distruga viata.
Trateaza orice input extern ca pe ceva periculos, nu fi naiv. Aplicatia-ti va fi hack-uita, iti vor ciordi baza de date, clientul te va da in judecata, vei da divort si vei ajunge pe strada. Evita toate astea folosind PDO/mysqli cu prepared statements.

Uite un "formular":

Cod: Selectaţi tot

curl -XGET -d '1' or '1' = '1' 'http:site-super-securizat.ro'

https://xkcd.com/327/
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

GeorgeValentin
PHPRomania Supporter
Mesaje: 16
Membru din: Mie Aug 03, 2016 11:33 pm

Re: Tot transfer variabila intre coduri php ...

Mesajde GeorgeValentin » Sâm Aug 27, 2016 8:34 am

totusi vezi cum iei datele alea, pt ca daca de ex cineva baga <b>1</b>, cand o sa afiseze aia, se va executa codul in html, ceea ce nu trebuie, asa poti baga xss-uri, deci cand bagi valori in baza de date de pe site, scrise de utilizatori, trebuie neaparat sa bagi un htmlescapestring si un escape string pt sql.

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Tot transfer variabila intre coduri php ...  Topic is solved

Mesajde nevvermind » Sâm Aug 27, 2016 11:48 am

GeorgeValentin scrie:totusi vezi cum iei datele alea, pt ca daca de ex cineva baga <b>1</b>, cand o sa afiseze aia, se va executa codul in html, ceea ce nu trebuie, asa poti baga xss-uri, deci cand bagi valori in baza de date de pe site, scrise de utilizatori, trebuie neaparat sa bagi un htmlescapestring si un escape string pt sql.


Daca folosesti prepared statements, nu mai exista problema unui escape al valorilor din SQL.

Si nu, nu-i o idee buna sa faci escape XSS la insertie, ci la afisare. In baza de date sa intre exact asa cum a vrut userul (mai putin injectarea sql), fiindca nu stii unde vei folosi acele date. Apoi afisare cu escape contextual, fiindca nu orice e HTML. Poate vrei comentarii JSON si tu deja ai facut escape HTML in DB.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/


Înapoi la “PHP Incepători”

Cine este conectat

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