Малко помощ за база данни

vasilev5

Registered
Имам генерирана нова парола с
$newpass = rand_pass();
$newpass2 = md5($newpass2);
как да заменя старата в базата данни ако таблицата е users , а двете полета са username, password
 
mysql_query("UPDATE `users` SET `password`='$newpass2' WHERE `username`='$username' LIMIT 1')");
$result = mysql_query($query, $db_conn);
не става, не е записана в базата
 
Какво значи "не е записана" ? Нали искаш да я замениш (или не си задал правилно въпроса)
 
$username нищо не съм пипал и не искам да се променя
Просто правя един скрипт за забравена парола, тя се генерира, изпраща се безпроблемно на е-пощата, но генерираната парола не се записва в базата,т.е. не може да се влиза с нея
 
vasilev5 каза:
mysql_query("UPDATE `users` SET `password`='$newpass2' WHERE `username`='$username' LIMIT 1')");
$result = mysql_query($query, $db_conn);
не става, не е записана в базата


$username -> потребителското име на което искаш да смениш паролата (или ID - зависи какво искаш)

ТРЯБВА да укажеш на кой запис (потребител) да смениш паролата.

В момента търси потребител с име '' (празно поле) и като не намери такъв не сменява нищо.

$username="UserNameToChangePass";

или `ID`='12345678'
 
Ето го целия скрип
<?php

$dbhost='localhost';
$dbusername='';
$dbuserpass='';
$dbname='';


mysql_connect ($dbhost, $dbusername, $dbuserpass);

if (!mysql_select_db($dbname)) die(mysql_error());

if($_POST['email'])
{
$email = $_POST['email'];
$checkemail = mysql_query("SELECT username FROM users WHERE email='$email'");
$row = mysql_fetch_array($checkemail);
$numrows = mysql_num_rows($checkemail);
if ($numrows!=0) {
$name = $row['username'];

function rand_pass () {
$numbers=range(0, 9);
$symbols=range('a', 'z');
$pass="";
for ($i=0; $i<3; $i++) { /
$pass.=$numbers[rand(0,9)];
$pass.=$symbols[rand(0,25)];
}
return $pass;
}

$newpass = rand_pass();
$newpass2 = md5($newpass2);

mysql_query("UPDATE `users` SET `password`='$newpass2' WHERE `username`='$username' LIMIT 1')");



$result = mysql_query($query, $db_conn);



$from = "From: 88888888888";
$subject = 'new pass';
$message = "Çäðàâåé $name .Òâîÿòà íîâà ïàðîëà å $newpass .";
mail($email, $subject, $message,$form);
echo "Ïàðîëàòà å èçïðàòåíà.";
}
}
if($email=="")
{
echo '<table align="center"><form method="post" action="?page=login&ext=forgot">
<tr>
<td align="center" class="names">Ïîòðåáèòåë:
</td></tr>
<tr><td align="center">
<input type="text" name="username">
</td></tr>
<tr>
<td align="center" class="names">Å-ìàéë:
</td></tr>
<tr><td align="center">
<input type="text" name="email">
</td></tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Èçïðàòè">
</td></tr></table>
</form>';
}
?>
къде е грешката???
 
vasilev5 каза:
Ето го целия скрип
<?php

$dbhost='localhost';
$dbusername='';
$dbuserpass='';
$dbname='';


mysql_connect ($dbhost, $dbusername, $dbuserpass);

if (!mysql_select_db($dbname)) die(mysql_error());

if($_POST['email'])
{
$email = $_POST['email'];
$checkemail = mysql_query("SELECT username FROM users WHERE email='$email'");
$row = mysql_fetch_array($checkemail);
$numrows = mysql_num_rows($checkemail);
if ($numrows!=0) {

$name = $row['username'];


function rand_pass () {
$numbers=range(0, 9);
$symbols=range('a', 'z');
$pass="";
for ($i=0; $i<3; $i++) { /
$pass.=$numbers[rand(0,9)];
$pass.=$symbols[rand(0,25)];
}
return $pass;
}

$newpass = rand_pass();
$newpass2 = md5($newpass2);

mysql_query("UPDATE `users` SET `password`='$newpass2' WHERE `username`='$name' LIMIT 1");



$result = mysql_query($query, $db_conn);



$from = "From: 88888888888";
$subject = 'new pass';
$message = "Çäðàâåé $name .Òâîÿòà íîâà ïàðîëà å $newpass .";
mail($email, $subject, $message,$form);
echo "Ïàðîëàòà å èçïðàòåíà.";
}
}
if($email=="")
{
echo '<table align="center"><form method="post" action="?page=login&ext=forgot">
<tr>
<td align="center" class="names">Ïîòðåáèòåë:
</td></tr>
<tr><td align="center">
<input type="text" name="username">
</td></tr>
<tr>
<td align="center" class="names">Å-ìàéë:
</td></tr>
<tr><td align="center">
<input type="text" name="email">
</td></tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Èçïðàòè">
</td></tr></table>
</form>';
}
?>
къде е грешката???
 
