Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]problem z zapytaniami SQL
Forum PHP.pl > Forum > Przedszkole
$ledziu
Cześć!! wstydnis.gif
Mam taki problem. Otóż mam sobie taki kod (kawałek):

  1. <?php
  2. .
  3. .
  4. .
  5. $pytanie=$_REQUEST["pytanie0"];
  6. $baza=mysql_select_db("$wybor_bazy") or die ('<br>syf nie pozwolił wybrać bazy');
  7.  $rezultat=mysql_query("$pytanie") or die("nie wykonano zapytania");
  8.  echo "<b>$rezultat</b><br>";
  9.  while ($wynik5=mysql_fetch_array($rezultat,MYSQL_ASSOC))
  10. {
  11. var_dump($wynik5);
  12. echo "<br>";
  13. }
  14. .
  15. .
  16. .
  17. ?>


$pytanie pochodzi z tąd:
  1. .
  2. .
  3. .
  4. <form method=POST action=<? echo $_SERVER['PHP_SELF'] ?> >
  5. <table border=0>
  6. <tr><td>logowanie:</td><td>user: <input type=text name=user size=15> password: <input type=text name=password size=15></td></tr>
  7. <tr><td></td><td><input type=submit value="loguj"></tr>
  8. <tr><td>nazwa bazy:</td><td><input type=text name=nazwa_bazy bazy size=30></td></tr>
  9. <tr><td></td><td><input type=submit value="stwórz"> <input type=submit value="usuń"></tr>
  10. <tr><td>baza:</td><td><input type=text name=baza0 size=15></td></tr>
  11. <tr><td>pytanie:</td><td><input type=text name=pytanie0 size=50x50></td></tr>
  12. <tr><td></td><td><input type=submit value="wykonaj kod SQL"></tr>
  13. </form>
  14. .
  15. .
  16. .


wszystko łądnie działa dopóki w pytaniu SQL nie występuje koniecznośc użycia cudzyłowia lub dzyndzli blinksmiley.gif  . Przykładowo
  1. SELECT * FROM klienci;

hula guitar.gif
  1. SHOW TABLES;

hula guitar.gif . Ale jak już wpisze troche mocniejszy kodzik:
  1. SELECT imie FROM klienci WHERE imie='Ania';

to się sypie. plis help
xbigos
  1. $query = "SELECT `imie` FROM `klienci` WHERE `imie` = `Ania`";


Po co dawać zapytanie do bazy pobierz imię z tabeli klientów gdzie imię jest równe ANIA?
$ledziu
Pytanie nie brzmi poco(to tylko przykład) tylko dlaczego nie działa u mnie bo np w Query browser hula, a chodziło mi oto, iż problem jest z przekazywaniem cudzysłowiów (chyba). Bo jak widać próbowałem zrobić pseudo system zarządzania bazą danych. Wiele pytań SQL wykorzystuje znak ' lub " (zwłaszcza jesli tyczy się STRING ' ów ;D) i chciałem wiedzieć dlaczego w moim kodzie to nie hula??
blinksmiley.gif
Hazel
Zamiast cudzysłowów wpisuj ciąg \" albo \' . I poza tym to jest po prostu sql injection, problem przed którym trzeba się zabezpieczać, a nie tworzyć skrypty podatne na niego. Zakrawa trochę o hacking.
$ledziu
Dzięki Hazel....
No cóż ćwiczę czarodziej.gif
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.