[ deximat @ 12.07.2007. 01:23 ] @
Da li je moguce definisati neku varijablu da uzima informaciju iz forme, i tu varijablu upisati u bazu, ali ne kao varijablu nego kao vrednost iste?

[Ovu poruku je menjao deximat dana 12.07.2007. u 03:03 GMT+1]
[ Nemanja Avramović @ 12.07.2007. 08:32 ] @
Da. Evo i primera:

Code:

<?php
$vrednost = $_GET['promenljiva'];
@mysql_connect('localhost','root','') or die(mysql_error());
@mysql_selectdb('baza') or die(mysql_error());
@mysql_query("INSERT INTO tabela SET promenljiva = '$vrednost'") or die(mysql_error());
?>


Tabela (u bazi pod imenom "baza") treba da ima jednu kolonu sa nazivom "promenljiva" tipa recimo varchar(255) i onda pozivas stranicu sa strana.php?promenljiva=test (ili napraviš formu sa metodom slanja promenjivih postavljenu na "get"1) i u bazu bi trebalo da se upiše "test" (bez navodnika).
Naravno, ovo je samo kostur kako odraditi to, a ovde treba još da se poradi na sigurnosti podataka koji se unose. Ali je dovoljno za početak

1 - može i POST da se koristi, onda u PHP kodu moraš da koristiš $_POST niz za preuzimanje promenljivih
[ dimke7even @ 12.07.2007. 10:15 ] @
Obavezno filtriraj promenljivu pre upisa u bazu sa f-jom addslashes() ili necim drugim. Recimo za gornji primer:

$vrednost = addslashes($_GET["promenljiva"]);

ili nekako vec ali najcesce se koristi addslashes() ako unosiš tekst u bazu.
[ deximat @ 12.07.2007. 17:30 ] @
za cega sluzi ta filtracija?
[ Nemanja Avramović @ 12.07.2007. 19:09 ] @
Da ne bi dozvolio SQL injection. Ali to nije tema ovog threada.

offtopic: Ja radije koristim mysql_real_escape_string