<?php

$dbhost='localhost';
$dbusername='';
$dbuserpass='';
$dbname='';


mysql_connect ($dbhost, $dbusername, $dbuserpass);

if (!mysql_select_db($dbname)) die(mysql_error());

if($_POST['email'])
{
$email = $_POST['email'];
$checkemail = mysql_query("SELECT username FROM users WHERE email='$email'");

$row = mysql_fetch_array($checkemail);
$numrows = mysql_num_rows($checkemail);

echo "Rows :".$numrows."<br>"; //Колко съвпадения имаш (трябва да е точно едно)

if ($numrows!=0) {

$name = $row['username'];

echo "Check User Name :".$name."<br>"; //Трябва да ти покаже потребителското име

function rand_pass () {
$numbers=range(0, 9);
$symbols=range('a', 'z');
$pass="";
for ($i=0; $i<3; $i++) {
$pass.=$numbers[rand(0,9)];
$pass.=$symbols[rand(0,25)];
}
return $pass;
}

$newpass = rand_pass();
$newpass2 = md5($newpass2);


$sql="UPDATE `users` SET `password`='$newpass2' WHERE `username`='$name' LIMIT 1";

echo $sql; // Виж дали заявката е в ред

mysql_query($sql) or die (mysql_error()); // Има ли грешка при изпълнението


$result = mysql_query($query, $db_conn);



$from = "From: 88888888888";
$subject = 'new pass';
$message = "Çäðàâåé $name .Òâîÿòà íîâà ïàðîëà å $newpass .";
mail($email, $subject, $message,$form);
echo "Ïàðîëàòà å èçïðàòåíà.";
}
}
if($email=="")
{
echo '<table align="center"><form method="post" action="?page=login&ext=forgot">
<tr>
<td align="center" class="names">Ïîòðåáèòåë:
</td></tr>
<tr><td align="center">
<input type="text" name="username">
</td></tr>
<tr>
<td align="center" class="names">Å-ìàéë:
</td></tr>
<tr><td align="center">
<input type="text" name="email">
</td></tr>
<tr>
<td align="center"><input type="submit" name="submit" value="Èçïðàòè">
</td></tr></table>
</form>';
}

?>
 
Check User Name :an9
UPDATE `users` SET `password`='d41d8cd98f00b204e9800998ecf8427e' WHERE `username`='an9' LIMIT 1Паролата е изпратена
Това изписва, сменя паролата, но с новата не мога да вляза. Не влизам нито със старата, нито с новата
 
Ня мястото където правиш проверка за паролата при логването напиши

echo md5($_POST['PassField']);


и сравни двете суми. Ако не са еднакви - проблема е между клавиатурата и стола.

Да не забравиш да смениш PassField с каквото трябва.

Виж също каква е новат парола при генерирането и.
 
Във формата където се проверява потребителското име и парола.

....

<input type="password" name="pass"/>
<input type="submit" name="CheckUserPass"/>

....


if (isset($_POST['CheckUserPass'])) {

echo md5($_POST['pass']);


....

}

Трябва някъде да имаш нещо подобно.
 
Сложих го в логиин файла
излиза: d41d8cd98f00b204e9800998ecf8427e
Грешно е:потребителското име или паролата. Моля влезте
на пощата, а и в базата данни паролата е
d41d8cd98f00b204e9800998ecf8427e
и би трябвало да няма проблем
 
момент грешка, в базата данни не се е променил а си остава стария и влизам със старата парола
 

Back
Горе