Chestiune tip de date.

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Chestiune tip de date.

Mesajde Arein » Joi Noi 04, 2010 9:51 pm

Am codul asta:


<?php


$ing[1]=$_POST["ing1"]; if (!$ing[1]){$ing[1]="1";}
....
$ing[73]=$_POST["ing73"]; if (!$ing[73]){$ing[73]="1";}

$ingrediente = implode('9',$ing);
echo $ingrediente;


$result= mysql_query("INSERT INTO recipe1 (description) VALUES ($ingrediente)");

if ($result)
{
echo "<br>Conexiunea e reusita";

}
else
{
echo "<br>Conexiunea nu s-a facut";

}

?>
Sirul ingrediente e procesat exact cum trebuie.
E afisat asa :
1919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919192919291919191919191919191919191919191

insa in baza de date e introdus numai sirul :
99999999999999999999999999999999999999999999999999999999999999999

casuta e de tip text.

PLS, HELP!



Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Joi Noi 04, 2010 10:03 pm

ia da tu echo la query inainte sa il bagi in bd ca sa vezi exact ce contine acel query (la tot query nu doar la value)
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Mesajde Arein » Joi Noi 04, 2010 10:21 pm

adica
echo mysql_query("INSERT INTO recipe1 (description) VALUES ($ingrediente)"); ?

nu imi arata nimic, doar sirul $ingrediente

Thx pt raspuns operativ, daca imi dai un site de-al tau cu adsense dau vreo 10 click-uri :D

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

Mesajde nevvermind » Joi Noi 04, 2010 10:38 pm


Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Mesajde Arein » Joi Noi 04, 2010 10:46 pm


Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Mesajde Arein » Joi Noi 04, 2010 11:00 pm

Mai multe detalii.
$ingrediente = implode('simbol_x',$ing);

daca simbol_x e spatiu nu se inscrie nimic. daca e sir gol, adica
$ingrediente = implode('',$ing); se inscrie sirul, da' fara tagurile care imi trebuie :(.

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

Mesajde nevvermind » Joi Noi 04, 2010 11:02 pm


Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Mesajde Arein » Joi Noi 04, 2010 11:20 pm

nevvermind - iti multumesc din tot sufletu'

mai am o intrebare la tn :D

numele adminului din baza de date e sub variabila $adminbd
parola adminului din baza de date e sub variabila $passbd

alea pe care le introduce omu' sunt stocate in variabilele $admin si $pass

sintaxa e asta

if ($admin=$adminbd && $pass=$passbd)
{
............
}
else
{
echo "Ati introdus ceva incorect";
}

Daca un hacker introduce la admin - /*
si la parola - */ 1=1 || 1
reuseste sa intre ca admin?
pt ca v-a fi asa

if (/*=$adminbd && */ 1=1 || 1=$passbd)

si se logheaza.

eu ma bazam pe faptul ca variabilele nu sunt interpretate decat in ultima instanta si nu pot schimba codul, de aia nu am pus codul cu if.[/i]

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

Mesajde nevvermind » Joi Noi 04, 2010 11:49 pm


Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Mesajde Arein » Vin Noi 05, 2010 10:46 am

"eu ma bazam pe faptul ca variabilele nu sunt interpretate decat in ultima instanta si nu pot schimba codul"

Nu m-am exprimat clar. Am avut in vedere ca daca am variabila $and = '&&';

si in loc de && pun $and nu credeam ca merge.

Adica codul din variabile ar trebui sa fie ceva de mana a 2-a si sodul scris de mine ceva superior, care nu fac legatura.

Ca si in pascal/C

multumesc pt raspuns

cristi.md
PHPRomania Supporter
Mesaje: 11
Membru din: Sâm Noi 06, 2010 9:47 pm

Mesajde cristi.md » Dum Noi 07, 2010 12:08 am

tu in primul rand, cand prieiei valori din inputuri trebuie sa le cureti,

$var = mysql_real_escape_string($var); si te scapa de grija "hackerilor"

Tot timpul sa cureti variabilele inainte sa le folosesti in query-uri ptr bazele de date. !

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

Mesajde nevvermind » Dum Noi 07, 2010 10:09 am


Avatar utilizator
Sim Master
Average Member
Mesaje: 189
Membru din: Dum Aug 22, 2010 4:31 pm
Localitate: Timisoara
Contact:

Mesajde Sim Master » Dum Noi 07, 2010 12:02 pm


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

Mesajde nevvermind » Dum Noi 07, 2010 12:27 pm

:lol: Tu ma iei cu "daca"... Si daca query-ul e de forma "SELECT * FROM `users` WHERE `id` = $var " ? N-ar mai fi asa de inofensiv, nu? Asa putem continua la nesfarsit, inlocuind cu ce ne convine.

Da, multam, stiu si eu ca nu e valabil oriunde, dar actiunile preventive ale unui programator ar trebui sa scoata din ecuatie cat mai multe din acele "daca".

Dar daca hacker-ului i se strica hdd-ul? :roll:

cristi.md
PHPRomania Supporter
Mesaje: 11
Membru din: Sâm Noi 06, 2010 9:47 pm

Mesajde cristi.md » Dum Noi 07, 2010 7:30 pm

nevermind:

iti raspund asa cum ai scris..

daca $var = 99999 OR id > 0 ?
din start iti da eroare de cod; lipsesc ghilimele si ; la sfarsit de linie;

daca $var = "99999 OR id > 0" esti safe, hackerul nu intra; dupa cum sti, el trebuie sa-ti inchida ghilimelele de la $query, daca nu stiai, afli acum.

daca $var = "\" 9999 OR ID > 0 \"";

in acest caz mysql_real_escape_string, functia face exact ceea ce zice :), elimita tot ce trebuie astfel incat sa nu ai tu ghilimele prin "str";

daca nu poti dormi noaptea din cauza hackerilor;

faci o functie care sa prelucreze variabilele cu

trim()
stripcslashes ()
htmlentities()

sper sa-ti fie de folos.


Înapoi la “Cod PHP”

Cine este conectat

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