У меня есть этот код для моей забытой формы пароля, но он не работает, может кто-нибудь увидеть ошибки? Он просто придумывает пустой экран и ничего не делает. Я пробовал все, но не могу заставить его работать. СпасибоФорма забытого пароля - PHP
<?php
$host="localhost"; // Host name
$username="admin"; // Mysql username
$password=""; // Mysql password
$db_name="members"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Define $myusername and $mypassword
$myemail=$_POST['myemail'];
$sql="SELECT * FROM $tbl_name WHERE email='$myemail'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
$email = $_P0ST['email'];
function createRandomPassword() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
if($count==1){
$newpassword=createRandomPassword();
$encrypted_mypassword=md5($newpassword);
$sql="UPDATE members SET password= ('$encrypted_mypassword') WHERE email = ('$myemail')";
$run=mysqli_query($sql);
$to = "$myemail";
$subject = "Your Password";
$messages="Your password for accessing to our website \r\n";
$messages="Your password is $encrypted_mypassword \r\n";
$messages="Please change this password for security reasons. Thank you. \r\n";
$from = "[email protected]";
$headers = "From:" . $from;
mail($to,$subject,$messages,$headers);
echo "Mail Sent.";
** предупреждение ** код уязвим для SQL-инъекций. –
[** Уязвимое является преуменьшением **] (http://stackoverflow.com/q/60174/1415724) - Кроме того, измените '$ email = $ _P0ST ['email'];' на '$ email = $ _POST ['email']; 'это' O', как в "** OMG! **", а не 'zero'. (*Назвать несколько*). –
Добавьте это в начало страницы: 'ini_set ('display_errors', 1); error_reporting (-1); '. –