Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Apostrof kochany(Zjadanie apostrofu przez php)
Forum PHP.pl > Forum > Przedszkole
luke18dg
Witam, będzie krótko.
Osoby, które chcą napisać "addslashes" lub "mysql_real_escape_string". Proszę czytać dalej.
Chcę stworzyć zapytanie w którym będzie pobierał dane z bazy o danych właściwościach i porównywał czy jest taki sam użytkownik i hasło jak w php. Kochane php dba o moje zapytania i kasuje wszystkie możliwe znaki, które by mogły przejść ("" lub ''), sztuczka z \ nie działa. Wyświetla się tylko zawartość zmiennej, ale nie w apostrofach. Działam na localhoscie, więc możliwe że coś jest złego z php.ini. smile.gif

  1. $zapytanie_id=mysql_query('SELECT * FROM `uzytkownicy` WHERE((uzytkownicy.login="'.$login.'")&&(uzytkownicy.haslo="'.$haslo.'")) LIMIT 1')or die("a");
tolomei
Witaj.

Wartości tekstowe powinieneś obejmować apostrofami, a nie cudzysłowami.

Spróbuj tak:
  1. $zapytanie_id=mysql_query("SELECT * FROM `uzytkownicy` WHERE((uzytkownicy.login='".$login."')&&(uzytkownicy.haslo='".$haslo."')) LIMIT 1")or die("a");


Pozdrawiam.
mmmmmmm
@up - nieprawda.
@luke18dg - na wszelki wypadek `login` w grawisach, i wywal && a daj AND. Poza tym nie przekazuj "czystego" hasła. Potraktuj je np. MD5 - jest zarówno w PHP, jak i w MySQL-u.
luke18dg
Może to głupie, ale pewnie przez pożną godzinę miałem głupie błędy.
To co wysyłałem do bazy skopiowałem, ale to co wcześniej echowałem już nie zmieniłem, ale dziękuje za zainteresowanie. Co do MD5 słyszałem, żeby przynajmniej w takim formatowaniu to zapisywać, ale jak go zapisać w bazie? VARCHAR?

mysql_select_db('projekt', $połacz)||die();
Mam takie polecenie, jak można zrobić, żeby po poleceniu die wykonał dwie operacje?
Bodzimier
Cytat(luke18dg @ 31.01.2013, 23:22:18 ) *
(...)Co do MD5 słyszałem, żeby przynajmniej w takim formatowaniu to zapisywać, ale jak go zapisać w bazie? VARCHAR?

Tworzysz kolumnę varchar.
Następnie przy rejestracji wrzucasz do bazy hasło już zakodowane.
Przy logowaniu użytkownika, porównujesz hasła tj. hashujesz to co użytkownik podał i porównujesz do tego w bazie. Nigdy nie dekodujesz hasła do porównywania, a i nie przy każdej metodzie jest to nawet możliwe.

Tu poczytasz o bezpiecznym hashowaniu http://php.net/manual/en/faq.passwords.php
tolomei
Cytat(Bodzimier @ 1.02.2013, 09:07:07 ) *
Nigdy nie dekodujesz hasła do porównywania, a i nie przy każdej metodzie jest to nawet możliwe.


To jest nie możliwe.

Lepiej użyć SHA-256. MD5 jest niezalecane przez OWASP:

Cytat
MD5 and SHA-1 are common hashing algorithms used today. These algorithms are considered weak (see below) and are likely to be replaced after a process similar to the AES selection. New applications should consider using SHA-256 instead of these weaker algorithms.

(https://www.owasp.org/index.php/Guide_to_Cryptography)
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.