Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błędne oznaczanie kodów
siusiak1000
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.07.2015

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


Witam,
mam pewien problem. Posiadam skrypt pobierania za sms i jest w nim jeden problem. Gdy ktoś wyśle sms to normalnie przychodzi do niego kod zwrotny, który musi wpisać na stronie. Lecz przy wpisywaniu od razu po zatwierdzeniu oznacza go jako błędy kod dostępu. Sprawdzając w bazie kod zostaje oznaczony jako wykorzystany. Najdziwniejsze jest to, że u większości wszystko działa poprawnie i można pobrać dany plik.


  1. function check_code($code)
  2. {
  3. $res = database_query("SELECT msg_id FROM messages WHERE msg_code = '$code'");
  4. if(database_error())
  5. {
  6. printf("ERROR\nProblem z baza danych podczas weryfikacji kodu:".database_error());
  7. }
  8. if(database_next_row($res))
  9. return false;
  10. return true;
  11. }



  1. //wygeneruj kod, sprawdz, czy jest unikalny.
  2. $code = code_generate($config_code_length);
  3. while(!check_code($code))
  4. $code = code_generate($config_code_length);
  5.  
  6. //zapisz kod, nowa wiadomosc w bazie danych
  7. database_query("INSERT INTO messages(msg_orig,msg_dest,msg_text,msg_code,msg_smsid,msg_code_value) VALUES ('$_sms_orig','$_sms_dest','$_sms_msg','$code',$_sms_id,".sms_value($_sms_dest).")");
  8. if(database_error())
  9. {
  10. printf("ERROR\r\nProblem z baza danych podczas zapisywania wiadomosci:".database_error());
  11. }


oraz plik codecheck.inc

  1. function code_check($_code)
  2. {
  3. $codeDate = date("Y-m-d H:i:s", strtotime("-30 days",time()));
  4. $res = database_query("SELECT * FROM messages WHERE msg_code = '".database_escape_string($_code)."' AND msg_tm > '".$codeDate."' AND msg_code_used IS NULL");
  5. if(database_error()) return false;
  6. $row = database_next_row($res);
  7. if(!$row)
  8. {
  9. return Array("code"=>-1, "value"=>0);
  10. }
  11. return Array("code"=>$row["msg_id"], "value"=> $row["msg_code_value"], "sms_text"=> $row["msg_text"]);
  12. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
siusiak1000
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 15.07.2015

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


W innym osobnym pliku.

Kod poniżej:

  1. //w wypadku bledu podlaczenia - blad fatalny
  2. if(!code_connect())
  3. $fatalerror = "Blad polaczenia z baza danych. System chwilowo niedostepny. Przepraszamy.";
  4.  
  5. if(isset($_POST["code"]))
  6. {
  7. //pobierz kod z zapytania HTTP
  8. $code = $_POST["code"];
  9. if(!isset($code) && strlen($code)>0)
  10. {
  11. $codeerror = "Bledny kod dostepu. (db)";
  12. }
  13. else
  14. {
  15. //sprawdz kod w bazie
  16. $coderes = code_check($code);
  17. if(!$coderes)
  18. {
  19. $fatalerror = "Blad polaczenia z baza danych. System chwilowo niedostepny. Przepraszamy. (sql)";
  20. }
  21. else
  22. {
  23. //jak identyfikator kodu mniejszy od zera, to kod jest bledny
  24.  
  25. if($coderes['code'] < 0 || $_POST['nr'] != trim(explode(".",$coderes['sms_text'])[1]) )
  26. {
  27. $codeerror = "Bledny kod dostepu.";
  28. }
  29. else
  30. {
  31. //poprawny kod. zapisz informacje w sesji i bazie
  32. code_mark($coderes["code"]);
  33.  
  34. //pobieranie pliku
  35. $filename = '../../ewydanianowyfolder/EwyDaniA/PliKIPeDeef/' . $_POST['file'];
  36. $fileinfo = pathinfo($filename);
  37. $sendname = $fileinfo['filename'] . '.' . strtoupper($fileinfo['extension']);
  38.  
  39. header('Content-Type: application/pdf');
  40. header("Content-Disposition: attachment; filename=\"$sendname\"");
  41. header('Content-Length: ' . filesize($filename));
  42. readfile($filename);
  43. }
  44. }
  45. }
  46. }



Dziwne to jest... Wcześniej na operze oznaczało mi kod jako użyty a teraz na chrome, firefoxie, operze, IE nie ma tego problemu, lecz inni użytkownicy dalej zgłaszają problemy...
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 09:06