Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]Prośba o pomoc z mailem, Mam stary scrypt, ale ale... Nie działa?
KyrieAnn
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.01.2012

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


Hejo.
Już dwa razy korzystałam z pomocy tego forum i jestem bardzo zadowolona z Waszego wkładu, jednakże potrzebuję pomocy ponownie.
Co będę ściemniać, php nie znam a jak każdy w dobie kryzysu szukam oszczędności rolleyes.gif
A więc wspomniany skrypt:

  1. <?
  2. if ((isset($_GET['action'])) && ($_GET['action'] == 'change') && (isset($_GET['code'])) && (isset($_GET['login'])))
  3. {
  4. $login = chron($_GET['login']);
  5. $code = chron($_GET['code']);
  6. include('config.php');
  7. $valid = mysql_query('SELECT id FROM account WHERE ((login = "'.$login.'") AND (newpass_code = "'.$code.'"))');
  8. if (mysql_num_rows($valid) > 0)
  9. {
  10. $pass = rand(1000000,9999999);
  11. mysql_query('UPDATE account SET password = PASSWORD("'.$pass.'"), newpass_code = "", newpass_time = '.time().' WHERE ((login = "'.$login.'") AND (newpass_code = "'.$code.'"))');
  12. echo '<div style="width: 100%; text-align: center; color: green">Twoje nowe hasło to: <span style="color: yellow">'.$pass.'</span>. Należy je zmienic po zalogowaniu.</div>';
  13. }
  14. else echo '<div style="width: 100%; text-align: center; color: red">Błędny kod.</div>';
  15. }
  16. else if ((isset($_POST['wyslij'])) && ($_POST['wyslij'] == 'Potwierdź'))
  17. {
  18. $login = chron($_POST['login']);
  19. include('config.php');
  20. $user = mysql_query('SELECT newpass_time, real_name, email FROM account WHERE (login = "'.$login.'")');
  21. if (mysql_num_rows($user) > 0)
  22. {
  23. $userl = mysql_fetch_array($user);
  24. if ((time() - (int)$userl['newpass_time']) >= 3600)
  25. {
  26. $real_name = $userl['real_name'];
  27. $code = md5(time().$real_name.'******');
  28. mysql_query('UPDATE account SET newpass_code = "'.$code.'", newpass_time = '.time().' WHERE (login = "'.$login.'")');
  29.  
  30. require_once('Mail.php');
  31. $from = '****** <******@tonitrum.pl>';
  32. $to = '<'.$userl['email'].'>';
  33. $subject = 'Nowe hasło na ******.pl';
  34. $body = 'Witaj, '.$real_name.'.'.chr(13).chr(13).'Ze strony ******.pl zostało wysłane żądanie o zmianę hasła. Jeśli naprawdę chcesz dokonać zmiany hasła kliknij w poniższy link:.'.chr(13).chr(13).'http://******.pl/recover.php?action=change&login='.$login.'&code='.$code.chr(13).chr(13).chr(13).chr(13).'Pozdrowienia,'.chr(13).'Zespół ******'.chr(13).chr(13).chr(13).'Ta wiadomość została wygenerowana automatycznie. Prosimy na nią nie odpowiadać.';
  35.  
  36. $host = "******";
  37. $username = "******@tonitrum.pl";
  38. $password = "******";
  39. $headers = array (
  40. 'From' => $from,
  41. 'To' => $to,
  42. 'Subject' => $subject);
  43. $smtp = Mail::factory('smtp',
  44. 'host' => $host,
  45. 'auth' => true,
  46. 'username' => $username,
  47. 'password' => $password));
  48. $mail = $smtp->send($to, $headers, $body);
  49.  
  50. if (PEAR::isError($mail))
  51. {
  52. echo('<div style="width: 100%; text-align: center; color: red">Napotkano błąd podczas wysyłania maila. Błąd: ' . $mail->getMessage() . '</div>');
  53. }
  54. else
  55. {
  56. echo '<div style="width: 100%; text-align: center; color: green">Żądanie o zmianę hasła przyjęto. Sprawdź swoją skrzynkę pocztową.</div>';
  57. }
  58. }
  59. else echo '<div style="width: 100%; text-align: center; color: red">Żądanie o zmianę hasła można wysyłac co godzinę.</div>';
  60. }
  61. else echo '<div style="width: 100%; text-align: center; color: red">Podany login nie istnieje.</div>';
  62. }
  63.  
  64. ?>


A więc osoba A zapomniała hasełka (bywa) i wchodzi na stronę example.com/recover.php i wpisuje swój login.
Powinna otrzymać e-mail z nowym (?) jednak otrzymuje odpowiedź:

  1. Warning: mail() expects at least 3 parameters, 0 given in /var/www/2k12/Mail.php on line 7
  2.  
  3. Fatal error: Class 'Mail' not found in /var/www/2k12/lostpw.php on line 54


