Jeg blev spurgt af nogen begyndere udi web-udvikling, PHP og MySQL hvordan man kunne validere om to værdier fra indtastningsfelter er ens. Dette kunne f.eks. være e-mail-adresser, for at sikre sig mod at brugeren har været lidt for hurtig ved tasterne, så en slå-fejl har fundet sin vej ind i feltet.
Bemærk i øvrigt, at dette ikke er en øvelse i hverken design eller sikkerhed, så derfor er alt overflødigt udeladt.
Først er selve HTML-formularen, hvor vi indsamler de informationer, som vi ønsker at kontrollere og gemme senere i PHP’en.
|
1 2 3 4 5 6 7 8 9 |
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> Email: <input name="email" type="text" /><br /> Email igen: <input name="emailAgain" type="text" /><br /> Navn: <input name="name" type="text" /><br /> <input type="submit" name="submit" value="Gem" /> </form> |
Og her er så det det hele drejer sig om
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php // Vi forbereder databasen $conn = @mysql_connect('host', 'username', 'password') or die ("<span class='error'>Kan ikke oprette forbindelse til serveren</span>"); mysql_select_db('DB_NAME') or die("<span class='error'>Database ikke fundet</span>"); if ($_REQUEST['submit'] == "Gem") { // Vi kopierer lige værdierne fra $_REQUEST-arrayet over i simple // variabler. Ikke nødvendigt, men jeg synes at det letter læse-venligheden. $email = $_REQUEST['email']; $emailAgain = $_REQUEST['emailAgain']; $name = $_REQUEST['name']; // Tjek om de to email-adresser er ens if ($email == $emailAgain) { // Fordi vi lige har kontrolleret at de to email-adresser er ens // behøver vi kun at indsætte den ene værdi - ellers får vi // dobbelt så meget data som nødvendigt. // Opbyg SQL-query $query = "INSERT INTO nyhedsbrev_adresser"; $query .= "(email, navn)"; $query .= "VALUES ('$email', '$name')"; // Send SQL-query til databasen // Vi kunne godt tjekke resultatet af $result-variablen // men jeg har valgt at udelade det for nemhedens skyld. $result = mysql_query($query); echo "<span class='success'>Du er nu oprettet!</span>" } else { echo "<span class='error'>Emails ikke ens!</span>"; } } ?> |
Jeg håber at kode-kommentarer forklarer det hele – ellers må i lige kaste en kommentar 😉
