Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]problem z zapytaniami SQL, problem z cudzysłowiami
$ledziu
post 28.12.2007, 21:31:52
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.12.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
xbigos
post 28.12.2007, 21:38:55
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


  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?

Ten post edytował xbigos 28.12.2007, 21:40:19


--------------------
Go to the top of the page
+Quote Post
$ledziu
post 28.12.2007, 21:55:08
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.12.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Hazel
post 28.12.2007, 21:56:43
Post #4





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
$ledziu
post 28.12.2007, 22:02:34
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.12.2007

Ostrzeżenie: (0%)
-----


Dzięki Hazel....
No cóż ćwiczę czarodziej.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 11:54