• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zapisywanie nazw zmiennych zamiast wartości sql

Object Storage Arubacloud
0 głosów
735 wizyt
pytanie zadane 28 września 2015 w SQL, bazy danych przez MrMock Bywalec (2,890 p.)

Witam po raz pierwszy i mam nadzieje nie ostatni ale przechodząc do pytania napotkałem na niewielki problem który przeszkadza mi w dalszym rozwoju a mianowicie wzorując się na logowaniu:

 

	$login = $_POST['login'];
	$haslo = $_POST['haslo'];
	$sql = 'SELECT * FROM logowanie WHERE login="$login" AND password="$haslo"';

tworze rejestracje

    $login = $_POST['login1'];
    $haslo = $_POST['haslo1'];
    $email = $_POST['email1'];
    $sql = 'INSERT INTO logowanie(Login,Password,email) VALUE ("$login","$haslo","$email")';
    $polaczenie->query($sql);

błąd polega na tym że dane zapisane w ten sposób zapisują dosłownie do bazy "$login" próbowałem bez cudzysłowów oraz ze znakiem ' a także bez niczego testowałem również czy prawidłowo pobiera dane wyświetlając je za pomocą echo sprawdzałem też kod zapytania sql i działa idealnie tak jakbym chciał by działał jedyny błąd to zapisywanie zmiennych dosłownie 

z góry dziękuje za pomoc 

 

1 odpowiedź

+1 głos
odpowiedź 28 września 2015 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 28 września 2015 przez MrMock
 
Najlepsza
$sql = "SELECT * FROM logowanie WHERE login='$login' AND password='$haslo'";
$sql = "INSERT INTO logowanie(Login,Password,email) VALUE ('$login','$haslo','$email')";

Tak będzie działać :)

Chociaż można zapisywać jeszcze inaczej np.:

$sql = "SELECT * FROM logowanie WHERE login='{$login}' AND password='{$haslo}'";

Albo

$sql = 'SELECT * FROM logowanie WHERE login="'.$login.'" AND password="'.$haslo.'"';

 

PS. Jeśli to rzeczywiście jest skrypt logowania/rejestracji to zapomniałeś o haszowaniu hasła, nie wspominając już o zabezpieczeniu przed sql injection.

komentarz 28 września 2015 przez MrMock Bywalec (2,890 p.)
dziękuje bardzo aż głupio że przez błędne notatki można stracić kilka godzin życia :)

oczywiście jest to kod tak okrojony jak tylko mogłem żeby znaleźć błąd jednak dziękuje za zainteresowanie tematem
komentarz 28 września 2015 przez Tnifey Pasjonat (24,190 p.)

Poczytaj o działaniu cudzysłowów :)

http://php.net/manual/en/language.operators.string.php

Po krótce:

$zmienna = "world";

echo 'Hello, $zmienna';
// wyświetli Hello, $zmienna

echo "Hello, $zmienna";
// wyświetli Hello, world
komentarz 28 września 2015 przez Arkadiusz Waluk Ekspert (287,950 p.)
Rozumiem, tak tylko dla pewności zwróciłem uwagę :)
komentarz 29 września 2015 przez event15 Szeryf (93,790 p.)

Warto nadmienić, że w chwili gdy nie zamierzamy wyświetlić jakiejkolwiek zmiennej to unikamy zapisu "tekst". Kiedy piszemy w podwójnych pazurkach to łańcuch znaków jest dodatkowo sprawdzany na wypadek obecności jakiejś zmiennej. Jeżeli tej zmiennej nie ma to dużo bardziej optymalne jest użycie pojedynczych cudzysłowów/apostrofów?

Przykład:

$zmienna = 1;
echo "Nazywam się Wacek"; // niepotrzebnie zostanie sprawdzone na obecność zmiennej, której i tak nie ma - nieoptymalne
echo "Super, wykryto {$zmienna} chmur na niebie"; // tutaj optymalnie

 

Podobne pytania

0 głosów
2 odpowiedzi 170 wizyt
pytanie zadane 27 lutego 2016 w C i C++ przez agre Użytkownik (550 p.)
0 głosów
3 odpowiedzi 287 wizyt
0 głosów
2 odpowiedzi 549 wizyt
pytanie zadane 23 stycznia 2019 w C i C++ przez thekibi27 Bywalec (2,110 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...