Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:29