slexMedlem sedan apr. 201221 inlägg Hejsan nu är det såhär jag har jobbat lite på ett script. Jag kan inte så mkt om .php men jag försöker mitt bästa. Iallafall jag undrar om någon skulle vilja vara snäll och hjälpa mig med detta?
Det jag vill med scriptet är att den kolla om allt stämmer med username, code osv. Om inte så kommer det upp ett meddelande "Something is wrong!" Om det stämmer så visar den passet för användaren.
http://apelsinen.com/?p=lostpassword
Om ni går till http://apelsinen.com/?p=register
Så förstår ni hela grejen med Secret Code hoppas jag!
lostpassword.php
<b>Forgot Password</b>
<?php
if (isset($_POST['submit'])){
$user = $_POST['user'];
$mail = $_POST['mail'];
$name = $_POST['name'];
$code = $_POST['code'];
$pass = $_POST['pass'];
$sql = "SELECT * FROM users WHERE mail='$mail', name='$name', code='$code', user='$user', pass='$pass'";
if(!mysql_query($sql))
{
echo "Något är fel! ".mysql_error();
}
else
{
echo "Ditt nya lösenord är ".$pass."!";
}}
?>
<html>
<body>
<tr>
<form action="?p=lostpassword" method="post">
<td><br>Username:<br></td>
<td><input type="text" input type="text" name="user" value=""></td>
</tr>
<tr>
<td><br>Mail:<br></td>
<td><input type="text" name="mail" value=""></td>
</tr>
<tr>
<td><br>Name:<br></td>
<td><input type="text" name="name" value=""></td>
</tr>
<tr>
<td><br>Secret Code:<br></td>
<td><input type="text" name="code" value=""></td>
</tr>
<tr>
<td>
<tr>
<br>
<input type="submit" name="submit" value="Get Password">
</td>
</tr>
</table>
</form>
<br>
<br>
</html>
</body>
PeddaMedlem sedan juni 20006 032 inlägg Kan du förklara vad det är som inte fungerar?
Något felmeddelande?
slex skrev:
Redan fixat det nu!
Om man har ett problem och har löst det själv så kan man ju dela med sig det till andra, så man kan hänvisa till trådar i framtiden på ett forum.
slexMedlem sedan apr. 201221 inlägg Detta är scriptet som fungerar!
<b>Forgot Password</b>
<?php
if (isset($_POST['submit'])){
$user = $_POST['user'];
$email = $_POST['email'];
$name = $_POST['name'];
$code = $_POST['code'];
$sql = mysql_query("SELECT * FROM users WHERE email='$email' AND name='$name' AND code='$code' AND
user='$user'");
if(mysql_numrows($sql) == 0){ //kollar så användaren som skrivits in finns
echo "<br /> Uppgifterna stämmer inte.";
}else{
$new_password = rand(50000, 150000);
$crypted_password = sha1($new_password);
$query = mysql_query("UPDATE `users` SET `pass`='$crypted_password' WHERE `user`='$user'");
echo mysql_error();
echo "<br />Du kan nu logga in med ditt nya lösenord<b> ". $new_password ."</b>.";
}
}
?>
<html>
<body>
<tr>
<form action="?p=lostpassword" method="post">
<td><br>Username:<br></td>
<td><input type="text" input type="text" name="user" value=""></td>
</tr>
<tr>
<td><br>Mail:<br></td>
<td><input type="text" name="email" value=""></td>
</tr>
<tr>
<td><br>Name:<br></td>
<td><input type="text" name="name" value=""></td>
</tr>
<tr>
<td><br>Secret Code:<br></td>
<td><input type="text" name="code" value=""></td>
</tr>
<tr>
<td>
<tr>
<br>
<input type="submit" name="submit" value="Get Password">
</td>
</tr>
</table>
</form>
<br>
<br>
</html>
</body>
M@gnusMedlem sedan jan. 20061 808 inlägg
slex skrev:
Detta är scriptet som fungerar!
...
Thats the way to do it! (y)
drewMedlem sedan mars 2007845 inlägg Ditt skript är sårbart för SOL-injection, att skicka POST-data direkt till databasen utan att säkra informationen är att be om trubbel. Det gäller för övrigt all annan REQUEST-data också.
Du borde köra mysql_real_escape_string() på alla strängar och intval() på alla heltal.