Nénmacil Skrevet 25. juli 2004 Del Skrevet 25. juli 2004 Jeg har nettopp laget et lite PHP E-Post skjema, men så kom jeg til å tenke på en ting. I "E-Post adresse" feltet kan brukeren skrive inn hva_som_helst@ - altså uten noen andre ord etter denne alfakrøllen. Hvordan kan jeg lage en kode som sjekker om tekstfeltet inneholder hva_som_helst@*.* der stjerne (*) er et wildcard? Her er koden: <form method="post" action="kontakt.php"> <div style="top: 210px; left: 190px; width: 125px; height: 85px; position: absolute; text-align: left;"> Navn:<br /> E-Post Adresse:<br /> Tittel:<br /> </div> <div style="top: 210px; left: 315px; width: 350px; height: 85px; position: absolute;"> <input type="text" name="navn"><br /> <input type="text" name="epost"><br /> <input type="text" name="tittel"><br /> </div> <div style="top: 295px; left: 195px; width: 470px; position: absolute;"> Melding:<br /> <textarea name="beskjed" rows="5" cols="30"></textarea> <p> <input type="submit" name="kontakt" value="Send E-Post"> * <input type="reset" name="reset" value="Rens Skjema"> </div> </form> samt.. <?php $adresse = "[email protected],[email protected]"; $avsender = "From: $navn <$epost> [enellerannenside.com]"; $navn; $epost; $tittel; $beskjed; $ip = $REMOTE_ADDR; if ($kontakt) { if (!(($navn) && ($epost) && ($tittel) && ($beskjed) && (strpos($epost, "@") !== FALSE ))) { echo ("<div style='top: 175px; left: 190px; width: 400px; position: absolute; text-align: left;'> Du har glemt å oppgi informasjon i ett eller flere felt. </div>"); } else { $melding = " Denne e-posten ble sendt i fra kontakt skjemaet på http://www.enellerannenside.com Fra: $navn ($epost) ---- $beskjed ---- Denne e-posten ble sendt fra IP adressen: $ip "; mail($adresse, $tittel, $melding, $avsender); echo ("<div style='top: 175px; left: 190px; width: 400px; position: absolute; text-align: left;'> Din melding har blitt sendt. </div>"); } } ?> Jeg setter pris på alle tilbakemeldinger. Lenke til kommentar
???????? Skrevet 25. juli 2004 Del Skrevet 25. juli 2004 Ta en kikk på denne side for å validere e-post adresser, klikk spesielt på kommentarene på bunnen av siden: www.php.net/eregi Det er bedre om du spørr etter konkrete feil og ikke ber folk kikke på koden din, det er som regel mye jobb og veldig kjedelig å sette seg inn i andre sine koder. Siden koden er kort og du er ny med php skal jeg gi deg noen tips. 1. $REMOTE_ADDR variabelen vil mest sannsynlig snart bli skrudd av, og du må gå over til å bruke de auto globale verdiene f.eks. $_SERVER['REMOTE_ADDR'] 2. Hvorfor lister du opp variabler i begynnelsen på scriptet? Dette har ingen funksjon, for å definere variabler må du bruke var $variabel; - og dette brukes kun i classes. Du behøver ikke å definere variabler før du bruker de. 3. De fleste servere har skrudd av en funksjon som heter register globals, dvs. funksjonen som automatisk lagrer variabler f.eks. fra et skjema, i scriptet. $epost som er sent med skjemaet vil derfor ikke være tilgjenlig på den måten i et script, du må bruker de auto globale verdiene her også - f.eks. $_POST['epost'] 4. Du sjekker variablene på feil måte! Tenk deg denne koden din: if (!(($navn) && ($epost) der står det Hvis( ikke( Navnet og [email protected] Da er det naturlig nok å spørre, hvis ikke hva? Grunnen til at det vil fungere er at den vil returnere true for alle andre verdier enn 0, se bool i manualen. Det du brude bruke er empty() eller isset() - eventuelt gjøre en mer grundig validering av tegn og lengde - med f.eks. eregi. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå