Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][MySQL][PHP]Problem Zmiana e-mailu profil konta z potwierdzeniem
Forum PHP.pl > Forum > Przedszkole
robert5555
Witam mam taki problem próbuje zrobić i skleić skrypt na zmianę e-mailu skrypt teoretycznie ma działać tak

Wchodzi sie w profil na stronie www

Klikasz Rozpocznij procedurę zmiany E-maila

Przychodzi ci na e-mail wiadomość taka http://wklej.to/w1jef

tylko problem jest w tym ze ten link co przyjdzie nie działa próbowałem to poprawić na różne sposoby i nie idzie mi mam trudności z ogarnięciem tego

a oto Mój skrypt http://domenaaax/profile.php?id=changeemail

Oto Skrypt

Wszystkie tabelki typu sid2/sid2_time/sid3/sid_time/email_nawe_status posiadam w bazie danych

  1. <?php
  2. if(user_logged() !== 'yes') { set_info($lang['logged_if'], 'warning'); }
  3. else {
  4.  
  5. if(defined("PROFILE_INIT")) {
  6.  
  7. load_headline('changeemail');
  8.  
  9. $u = get_user_data();
  10.  
  11. $user = $_SESSION["USER_LOGIN"];
  12.  
  13. $ip = $_SERVER['REMOTE_ADDR'];
  14.  
  15. $time = time();
  16.  
  17. $expire = $time - 3600;
  18.  
  19.  
  20.  
  21. if(isset($u['sid3_time']) and $u['sid3_time']<>'0' and $u['sid3_time']<$expire) {
  22.  
  23. safe_sql("UPDATE ".$config['db_account'].".account SET email_new='0', email_new_status='0', sid3='0', sid3_time='0' WHERE Login='$user'");
  24.  
  25. set_info("Procedura została anulowana, link wygasł, czas oczekiwania przekroczył 1 godzine.", 'error');
  26.  
  27. }
  28.  
  29.  
  30.  
  31. else {
  32.  
  33.  
  34. if($_GET['step']==1 and isset($u['sid3']) and $u['sid3']<>'0' and $u['email_new_status']=='step-1' and $u['sid3']==$_GET['sid']) {
  35.  
  36. echo'<form method="post" action="'.$config['site_url'].'profile.php?id=changeemail'.$u['sid3'].'">';
  37. echo'<table border="0" width="100%" cellspacing="0" cellpadding="5" align="center" class="pod_wood">
  38. <tr><td align="right" class="row1">Nowy Email </td><td class="row2"> <input type="text" name="new_email" maxlenght="100"></td></tr>
  39. <tr><td align="right" class="row2">Nowy Email, powtórz </td><td class="row1"> <input type="text" name="re_new_email" maxlenght="100"></td></tr>
  40. <tr><td align="center" class="row1" colspan="2"> <input type="submit" name="send" value="Zmień Email" style="cursor:pointer;"></td></tr>
  41. ';
  42. echo'</table></form>';
  43.  
  44. $new_email = $_POST['new_email'];
  45. $re_new_email = $_POST['re_new_email'];
  46.  
  47.  
  48.  
  49. if(isset($_POST['send'])) {
  50. $query_e = mysql_num_rows(safe_sql("SELECT email FROM ".$config['db_account'].".account WHERE email='$new_email'"));
  51. if($new_email == '') { $err = 'Wpisz Email'; }
  52. elseif(!preg_match("/^[^.]+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/", $new_email)) { $err = 'Email jest nieprawidlowy'; }
  53. elseif($query_e>=1) { $err = 'Podany Email jest juz zajety'; }
  54. else {
  55.  
  56. $hash = rand(100000, 999999);
  57. $hash .= time();
  58. $sid = md5($hash);
  59.  
  60.  
  61. safe_sql("UPDATE ".$config['db_account'].".account SET sid3='$sid', sid3_time='$time', email_new_status='step-2', email_new='$new_email' WHERE Login='$user'");
  62.  
  63.  
  64. load_lang('mail');
  65.  
  66.  
  67.  
  68. $message = $lang['changeemail_step1_message'];
  69.  
  70. $message = str_replace("{USER}", $u['login'], $message);
  71. $message = str_replace("{KEY}", $sid, $message);
  72. $message = str_replace("{EMAIL}", $u['email'], $message);
  73. $message = str_replace("{IP}", $ip, $message);
  74.  
  75. $mailheader = "FROM: xxx.pl <no-reply@xxx.pl> \n";
  76. $mailheader .= "MIME-Version: 1.0\n";
  77. $mailheader .= "Content-Type: text/html;\n";
  78. $mailheader .= "\tcharset=\"UTF-8\"\n";
  79. $mailheader .= "Content-Transfer-Encoding: 8bit\n\n";
  80.  
  81. mail($u['email'], $lang['changeemail_step1_header'], $message, $mailheader);
  82.  
  83. set_info($lang['change_email_step1_start'], 'passed');
  84. }
  85. if(isset($err)) {
  86. set_info($err, 'error');
  87. }
  88. }
  89.  
  90. }
  91. elseif($_GET['step']==2 and isset($u['email_new']) and isset($u['sid3']) and $u['sid3']<>'0' and $u['email_new_status']=='step-2' and $u['sid3']==$_GET['sid']) {
  92.  
  93.  
  94. $hash = rand(100000, 999999);
  95. $hash .= time();
  96. $sid = md5($hash);
  97.  
  98.  
  99. safe_sql("UPDATE ".$config['db_account'].".account SET sid3='$sid', sid3_time='$time', email_new_status='step-3' WHERE Login='$user'");
  100.  
  101.  
  102. load_lang('mail');
  103.  
  104.  
  105.  
  106. $message = $lang['changeemail_step2_message'];
  107.  
  108. $message = str_replace("{USER}", $u['login'], $message);
  109. $message = str_replace("{KEY}", $sid, $message);
  110. $message = str_replace("{EMAIL}", $u['email_new'], $message);
  111. $message = str_replace("{IP}", $ip, $message);
  112.  
  113. $mailheader = "FROM: xxx.pl <no-reply@xxx.pl> \n";
  114. $mailheader .= "MIME-Version: 1.0\n";
  115. $mailheader .= "Content-Type: text/html;\n";
  116. $mailheader .= "\tcharset=\"UTF-8\"\n";
  117. $mailheader .= "Content-Transfer-Encoding: 8bit\n\n";
  118.  
  119. mail($u['email_new'], $lang['changeemail_step2_header'], $message, $mailheader);
  120.  
  121. set_info($lang['change_email_step2_start'], 'passed');
  122.  
  123. }
  124. elseif($_GET['step']==3 and isset($u['email_new']) and isset($u['sid3']) and $u['sid3']<>'0' and $u['email_new_status']=='step-3' and $u['sid3']==$_GET['sid']) {
  125.  
  126. safe_sql("UPDATE ".$config['db_account'].".account SET sid3='0', sid3_time='0', email_new_status='0', email='".$u['email_new']."', email_new='0' WHERE Login='$user'");
  127. set_info($lang['change_email_ok'], 'passed');
  128.  
  129. }
  130. elseif(isset($u['sid3']) and $u['sid3']<>'' and $u['sid3']<>'0'){
  131. set_info($lang['change_email_al'], 'warning');
  132. }
  133. else {
  134. if(isset($_POST['step1']) and $_POST['step1']=='yes') {
  135. if(isset($_POST['step2']) and $_POST['step2']=='yes') {
  136.  
  137. $hash = rand(100000, 999999);
  138. $hash .= time();
  139. $sid = md5($hash);
  140.  
  141.  
  142. safe_sql("UPDATE ".$config['db_account'].".account SET sid3='$sid', sid3_time='$time', email_new_status='step-1' WHERE Login='$user'");
  143.  
  144.  
  145. load_lang('mail');
  146.  
  147.  
  148.  
  149. $message = $lang['changeemail_message'];
  150.  
  151. $message = str_replace("{USER}", $u['login'], $message);
  152. $message = str_replace("{KEY}", $sid, $message);
  153. $message = str_replace("{EMAIL}", $u['email'], $message);
  154. $message = str_replace("{IP}", $ip, $message);
  155.  
  156. $mailheader = "FROM: xxx.pl <no-reply@xxx.pl> \n";
  157. $mailheader .= "MIME-Version: 1.0\n";
  158. $mailheader .= "Content-Type: text/html;\n";
  159. $mailheader .= "\tcharset=\"UTF-8\"\n";
  160. $mailheader .= "Content-Transfer-Encoding: 8bit\n\n";
  161.  
  162. mail($u['email'], $lang['changeemail_header'], $message, $mailheader);
  163.  
  164. set_info($lang['change_email_start'], 'passed');
  165.  
  166. } else {
  167. <form method="post" action="'.$config['site_url'].'profile.php?id=changeemail">
  168. <div class="line"> </div>
  169. <table width="80%" align="center" cellspacing="0" cellpadding="10">
  170. <tr>
  171. <td class="row-question" align="center">
  172. '.$lang['change_email_info2'].'
  173. </td>
  174. </tr>
  175. <tr>
  176. <td align="center">
  177. <br>
  178. <input type="submit" value="'.$lang['change_email_send2'].'" class="button">
  179. <input type="hidden" name="step1" value="yes">
  180. <input type="hidden" name="step2" value="yes">
  181. </td>
  182. </tr>
  183. </table>
  184.  
  185. </form> ';
  186. }
  187. } else {
  188.  
  189. <form method="post" action="'.$config['site_url'].'profile.php?id=changeemail">
  190. <div class="line"> </div>
  191. <table width="80%" align="center" cellspacing="0" cellpadding="10">
  192. <tr>
  193. <td class="row-question" align="center">
  194. '.$lang['change_email_info'].'
  195. </td>
  196. </tr>
  197. <tr>
  198. <td align="center">
  199. <br>
  200. <input type="submit" value="'.$lang['change_email_send1'].'" class="button">
  201. <input type="hidden" name="step1" value="yes">
  202. </td>
  203. </tr>
  204. </table>
  205.  
  206. </form> ';
  207. }
  208. }
  209. }
  210. }
  211. }
  212. ?>


csharp
matko... wklej jakiś kawałek kodu, bo nikt Ci tego nie przeanalizuje...

co znaczy, że link nie działa? przekazujesz jakieś parametry w linku?
robert5555
To jest cały skrypt na zmianę emaila chodzi mi oto ze linik nie istnieje bo skrypt był przystosowany do moda www chodzi mi ze nie było np www.domena.pl/rejstracja.php tylko było www.domena.pl/rejstracja/ i ten skrypt tak działa normalnie wysyła link przychodzi na email przychodzi link i jak się w niego wejdzie to nie ma dalszej zmiany emaila . ;/
abort
W kodzie masz odwołania do:
  1. $message = $lang['changeemail_step1_message']; // linia 68
  2. $message = $lang['changeemail_step2_message']; // linia 104
  3. $message = $lang['changeemail_message']; // linia 149

Zacznij od odszukania w/w templatek, tam chyba powinieneś znaleźć adres do strony - ten adres musisz zmodyfikować i dostosować do swoich potrzeb.
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.