25. september 2009 - 11:46Der er
14 kommentarer og 1 løsning
hjælp til if/then/else i php
Hej jeg forsøger at lave et script der sender login informationer til brugerens email, i tilfælde af at man har glemt dem. Problemet er bare at jeg ikke rigtig kan finde ud ad if/then funktionerne.
Jeg forestiller mig noget i stil med dette:
mail.php -------- <?php include("loginoplysninger.php") IF $correctanswer == $answer; THEN mail($mail,"Hermed fremsendes din login oplysninger","Dine login oplysninger er følgende: <br />Brugernavn: $username<br />Password: $password) echo "Dine login oplysninger er sendt til din email"; ELSE mail($mail,"Nogen har forsøgt at hente dine login oplysninger","I forsøgt på at hente dine login oplysninger er der svaret forkert på dit sikkerhedsspørgsmål) echo "Du har svaret forkert på sikkerhedsspørgsmålet og indehaveren af denne konto er blevet gjort opmærksom herpå<br /><a href="mail.php">Klik her</a> for at gå tilbage og forsøge igen"; ?>
<form action="mail.php" method="post"> Inden vi kan sende dig dine login oplysninger skal du svare korrekt på følgende sikkerhedsspørgsmål:<br /><br /> Svar: <input type="text" name="answer" style="width: 200px;"> <br><br> <input type="submit" value="Send mail"> </form>
Håber der er nogen der kan hjælpe mig færdig med dette script :-)
Det virker en smule forældet for mig at benytte sig af 'sikkerhedsspørgsmål'. Idag er folk så bevidste om brugen af deres emails og tilhørende adresser at det ville være mere intuitivt for en bruger at blot indtaste sin mail adresse og så vil han modtage loginoplysningerne.
Uanset, så ville her være et bud på at løse det du ønsker: <?php include("loginoplysninger.php");
if($answer == strtolower($correctAnswer)) { $subject = "Hermed fremsendes din login oplysninger"; $body = "Dine login oplysninger er følgende:\nBrugernavn: ".$username."\nPassword: ".$password; $response = "Dine login oplysninger er sendt til din email."; } else { $subject = "Nogen har forsøgt at hente dine login oplysninger"; $body = "I et forsøg på at hente dine login oplysninger er der svaret forkert på dit sikkerhedsspørgsmål"; $response = "Du har svaret forkert på sikkerhedsspørgsmålet og indehaveren af denne konto er blevet gjort opmærksom herpå<br /><a href=\"mail.php\">Klik her</a> for at gå tilbage og forsøge igen"; }
mail($mail, $subject, $body);
}
?> <form action="mail.php" method="post"> Inden vi kan sende dig dine login oplysninger skal du svare korrekt på følgende sikkerhedsspørgsmål:<br /><br /> Svar: <input type="text" name="answer" style="width: 200px;"> <br><br> <input type="submit" value="Send mail"> </form> <?php if(isset($response)): ?> <p> <?php echo $response; ?> </p> <?php endif; ?>
Hvis jeg skal forsøge at undlade sikkerhedspørgsmålet vil følgende så virke.? email adressen er angivet i loginoplysninger.php til $mail og ikke $correctmail derfor har jeg byttet om på disse to.
<?php include("loginoplysninger.php"); if(isset($_POST["correctmail"])) { $correctmail = strtolower($_POST["correctmail"]); if($correctmail == strtolower($mail)) { $subject = "Hermed fremsendes din login oplysninger"; $body = "Dine login oplysninger er følgende:\nBrugernavn: ".$username."\nPassword: ".$password; $response = "Dine login oplysninger er sendt til din email."; } else { $response = "Du har indtastet forkert email adresse.<br /><a href=\"mail.php\">Klik her</a> for at gå tilbage og forsøge igen"; } mail($mail, $subject, $body); }
Det er ikke domænet der kommer med, men i afsenderfeltet står der navnet på den server jeg har lejet mit webhotel på. Det vil jeg gerne være fri for, hvis det er muligt, og det burde det vel være..??
Nej ikke første omgang der skrev jeg kun mit navn og ikke email adressen, fordi jeg kun vil have en statisk tekst uden email, men jeg bruger bare emailadressen det er fint nok. :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.