S slex Medlem sedan apr. 2012 21 inlägg Frågan 26 apr. 2012 19:54 #1 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>
P Pedda Medlem sedan juni 2000 6 031 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.
S slex Medlem sedan apr. 2012 21 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@gnus Medlem sedan jan. 2006 1 807 inlägg
slex skrev:
Detta är scriptet som fungerar!
...
Thats the way to do it! (y)
drew Medlem sedan mars 2007 845 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.