ZeRKoX Skrevet 14. september 2007 Rapporter Del Skrevet 14. september 2007 Jeg lager et påmeldings-skjema til et lite arrangement, og planla derfor og ha et nettbasert påmeldnings-sjema. Men det vil av en eller annen grunn ikke funke. Her er koden til skjemaet: pamelding.php: <form action="script.php" method="post"> Navn:<br> <input type="text" name="navn"><br><br> E-Mail:<br> <input type="text" name="mail"><br><br> Telefonnr:<br> <input type="text" name="tele"><br><br> Nick:<br> <input type="text" name="Nick"><br><br> <input type="submit" name="Submit" value="meld deg på"> </form> script.php: <?php $epost = [email protected]; $emne = PÅMELDING; $navn = $_POST["navn"]; $mail = $_POST["mail"]; $tele = $_POST["tele"]; $nick = $_POST["nick"]; $melding = $navn ++ $mail ++ $tele ++ $nick; mail($epost,$emne,$melding); echo "Påmeldingen er sendt. Gå <a href="index.php">TILBAKE</a>"; ?> Lenke til kommentar
BlueEAGLE Skrevet 14. september 2007 Rapporter Del Skrevet 14. september 2007 For det første så er feilmeldinger nyttige for folk som har lyst til å hjelpe deg. For det andre så vil du feilsjekke all data som du får fra en ekstern kilde før du bruker den til noe som helst. Det jeg ville gjort for å feilsøke dette var først å lage det enkleste skriptet som sender en e-post <?php mail('[email protected]', 'test', 'Dette er bare en test');?> Hvis den posten ikke går igjennom så har du funnet feilkilden. Hvis den posten går igjennom så må du sjekke at variablene du sender til mail() faktisk inneholder det du forventer at de skal inneholde <? var_dump($epost, $emne, $melding);?> før kallet til mail(). Hvis de gjør dette og den første testen går igjennom så trenger vi en feilmelding for å kunne finne en løsning. Lenke til kommentar
Runar Skrevet 14. september 2007 Rapporter Del Skrevet 14. september 2007 (endret) Du må skrive e-posten og emnet mellom hermetegn (") for at den skal være gyldig. Dette gjelder alle verdier utenom tall. PHP <?php$epost = "[email protected]"; $emne = "PÅMELDING"; ?> Jeg er også usikker på om $melding linjen din er riktig. Jeg ville gjort det slik: PHP <?php$melding = $navn . $mail . $tele . $nick; ?> Merk at da vil alt bli skrevet på en og samme linje. Du bør bruke mellomrom og linjeskift (\n) for å gjøre det bedre. Den siste linjen din har også en feil. Skal du ha hermetegn (") der må du skrive \". Du kan alternativt skrive echo 'koden din'; hvis det som skal printes ut er ren tekst og ingen variabler eller lignende. Endret 14. september 2007 av Runar Lenke til kommentar
PHPdude Skrevet 14. september 2007 Rapporter Del Skrevet 14. september 2007 (endret) Du har grov feil som går igjen med at du ikke bruker " rundt strenger. Når du utvikler bør du alltid ha følgene kode på toppen, så oppdager man sånne og andre feil med en gang: error_reporting(E_ALL | E_STRICT); Endret 14. september 2007 av PHPdude Lenke til kommentar
Flin Skrevet 14. september 2007 Rapporter Del Skrevet 14. september 2007 Det er som Runar sier, du må huske hermetegn rundt tekst. Og så må du bruke punktum og ikke pluss. Det kan også være en idé å slenge på en ."<br>" bak hver variable så får du det litt mer oversiktlig. Lenke til kommentar
PHPdude Skrevet 14. september 2007 Rapporter Del Skrevet 14. september 2007 Hvorfor <br>? Er da bare tull å slenge inn html-tagger i epost som er ren tekst. Helt vanlig linjeskift er tingen, altså "\n" PHP sin mail()-funksjon har visst også en sikkerthetssvakhet hvor $subject ikke sjekkes skikkelig så man kan sette inn en ny linje og dermed også en ny header i eposten. Mulig det er fikset i de nyeste versjonene. Lenke til kommentar
Flin Skrevet 14. september 2007 Rapporter Del Skrevet 14. september 2007 Du har helt rett, glemte at det skulle til email. Lenke til kommentar
ZeRKoX Skrevet 14. september 2007 Forfatter Rapporter Del Skrevet 14. september 2007 Jeg har fått fikset det, tusen takk for hjelpen Lenke til kommentar
BlueEAGLE Skrevet 15. september 2007 Rapporter Del Skrevet 15. september 2007 Det gjør ikke noe om du forteller oss (og andre som senere vil søke i forumet) hvordan du løste det. Lenke til kommentar
Runar Skrevet 15. september 2007 Rapporter Del Skrevet 15. september 2007 Se på svarene han fikk, BlueEAGLE, så skjønner du nok hva han hadde gjort feil. Lenke til kommentar
ZeRKoX Skrevet 15. september 2007 Forfatter Rapporter Del Skrevet 15. september 2007 Jeg kan legge ut kildekoden: pamelding.php: <form action="script.php" method="post"> Navn:<br> <input type="text" name="navn"><br><br> E-Mail:<br> <input type="text" name="mail"><br><br> Telefonnr:<br> <input type="text" name="tele"><br><br> Nick:<br> <input type="text" name="nick"><br><br> <input type="submit" name="Submit" value="meld deg på"> </form> script.php: <?php error_reporting(E_ALL | E_STRICT); $epost = "[email protected]"; $emne = "PÅMELDING"; $navn = $_POST['navn']; $mail = $_POST['mail']; $tele = $_POST['tele']; $nick = $_POST['nick']; $melding = "Navn: " . $navn . "\nE-Mail: " . $mail . "\nTelefon: " . $tele . "\nNick: " . $nick; mail($epost,$emne,$melding); echo 'Påmeldingen er sendt. Gå <a href="index.php">TILBAKE</a><br><br>'; ?> Lenke til kommentar
ZoRaC Skrevet 17. september 2007 Rapporter Del Skrevet 17. september 2007 Før du legger ut det scriptet vil jeg anbefale på det sterkeste at du tar en titt på dette: http://www.securephpwiki.com/index.php/Email_Injection All input fra bruker må sikres! 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å