Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt nie dodaje do bazy danych + bezpieczeńśtwo
Forum PHP.pl > Forum > PHP
filipsiu
Mam sobie taki kod:
  1. if(isset($_POST['ok'])) {
  2.  
  3. $date = date("Y-m-d");
  4. $hour = date("H:i");
  5. $nick = $_POST['nick'];
  6. $email = $_POST['email'];
  7. $smsCode = $_POST['smsCode'];
  8.  
  9. $handle =
  10. fopen('http://profitsms.pl/check.php?apiKey=8a33b544601c8468bc7efadeee08ddb0&code='.$_POST['smsCode'],'r');
  11. $status = fgets($handle,8);
  12. fclose($handle);
  13.  
  14. switch($status)
  15. {
  16. case 1:
  17. $zaptyanie = "INSERT INTO `kody` (`id`, `nick`, `email`, `kod`, `data`, `godzina` VALUES ('','$nick','$email',$smsCode','$date',''$hour')";
  18. mysql_query($zapytanie);
  19. echo 'Operacja przebiegła pomyślnie';
  20. break;
  21.  
  22. case 0:
  23. echo 'Wpisałeś zły kod sms';
  24. break;
  25. }
  26. }

połączenie omijam bo jest na 101% dobre, co w tym kodzie jest nie tak że nie dodaje do bazy rekordu ?
A 2 pytanie by nie robić nowego tematu co tutaj można zastosować by skrypt był bezpieczny ?
cv65
Ad2.
  1. $nick = $_POST['nick'];
  2. $email = $_POST['email'];
  3. $smsCode = $_POST['smsCode'];

Przefitruj te dane odpowiednio
Ad1.
Jakie błędy zwraca ?
markonix
Kod
$smsCode','$date',''$hour'

Pełno błędów składniowych.
Zamiast lecieć z tym problemem na forum wystarczy odpowiednio odebrać błąd mysql..
abort
1. w $zapytanie masz dwa "(", a tylko jeden ")".
2. pomiędzy `kody` a VALUES nie musisz specyfikować nazw pól (choć fakt, jak zrobisz, to widzisz jasno, co i jak dodajesz)
3. po co dwa apostrofy przed $hour?

Jak masz taki problem, to ZAWSZE przed "mysql_query($zapytanie);" wyświetl sobie tę zmienną (za pomocą echo). Zapewne sam często dojdziesz do rozsądnych wniosków.
filipsiu
w/w błędy były również lecz rażącym błędem z którym męczyłem się 3h była literówka
  1. $zaptyanie = "INSERT

a
  1. mysql_query($zapytanie);


to teraz coś na temat bezpieczeństwa wystarczy dać:

czy jeszcze weryfikacje email
filter_var($email, VALIDATE_EMAIL) ?
greycoffey
Cytat(filipsiu @ 8.08.2012, 09:04:35 ) *
w/w błędy były również lecz rażącym błędem z którym męczyłem się 3h była literówka

I takie są skutki braku wyświetlania błędów E_NOTICE. Gdybyś miał je włączone, odrazu dostałbyś informację typu "undefined variable".
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.