Oczywiste dla mnie jest to, że jest problem z Mail.php bo go nie mam. Nie wiem, czy jest sposób, który ominąłby ten pliczek.

Ciąg dalszy strony wygląda tak, żeby dało jasność:

  1. <font color=#7e7e7e face=sans-serif>
  2. <form method="POST">
  3. <center>Podaj swój login, a następnie potwierdź przyciskiem. Na podany podczas rejestracji adres e-mail zostanie wysłane nowe hasło. Będziesz mógł je zmienić po zalogowaniu.<br /><br />
  4. Login: <input type="text" value="Nazwa użytkownika..." name="login" id="login" onfocus='if (this.value == "Nazwa użytkownika...") this.value = "";' onblur='if (!this.value){ this.value = "Nazwa użytkownika..."; }' /><br /><br />
  5. <input type="submit" name="wyslij" id="wyslij" value="Potwierdź" /></center>
  6. </form>
  7. </font>


Z góry dziękuję Ludziom dobrego serduszka, którzy będą mieli chęci, aby poprawić te hieroglify tongue.gif

Nie wiem, czy to coś pomoże, ale tak wygląda dana tabela, do której skrypt ma się odwołać:

  1. CREATE TABLE `NewTable` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT ,
  3. `login` varchar(30) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '' ,
  4. `password` varchar(45) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '' ,
  5. `newpass_code` varchar(50) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
  6. `newpass_time` int(25) NOT NULL ,
  7. `real_name` varchar(16) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '' ,
  8. `social_id` varchar(13) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '' ,
  9. `email` varchar(64) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '' ,
  10. `phone1` varchar(16) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT NULL ,
  11. `phone2` varchar(16) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT NULL ,
  12. `address` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT NULL ,
  13. `zipcode` varchar(7) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '' ,
  14. `create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  15. `question1` varchar(48) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT NULL ,
  16. `answer1` varchar(48) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT NULL ,
  17. `question2` varchar(48) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT NULL ,
  18. `answer2` varchar(48) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT NULL ,
  19. `is_testor` tinyint(1) NOT NULL DEFAULT 0 ,
  20. `status` varchar(8) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT 'OK' ,
  21. `securitycode` varchar(192) CHARACTER SET ascii COLLATE ascii_general_ci NULL DEFAULT '' ,
  22. `newsletter` tinyint(1) NOT NULL DEFAULT 0 ,
  23. `empire` tinyint(4) NOT NULL DEFAULT 0 ,
  24. `name_checked` tinyint(1) NOT NULL DEFAULT 0 ,
  25. `availDt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  26. `mileage` int(11) NOT NULL DEFAULT 0 ,
  27. `cash` int(11) NOT NULL DEFAULT 0 ,
  28. `gold_expire` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  29. `silver_expire` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  30. `safebox_expire` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  31. `autoloot_expire` datetime NOT NULL DEFAULT '2013-12-12 23:59:59' ,
  32. `fish_mind_expire` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  33. `marriage_fast_expire` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  34. `money_drop_rate_expire` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  35. `ttl_cash` int(11) NOT NULL DEFAULT 0 ,
  36. `ttl_mileage` int(11) NOT NULL DEFAULT 0 ,
  37. `channel_company` varchar(30) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '' ,
  38. `coins` int(11) NOT NULL DEFAULT 0 ,
  39. `web_admin` int(1) NOT NULL DEFAULT 0 ,
  40. `web_ip` varchar(15) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
  41. `web_aktiviert` varchar(32) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
  42. `last_play` datetime NULL DEFAULT NULL ,
  43. `pos` varchar(20) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
  44. `isadmin` varchar(20) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
  45. `unban_time` int(25) NOT NULL ,
  46. `reason` varchar(150) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL ,
  47. PRIMARY KEY (`id`),
  48. UNIQUE INDEX `login` USING BTREE (`login`) ,
  49. INDEX `social_id` USING BTREE (`social_id`)
  50. )
  51. ENGINE=MyISAM
  52. DEFAULT CHARACTER SET=ascii COLLATE=ascii_general_ci
  53. AUTO_INCREMENT=6497
  54. CHECKSUM=0
  55. ROW_FORMAT=DYNAMIC
  56. DELAY_KEY_WRITE=0
  57. ;
  58.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Nie może znaleźć klasy: http://pear.php.net/package/Mail


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
KyrieAnn
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 29.01.2012

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


I nagle zaczęło działać. Dzięki za podpowiedź. Pozdrawiam.
Go to the top of the page
+Quote Post

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: 21.08.2025 - 22:42