26. februar 2005 - 19:28Der er
9 kommentarer og 1 løsning
Min. længde på et kodeord i en form
Hej igen herinde. Hehe... Jeg har en form, som skal validere, og jeg vil gøre sådan så den tjekker om kodeord mindst er 4 tegn langt. Min kode ser sådan her ud:
$query = mysql_query("SELECT 1 FROM `Profil` WHERE `brugernavn` LIKE '{$_POST[brugernavn]}'", $db); $brugernavn_optaget = mysql_num_rows($query);
if ($brugernavn_optaget != 0) { echo "<ul><li><p class=\"profilopret_error\">Brugernavnet <i>", $_POST[brugernavn],"</i> er allerede i brug.</p></li></ul>"; $showform = true; }
if (strlen($kodeord && $kodeord2) < 4) { echo "<ul><li><p class=\"profilopret_error\">Dit kodeord skal være mindst 4 tegn langt.</p></li></ul>"; $showform = true; }
if ($kodeord_kryp != $kodeord2_kryp) { echo "<ul><li><p class=\"profilopret_error\">De to kodeord matcher ikke hinanden.</p></li></ul>"; $showform = true; }
if ($kodeord_kryp == $kodeord2_kryp and $kodeord && $kodeord2 >= 4 and $brugernavn_optaget == 0) { mysql_query("INSERT INTO Profil (brugernavn, kodeord, kodeord2, fornavn, efternavn, nickname, birthday, email, mobil, msn, icq, city, adresse, adresse2, telefon, postnr, gender, land, dato, ip) VALUES ('$_POST[brugernavn]','$kodeord_kryp','$kodeord2_kryp','$_POST[fornavn]','$_POST[efternavn]','$_POST[nickname]','$birthday','$_POST[email]','$_POST[mobil]','$_POST[msn]','$_POST[icq]','$_POST[city]','$_POST[adresse]','$_POST[adresse2]','$_POST[telefon]','$_POST[postnr]','$_POST[gender]','$_POST[land]',NOW(),'$ip')") or die(mysql_error()); echo "<p class=\"text-style\" align=\"center\"><br><br>Du er nu oprettet i systemet...</p>"; $showform = false; } }
if ($showform) {
?>
Men jeg kan desværre ikke få det at virke. Den registrerer det ikke ordentligt. Så jeg håbede på I kunne hjælpe mig. Jeg ved ikke om jeg skal have fat i noget function checkLengt?
Nej desværre denne kode den kan ikke bruges på den måde, fordi den er lavet sådan at den kun melder fejl hvis de 2 kodeord ikke er ens. Hvis de 2 kodeord er ens og kun 2 bogstaver lange fx, så melder den ikke fejl. Hvor imod hvis koderne ikke er ens, og 2 bogstaver lange, så kommer den med en besked om det mindst skal være 4 tegn langt. Så der er en eller ting der lige skal ændres. Beskeden om det mindst skal være 4 bogstaver langt, skal jo komme ligemeget om de 2 koder er ens eller ej.
Men det er jo omsonst at give besked om at koden skal være 4 lang hvis de to ikke er ens, hvad ville din fejl så være "Kodeordet i 'gentag kode' skal være mindst fire tegn"?
Men jeg kan nu ikke se, hvorfor der ikke burde komme fejl hvis de 2 kodeord er ens med stadig for korte, som du synes er omsonst? Det virker da helt forkert efter min mening.
if (strlen($kodeord) < 4 || strlen($kodeord2) < 4) {
-------------
Ja det er jo meget godt, men det løser jo ikke rigtig den ting som jeg nævnte. Den vil stadig ikke komme med nogen fejl besked hvis de 2 kodeord er ens men under 4 tegn.
For det skal virke korrekt, skal det være noget ala:
Okay hehe, det er bare lidt sjovt at se, fordi det er stort set det samme som vi startede med hvis du kigger i koden der er postet øverst.. Men nu har jeg fået det til at virke på en lidt anden måde...
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.