Gå til innhold

Problemer med mail skjema


Anbefalte innlegg

Skrevet

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>";
?>

Videoannonse
Annonse
Skrevet

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.

Skrevet (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 av Runar
Skrevet (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 av PHPdude
Skrevet

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.

Skrevet

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.

Skrevet

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>';
?>

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...