Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Zmiennie w zapytaniu SQL
Forum PHP.pl > Forum > Przedszkole
-mobo-
Oto fragment kodu z mojego scryptu

  1. <?php
  2. if (!empty($_POST['wiadomosc']) && !empty($_POST['user_login']) ) {
  3. $login=$_POST['user_login'];
  4. $wiad=$_POST['wiadomosc'];
  5. $pytanie = "INSERT INTO `users` ( user_id , user_login , wiadomosc ) VALUES 
  6. (NULL , '$login', '$wiad')";
  7. ?>


I mój problem polegał na tym że jak chciałem bezpośrednio w zapytanie sql wstawić te dwie zmienne z $_POST to ciągle wywalało mi jakieś błędy składni a gdy utworzyłem sobie najpierw te dwie zmienne pomocnicze $login i $wiad to za ich pomocą już bez problemu wpisuje w SQL. I moje pytanie brzmi jak powinna wyglądać prawidłowa składnia jakbym chciał wstawić bezpośrednio te zmienne $_POST bez zmiennych pomocniczych. Pozdrawiam
webdice
  1. <?php
  2. $sql = "INSERT INTO `table` VALIES ('" . $POST['name'] . "')";
  3. ?>


Tylko licz się z tym ze jest to dość niebezpieczne, nie filtrujesz danych zapisywanych do bazy.
Shili
Niech Cię ręka boska broni przed wstawianiem otrzymanych zmiennych bezpośrednio do zapytania!
Poszukaj sobie o sql injection - trochę nie to co chciałeś co prawda, ale się przyda.

Nie wiem jak dla innych, dla mnie jest dużo lepiej, jeśli zmienne wyrzucam poza string.

  1. <?php
  2. $pytanie = "INSERT INTO `users` ( user_id , user_login , wiadomosc ) VALUES (NULL , ".$_POST['user_login'].", ".$_POST['wiadomosc'].")";
  3. ?>


Ale jak już pisałam - to coś jest podatne na ataki - osoba która się zna może usunąć Ci całą bazę danych!

@edit
Kurcze, znowu spóźniona tongue.gif
kallosz
  1. <?php
  2. $pytanie = "INSERT INTO `users` (user_login, wiadomosc) VALUES ('{$login}', '{$wiad}');";
  3. ?>
albo
  1. <?php
  2. $pytanie = "INSERT INTO `users` (user_login, wiadomosc) VALUES ('".$login."', '".$wiad."');";
  3. ?>
Maxik
Chyba, że na serwerze jest włączone gpc_magic_quotes smile.gif
Shili
@up
Właśnie niekoniecznie ^^
I przy magic quotes i addslashes też można narobić sporo zamieszania winksmiley.jpg
Maxik
Ciekawe jak skoro wszystkie przekazane zmienne są filtrowane i żadnego SQL nie da się wykonać. Jeśli znasz jakiś sposób to opisz mi to na PW :]
-mobo-
Dzieki za pomoc smile.gif Już sie nawet zarejestrowałem bo widzę że forum jest bardzo wartościowe.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.