[PHP] Mailform

Pagina: 1
Acties:
  • 48 views sinds 30-01-2008

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Ik heb hetzelfde doel ook al een keer met Perl willen bereiken, maar dat lukte niet dus dacht ik, laten we het eens met PHP proberen.

Ik zit nog steeds bij Portland btw.

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<HTML> 
<HEAD> 
<TITLE>Guestbook Script</TITLE>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<FORM METHOD="POST" ACTION="mailform.php">

<INPUT NAME="name" SIZE=50 TYPE="text"> <B>Your Name</B><BR>
<INPUT NAME="email" SIZE=50 TYPE="text"> <B>Your E-Mail Address</B><BR>
<INPUT TYPE="hidden" NAME="submitaddress" VALUE="mrbombastico@hotmail.com">
<B>Write to me below:</B><P>
<TEXTAREA NAME="feedback" ROWS=10 COLS=50></TEXTAREA><P>

<CENTER>
<INPUT TYPE=submit VALUE="SEND">
<INPUT TYPE=reset VALUE="CLEAR">
</CENTER>

</FORM>

</BODY> 
</HTML>


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
/*
.
*/

// ************* MODIFY THE NEXT THREE LINES *****************************
$title = "Guestbook Script"; // <--- PUT THE TITLE OF YOUR HOME PAGE BETWEEN THE "" MARKS
$home = "http://degoeij.port5.com/phpform.html"; // <--- PUT YOUR URL BETWEEN THE "" MARKS
$mailto = "mrbombastico@hotmail.com"; // <--- PUT YOUR E-MAIL ADDRESS BETWEEN THE "" MARKS
// ********************* MODIFY NO MORE ********************************


// Bedankt !
PRINT "<html><head><title>Bedankt !</title></head><body><div align=\"left\"><body bgcolor="#FFBB55"><table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\"><tr><td width=\"100%\" height=\"50\"></td></tr><tr><td width=\"100%\" valign=\"top\" align=\"left\"><p align=\"center\"><font face=\"Arial\" size=\"3\">Uw bericht is verzonden !</font></p><p align=\"center\"><font face=\"Arial\" size=\"4\"><a href=\"$home\"></font></p></td></tr><tr><td width=\"100%\" height=\"20\"></td></tr></table></div></body></html>";

// Scrape off the slashes before processing
$umsg = stripslashes($umsg);


// Here is where we grab and process the form and variables from mailform.php
// and e-mail the results to the value of "$mailto"


$mailfrom = "From: $uemail";
$subject= "$usubj";
$body = "* * * * * MAILFORM 12GRATIS.NL * * * * *\n\nIP-adres: $REMOTE_ADDR\nNaam: $uname\nEMail: $uemail\n $usubj\nBericht: $umsg\n\n* * * * * MAILFORM 12GRATIS.NL * * * * *";

mail ($mailto, $subject, $body, $mailfrom);

?>


Nu krijg ik echter een Parse error als dit ik ga uitvoeren.

Parse error: parse error in /host/d/e/g/p/o/r/degoeij.port5.com/mailform.php on line 17

Wat doe ik fout?

Before me there was many, after me there will be none. I'm the one!


  • Mexicanos
  • Registratie: Juli 2001
  • Niet online
Kijk eens naar de kleuren van regel 14. Daar zie je duidelijk waar het fout gaat.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Dat niet alleen.. Gezien de variabelen heb ik zo een vaag vermoeden dat de PHP niet bij de HTML hoort.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Is de afgebeelde PHP code wel mailform.php? En in regel 14 moet je inderdaad bij de body background kleur de " vervangen door \" of '

[ Voor 11% gewijzigd door Verwijderd op 12-05-2003 23:55 ]


  • Mexicanos
  • Registratie: Juli 2001
  • Niet online
Dit viel mij inderdaad ook al op maar misschien dat ie niet alle code heeft gepost. Maar de fout die die krijgt komt waarschijnlijk toch door de fout van de ontbrekende slashes in regel 14.

Verwijderd

Uit de PHP die je hebt gepost:
//Here is where we grab and process the form and variables from mailform.php

Bovenstaande code is dus niet mailform.php.... Je kunt beter de code van mailform.php posten zodat we kunnen zien welke error er in die regel zit!

[ Voor 12% gewijzigd door Verwijderd op 13-05-2003 00:01 ]


  • KolNedra
  • Registratie: September 2001
  • Laatst online: 18-04-2020

KolNedra

...

