Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]PHP przekazywanie getem
Forum PHP.pl > Forum > Przedszkole
Kmils21
Dlaczego mi to nie działa ?

(przesyłem getm adres email np 13123@qeqw.qwe)

$mail = $_get['mail'];

mysql_query("SELECT * FROM `maile` WHERE `mail` = '$mail');

Nie znajduje maila, który jest w bazie, a przez zapytanie w phpmyadmin go znajduje.

Czy to jest wina przesyłania przez get, i zmieniania @ na %40?

Jak to obejść?
Damonsson
urldecode czy tam rawurldecode

i sprawdź sobie co rzeczywiście zawiera zmienna $mail
Kmils21
kiedy wyświetlam echem zmienną $mail zawiera ona zgodny mail z tym, który podałem
Damonsson
To zrób mały test...

Dodaj w bazie danych maila: ABC

zamiast
  1. $mail = $_get['mail'];

daj
  1. $mail = 'ABC';


i zweryfikuj czy poprawne jest użycie słowa "nie znajduje" wink.gif
Kmils21
wtedy znajduje, nie znajduje jeżeli ciąg pobierany z $_GET zawiera '@'
Damonsson
Na moje powinno wyrzucić błąd

a po za tym co za różnica, czy ciąg to 'asdsdfsdf' czy 'asdasd@sadsdf'?

Coś kręcisz wink.gif
Kmils21
nic nie kręcę, może to wina typu danych w bazie? Mam zwykły TEXT.
Damonsson
To zrób sobie typu INT i prześlij jakąś liczbę, po co pytasz, jak samemu możesz to sprawdzić w 10 sekund.

Zresztą jak to
  1. mysql_query("SELECT * FROM `maile` WHERE `mail` = '$mail');

zapytanie wykonuje się poprawnie, tylko nie znajduje tych wartości gdzie jest "@" to ja nie mam kompetencji, żeby coś tu radzić.
Kmils21
Skoro narobiłem niewiadomych błędów, to myślę, że zrezygnuję z tego i odczytam każdy rekord kolejno i porównam je jakąś funkcją z php.
Damonsson
Ok jedźmy dalej

zamień

  1. mysql_query("SELECT * FROM `maile` WHERE `mail` = '$mail');


na

  1. mysql_query("SELECT * FROM `maile`);


Jaki wynik?
Kmils21
Dzięki za pomoc, ale szkoda mi czasu na to marnować więc użyję PHP
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.