Avatar billede bas Forsker
30. november 2005 - 13:31 Der er 3 kommentarer og
1 løsning

Ryd felter, hvis indholdet godkendes?

Hej

Jeg har en gæstebog, som er baseret på følgende script:
http://www.detour.dk/blandet/gaestebog_null.phps

Den virker langt hen ad vejen. Det eneste jeg godt kunne tænke mig at få til at fungere, hvis det kan lade sig gøre er, at få
e-mail valideringen til at fungere sammen med visning / ikke-visning af sessioner i felterne.

Der er ligesom to betingelser:

1. Hvis felterne Navn og Besked er udfyldt, skal alle felter ryddes efter indsættelse i databasen.

2. Hvis felterne Navn, E-mail og Besked er udfyldt, skal alle felter ryddes, men KUN hvis e-mailen har den korrekte syntaks.

Og det er her jeg synes det bliver tricky for jeg har jo egentligt lavet valideringen, men der, hvor jeg sætter sessionerne til NULL, tjekker jeg jo kun for, om der er står noget i felterne Navn og Besked.

Jeg skal jo på en eller anden må have e-mail valideringen med i den kontrol. Kan man lave en funktion, som refererer til valideringen længere oppe?

Kan det lade sig gøre, og er det meget kringlet?

Hvis det ikke umiddelbart kan lade sig gøre, så dropper jeg e-mail valideringen.

På forhånd tak.

Med venlig hilsen
Martin
Avatar billede intenz Novice
30. november 2005 - 13:34 #1
Razor.dk har et udmærket email valideringsfunktion:
http://www.razor.dk/php/funktioner/

Copy/paster lidt:
function check_email ($q) {
  list($user,$host) = explode("@",$q);
  if (!$q) return false;
  elseif (!ereg("@",$q)) return false;
  elseif (!$user) return false;
  elseif (eregi("[^a-z0-9.-_]",$user)) return false;
  elseif (!getmxrr($host, $mx)) return false;
  else return true;
}



if (!check_email($email)) {
// Email er ikke valideret
}
Avatar billede Slettet bruger
30. november 2005 - 17:16 #2
Den valideringsfunktion vil afvise en masse gyldige emailadresser. Faktisk burde man bare slette linien, der kontrollerer for gyldige tegn i user-delen.
Avatar billede bas Forsker
30. november 2005 - 17:40 #3
Hej

Jeg har i scriptet en e-mail validering der ser ud som nedenstående,
og den fungere vist fint nok.

if($_POST[email] != "") {

if(!eregi( "^" .
          "[a-z0-9]+([_\\.-][a-z0-9]+)*" .  //user
          "@" .
          "([a-z0-9]+([\.-][a-z0-9]+)*)+" .  //domain
          "\\.[a-z]{2,}" .                    //sld, tld
          "$", $email, $regs)) //{
          echo "<span class='alm'>Fejl:<br>E-mail syntaksen er ugyldig.</span><br><br>";
//}


Opgaven er at koble det sammen med den kode, der rydder felterne:

if($_POST[navn] != "" && $_POST[besked] != "") {

$_SESSION["navn"] = NULL;
$_SESSION["email"] = NULL;
$_SESSION["hjemmeside"] = NULL;
$_SESSION["besked"] = NULL;

}

Som det er nu, bliver felterne ryddet, uanset om
e-mailen godkendes eller ej. Det er logisk nok
for jeg tjekker jo kun for, om der står noget
Navn og Besked.

Det vanskelige er, at det ikke kræves, at der
indtastes noget i e-mail feltet. Men hvis der gør,
skal syntaksen være rigtig. Er den ikke det, skal
felterne ikke ryddes.

Jeg ved ikke, om det kan lade sig gøre, og jeg har
pillet e-mail valideringen ud af det "officielle"
script. Men jeg har en kopi af scriptet, som jeg
arbejder videre med, hvis der skulle dukke en mulig
løsning op.

Så fokus ligger altså på de betingelser der skal
være opfyldt før felterne ryddes ved:

$_SESSION["navn"] = NULL;
$_SESSION["email"] = NULL;
$_SESSION["hjemmeside"] = NULL;
$_SESSION["besked"] = NULL;

Hilsen Martin
Avatar billede bas Forsker
06. december 2005 - 21:16 #4
Hmm, jeg fik ikke helt løst problemet. Jeg har nu droppet e-mail valideringen.
Jeg har lidt travlt for tiden, så jeg får ikke gjort mere ved det i denne omgang.
Men tak for jeres indlæg.

Hilsen Martin
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester