Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Nie wysyla zapytan do bazy
andy1995
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.07.2012

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


Witam. Mam od wczoraj taki problem, moj skrypt nie wysyla do bazy wszystkich zapytan. Pobiera dane ale od wczoraj nie da sie nadpisac,dodac nowych.

  1. require "db_connect.php";
  2. connection();
  3. $email = $_POST['email'];
  4. $stopa = "Recovery - Advanced Hacking System";
  5. $randompass = rand(10000, 90000);
  6. $lostpassword = "UPDATE `logowanie` SET `haslo`='.$randompass.' WHERE `email`=".$_POST['email']."";
  7. $getnamelosspass = "SELECT `login` FROM `logowanie` WHERE `email`=".$_POST['email']."";
  8. $lostpass = mysql_query($lostpassword);
  9. $getnameloss = mysql_query($getnamelosspass);
  10. $odbiorca = $_POST['email'];
  11. $temat = "Lost password - new password";
  12. $wysylane = "Hello! You requested for new password then there you are!\n";
  13. $wysylane .= "Your login: ".$getnameloss."\n";
  14. $wysylane .= "Your new password: ".$randompass."\n\n";
  15. $wysylane .= "Regards,\nandy" ;
  16. if(isset($_SESSION['zalogowany'])) {
  17. sleep(0.5);
  18. header("Location: gethacked.php");
  19. }
  20. else
  21. {
  22. if(isset($_POST['wyslij'])) {
  23. if(($email)) {
  24. if(mysql_num_rows(mysql_query("SELECT email FROM logowanie WHERE email = '".$_POST['email']."' ")) > 0) {
  25. if(isset($lostpass))
  26. mail($odbiorca, $temat, $wysylane, $stopa);


Pozdrawiam wink.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Pomijając błędy SQL injection to jedyne nadpisanie które tu widzę to
  1. ...
  2. $lostpassword = "UPDATE `logowanie` SET `haslo`='.$randompass.' WHERE `email`=".$_POST['email']."";
  3. $lostpass = mysql_query($lostpassword);
  4. ...
Każde hasło oprócz losowej liczby będzie zawierało w Twoim wypadku również dwie kropki - na początku i na końcu. Dodatkowo w zapytaniu stringi (łańcuchy tekstowe) umieszczamy między apostrofami. Zrobiłeś tak ze zmienną $randompass, ale o $_POST['email'] już zapomniałeś smile.gif
Całośc (bez kropek w haśle) może wyglądać tak:
  1. $lostpassword = "UPDATE `logowanie` SET `haslo`='{$randompass}' WHERE `email`='{$_POST['email']}'";
Zaraz po tym masz drugie zapytanie gdzie też brakuje apostrofów.

PS. Do sleepowania mniej niż sekundę służy funkcja usleep.
PS 2. Na początku robisz $email = $_POST['email'], chwilę później $odbiorca = $_POST['email'], a w zapytaniach i tak używasz $_POST['email'] wink.gif


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 20.08.2025 - 22:33