1> $umsg variable, is nergens gedeclareerd / gevuld (maw, je geeft nergens een waarde als 'umsg' mee, dus stripslashes($umsg) zal altijd "null" zijn

2> in de Print zit een " break, maw je kan beter voor \" of een single quote gebruiken ('), dus:
PHP:
1
...><body><div align='left'><body bgcolor='#FFBB55'><table border='0' cellpadding..


3> Misschien voor de netheid v/d code dat je alles zo neerzet zoals PHP het gewild heeft
stripslashes() > stripSlashes()

4>
HTML:
1
<INPUT TYPE="hidden" NAME="submitaddress" VALUE="mrbombastico@hotmail.com">

Waar komt deze waarde / variabelle verder voor in je PHP script?
je veranderd zelf een nog lege waarde "$mailto" naar jouw email adres, waarom geef je deze HIDDEN value dan mee in je POST?

5> Net als punt (1)
$uname, $uemail, $subject (/$usubj) zijn allemaal LEGE variabellen, je email tekst is dus gewoon "LEEG", met uitzondering van die meegestuurde strings

Kijk je code nog eens na, en als je een PARSE ERROR krijgt, als eerste naar je DOUBLE QUOTES kijken, of je die wel of eventueel niet met een extra slash heb voorzien

6> Je stuurt je email als een HTML en PLAIN tekst format weg, dus je krijgt een vreemde wirwar van HTML en normale tekst als resultaat, mijn oplossing; gebruik headers in je email zodat de ontvanger het duidelijk kan lezen / ontvangen, een voorbeeld:
PHP:
1
2
3
4
5
6
7
8
$headers = "From: 12GRATIS WebBot <webbot@12gratis.nl>\n"; // Sent from
$headers .= "X-Sender: <mail@12gratis.nl>\n"; // Email sender
$headers .= "X-Mailer: PHP\n"; // mailer
$headers .= "X-Priority: 1\n"; // Urgent message!
$headers .= "Return-Path: <noreply@12gratis.nl>\n";  // Return path for errors
$headers .= "Content-Type: text/html; charset=iso-8859-1\n"; // HTML Style

mail($mailTo,$subject,$body,$headers);

[ Voor 65% gewijzigd door KolNedra op 13-05-2003 00:12 ]

::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM


Verwijderd

KolNedra: zoals ik al eerder aangaf, de geplaatste code is niet mailform.php, dus die variabelen komen hier niet voor.

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Sorry, dit is idd de verkeerde code. Ik had m van een site afgeplukt, maar niet goed gelezen dat dit een feedback.php was.

Sorry voor het ongemak.

Dus ben ik zelf ff aan de gang gegaan met een nieuwe pagina.
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<HTML> 
<HEAD> 
<TITLE>Guestbook Script</TITLE>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<FORM METHOD="POST" ACTION="mailform.php">

<INPUT NAME="naam" SIZE=50 TYPE="text"> <B>Your Name</B><BR>
<INPUT NAME="email" SIZE=50 TYPE="text"> <B>Your E-Mail Address</B><BR>
<B>Write to me below:</B><P>
<TEXTAREA NAME="Boodschap" ROWS=10 COLS=50></TEXTAREA><P>

<CENTER>
<INPUT TYPE=submit VALUE="SEND">
<INPUT TYPE=reset VALUE="CLEAR">
</CENTER>

</FORM>

</BODY> 
</HTML>


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<? 
  $myemail="mrbombastico@hotmail.com"; 
  $myname="Portland"; 
  $onderwerp="Guestbook"; 
  $naam="Naam: $naam\n"; 
  $email="E-mail: $email\n"; 
  $Boodschap="Boodschap: $boodschap\n"; 
  $Date="Datum van aanvraag: " . date("Y-m-d H:i:s") . "\n"; 
    
  mail("mrbombastico@hotmail.com", "$onderwerp", "$Date $naam $email $Boodschap", "From: $naam<$email>\nReturn-path: $email"); 
  mail("$email", "$onderwerp", "From: $myname<$myemail>\nReturn-path: $myemail"); 
?>


Nu krijg ik geen foutmeldingen, maar een witte pagina. Dat is geen probleem, maar ik ontvang geen email nu. Dat is wel raar.

Duurt dat altijd zo lang of is er nog iets fout?

Before me there was many, after me there will be none. I'm the one!


  • KolNedra
  • Registratie: September 2001
  • Laatst online: 18-04-2020

KolNedra

...

Verwijderd schreef op 13 mei 2003 @ 00:11:
KolNedra: zoals ik al eerder aangaf, de geplaatste code is niet mailform.php, dus die variabelen komen hier niet voor.
Damn, waarom verspil ik me moeite er dan aan |:(

::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM


  • KolNedra
  • Registratie: September 2001
  • Laatst online: 18-04-2020

KolNedra

...

Okay, ik zal nog eens over de code heen gaan:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<? 
  $myemail="mrbombastico@hotmail.com"; 
  $myname="Portland"; 
  $onderwerp="Guestbook"; 
  $naam="Naam: $naam\n"; 
  $email="E-mail: $email\n"; 
  $Boodschap="Boodschap: $boodschap\n"; 
  $Date="Datum van aanvraag: " . date("Y-m-d H:i:s") . "\n"; 
     
  mail("mrbombastico@hotmail.com", "$onderwerp", "$Date $naam $email $Boodschap", "From: $naam<$email>\nReturn-path: $email"); 
  mail("$email", "$onderwerp", "From: $myname<$myemail>\nReturn-path: $myemail"); 
?> 
de mail functie:
PHP:
1
mail($ontvanger,$onderwerp,$inhoud,$headers);

(Headers zijn niet verplicht)
jij doet:
PHP:
1
mail($ontvanger,$onderwerp,$headers);


Je mist dus de inhoud


btw: Als je een variabele meegeeft aan je mail functie, hoef je geen quotes te gebruiken
"$onderwerp" > $onderwerp

Nog wat puntjes:
In de HTML geef je Boodschap mee, terwijl je in je PHP $boodschap gebruikt (case sensitive)

Dan misschien de hele clue van deze reply
Je veranderd je $email in: "Email: $email"
Probeer maar eens met JOUW hotmail account een email te versturen naar het volgende adres (exact overtypen) : Email: mrbombastico@hotmail.com
100 euro op zetten dat die nooit aankomt, laat regel 6 gewoon weg

[ Voor 50% gewijzigd door KolNedra op 13-05-2003 00:21 ]

::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM


Verwijderd

KolNedra schreef op 13 May 2003 @ 00:13:
[...]

Damn, waarom verspil ik me moeite er dan aan |:(
Waarschijnlijk omdat je de draad niet goed gelezen hebt :)

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Het is me nog steeds niet helemaal gelukt.
Ik snap niet helemaal wat ik nu wel en niet moet laten staan.

Ik heb nu:
PHP:
1
2
3
4
5
6
7
8
9
10
<? 
  $myemail="mrbombastico@hotmail.com"; 
  $onderwerp="Guestbook"; 
  $naam="Naam: $naam\n"; 
  $email="$email\n"; 
  $Boodschap="Boodschap: $Boodschap\n"; 
      
  mail("$myemail", "$onderwerp", "$naam $email $Boodschap", "From: $naam<$email>\nReturn-path: $email"); 
  mail("$myemail", "$onderwerp", "From: $naam<$myemail>\nReturn-path: $myemail"); 
?>

Before me there was many, after me there will be none. I'm the one!


  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 21-08 20:54
bij php.net kan je vinden waar alles bij de functie mail voor staat

en dan ff tussendoor met dat $myemail stuur je 2 mailtjes naar mrbombastic omdat je 2 x mail definieert met $myemail

check eerst ff http://www.php.net/manual/en/function.mail.php

[ Voor 4% gewijzigd door EnsconcE op 13-05-2003 00:41 . Reden: foute link ]


  • KolNedra
  • Registratie: September 2001
  • Laatst online: 18-04-2020

KolNedra

...

Okay, om even v/d basics te beginnen.
Ik geef je een voorbeeld van een email functie:
PHP:
1
2
mail("info@microsoft.com","When does Longhorn get's released?","can someone tell me when I can buy Windows Longhorn\nI'm really looking forward to this new windows procuct\n\n\Yours truly,\nKolNedra");
// mail("ontvanger","onderwerp","inhoud");

::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM


  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Je moet zeker eerst zorgen dat je een php programma ook zelf op je pc hebt staan, omdat ie anders niks verzendt?

Before me there was many, after me there will be none. I'm the one!


Verwijderd

lol als je php zelf niet op je pc hebt staan.. dan ken je idd niet gaan testen of je php wel werkt..... + de php functies worden niet ondersteunt waardoor mail of whatever niet gebruikt kennen worden.

Verwijderd

zolang je php op de server hebt waar het script draait. op de client pc hoef je het niet te hebben. anders had je ook je php code wel in je browservenster te zien gekregen

[ Voor 10% gewijzigd door Verwijderd op 13-05-2003 10:31 ]


  • KolNedra
  • Registratie: September 2001
  • Laatst online: 18-04-2020

KolNedra

...

Zolang je geen errors of PHP codes krijgt te zien in je browser ondersteunt die server (imho) PHP wel en heeft deze ook een mail server draaien

::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM


  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 21-08 20:54
mrbombastic schreef op 13 May 2003 @ 00:57:
Je moet zeker eerst zorgen dat je een php programma ook zelf op je pc hebt staan, omdat ie anders niks verzendt?
php is server side, oftwel wat jij programmeert word eerst door de server verwerkt en vervolgens word het naar de browser van een client gestuurd. De functie mail word alleen ondersteund als er op de server een mailserver draait. En wat betreft over dat php programma, gebryuik een debugger en voor dat je heir vragen gaat stellen: er valt heel wat op internet te vinden, ik heb ook ooit es et probleem gehad wat jij nu hebt, dook op google en kwam eruit, moet jou ook lukken d8 ik zo

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Misschien heel hard: GoT is niet bedoeld voor het absolute begin.
Jij staat daar nog wel. Ik zou je dan ook willen vragen gewoon eerst eens rustig enkele tutorials van PHP te volgen over het mailen van berichten : http://www.google.nl/sear...UTF-8&oe=UTF-8&hl=xx-bork

Als dat niet lukt kun je ook kijken naar de problemen die er vaak in voorkomen : http://www.google.nl/sear...UTF-8&q=PHP+mail+problems

Je zult zien dat je er dan makkelijk zelf uit komt :)

Ik wens je er veel succes mee :)
Pagina: 1

Dit topic is gesloten.