[PHP] Mailformulier

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

  • D467
  • Registratie: Juni 2006
  • Laatst online: 09-11 12:33
Ik weet niet of het topic hier thuis hoort....

Maar ik wil dus een mailformuliertje maken dat als ik hem zo aanroep:

www.mijnsite.nl/contact.php?id=info@mijnsite.nl

Dat de e-mail die verzonden wordt via het mailform, naar info@mijnsite.nl gaat. En als ik hem aanroep als: www.mijnsite.nl/contact.php?id=sjaakie@mijnsite.nl, dat hij dan e-mailt via het mailform naar sjaakie@mijnsite.nl. Dus dat de e-mail naar sjaakie@mijnsite.nl verstuurd wordt.


Dit heb ik:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
if(!$_POST['submit']) 
{ 
?> 
<form action='test.php' method=post> 
<input type=text name=naam><BR> 
<input type=text name=email><BR> 
<textarea name=bericht></textarea><BR> 
<input type=submit value=verzenden name="submit"> 
</form> 
<? 
} 
else 
{ 
mail($_GET['id'];," onderwerp","Naam: ".$_POST['naam']."\n E-mail: ".$_POST['email']."\n\n ".$_POST['bericht']."\n \n site formulier van ".$_SERVER['REMOTE_ADDR']."\n","From: ".$_POST['email'].""); 
echo "Mailtje verzonden..."; 
} 
?> 



Wat doe ik fout? En nog beter wie kan me verder helpen?


Ik krijg namelijk van Mailer-Daemon:
A message that you sent contained one or more recipient addresses that were
incorrectly constructed:

Sjaak <>: missing or malformed local part

This address has been ignored. There were no other addresses in your
message, and so no attempt at delivery was possible.

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 07:22

orf

Zo! Spammers zullen blij met je zijn. Met z'on scriptje kun je een leuke run doen.
Waarom moet het mailadres mee gestuurd worden in de url?

De fout die je maakt is dat je een POST doet naar het script zonder de GET var. Je moet dus posten naar het script met GET var of een hidden field opnemen en die POST var gebruiken.

Lees aub iets over veiligheid van mailforms.

  • D467
  • Registratie: Juni 2006
  • Laatst online: 09-11 12:33
orf schreef op vrijdag 20 april 2007 @ 11:33:
Zo! Spammers zullen blij met je zijn. Met z'on scriptje kun je een leuke run doen.
Waarom moet het mailadres mee gestuurd worden in de url?

De fout die je maakt is dat je een POST doet naar het script zonder de GET var. Je moet dus posten naar het script met GET var of een hidden field opnemen en die POST var gebruiken.

Lees aub iets over veiligheid van mailforms.
Ik begrijp wat je bedoeld met de veiligheid maar het is voor lokaal gebruik...
Zou je het script misschien een klein beetje kunnen aanpassen om me op weg te helpen? :) _/-\o_ _/-\o_

  • Sappie
  • Registratie: September 2000
  • Laatst online: 18-11 20:27

Sappie

De Parasitaire Capaciteit!

D467 schreef op vrijdag 20 april 2007 @ 11:30:
Ik weet niet of het topic hier thuis hoort....

Maar ik wil dus een mailformuliertje maken dat als ik hem zo aanroep:

www.mijnsite.nl/contact.php?id=info@mijnsite.nl

Dat de e-mail die verzonden wordt via het mailform, naar info@mijnsite.nl gaat. En als ik hem aanroep als: www.mijnsite.nl/contact.php?id=sjaakie@mijnsite.nl, dat hij dan e-mailt via het mailform naar sjaakie@mijnsite.nl. Dus dat de e-mail naar sjaakie@mijnsite.nl verstuurd wordt.
Doet dat dan op zijn minst met een POST variabele; dit is echt fraude-gevoelig zo. Mailbommen via jouw provider enzo :) Je hebt daarnaast totaal geen controle op je GET variabele. Dat is ook niet echt aan te raden.
edit:
Beetje laat (alweer)...
D467 schreef op vrijdag 20 april 2007 @ 11:30:
Ik weet niet of het topic hier thuis hoort....
Dit heb ik:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
if(!$_POST['submit']) 
{ 
?> 
<form action='test.php' method=post> 
<input type=text name=naam><BR> 
<input type=text name=email><BR> 
<textarea name=bericht></textarea><BR> 
<input type=submit value=verzenden name="submit"> 
</form> 
<? 
} 
else 
{ 
mail($_GET['id'];," onderwerp","Naam: ".$_POST['naam']."\n E-mail: ".$_POST['email']."\n\n ".$_POST['bericht']."\n \n site formulier van ".$_SERVER['REMOTE_ADDR']."\n","From: ".$_POST['email'].""); 
echo "Mailtje verzonden..."; 
} 
?> 



Wat doe ik fout? En nog beter wie kan me verder helpen?


Ik krijg namelijk van Mailer-Daemon:


[...]
Je hebt helemaal geen mail headers volgens mij; ik zal, wil ik meer zeggen, mijn PHP kennis nog eens op moeten halen.
PHP:
1
mail($_GET['id'];," onderwerp","Naam: ".$_POST['naam']."\n E-mail: ".$_POST['email']."\n\n ".$_POST['bericht']."\n \n site formulier van ".$_SERVER['REMOTE_ADDR']."\n","From: ".$_POST['email']."");

Wat doet die eerste ; daar?

Specs | Audioscrobbler


  • orf
  • Registratie: Augustus 2005
  • Laatst online: 07:22

orf

D467 schreef op vrijdag 20 april 2007 @ 11:35:
[...]Zou je het script misschien een klein beetje kunnen aanpassen om me op weg te helpen?
euhh, nee. :)
Leer het zelf.

Kijk eens goed naar de action in je form. Als je daarin de id meegeeft gaat het waarschijnlijk al goed.

  • Sappie
  • Registratie: September 2000
  • Laatst online: 18-11 20:27

Sappie

De Parasitaire Capaciteit!

orf schreef op vrijdag 20 april 2007 @ 11:37:
[...]


euhh, nee. :)
Leer het zelf.

Kijk eens goed naar de action in je form. Als je daarin de id meegeeft gaat het waarschijnlijk al goed.
Wat is test.php uberhaupt voor script? Ik zou verwachten dat het naar dezelfde pagina zou wijzen (contact.php). Volgens mij moet je dan idd echt in de form actien de "id" als get variabele meegeven. Deze moet tenslotte toch ergens vandaan komen.

[ Voor 15% gewijzigd door Sappie op 20-04-2007 11:42 ]

Specs | Audioscrobbler


  • D467
  • Registratie: Juni 2006
  • Laatst online: 09-11 12:33
orf schreef op vrijdag 20 april 2007 @ 11:37:
[...]


euhh, nee. :)
Leer het zelf.

Kijk eens goed naar de action in je form. Als je daarin de id meegeeft gaat het waarschijnlijk al goed.
Ik heb dit al geprobeerd wil ook niet werken:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<? 
if(!$_POST['submit']) 
{ 
mail($_GET['id']," onderwerp","Naam: ".$_POST['naam']."\n E-mail: ".$_POST['email']."\n\n ".$_POST['bericht']."\n \n site formulier van ".$_SERVER['REMOTE_ADDR']."\n","From: ".$_POST['email'].""); 
echo "Mailtje verzonden..."; 
} else { 
?> 
<form action='contact.php' method=post> 
<input type=text name=naam><BR> 
<input type=text name=email><BR> 
<textarea name=bericht></textarea><BR> 
<input type=submit value=verzenden name="submit"> 
</form> 
<? 
} 
?> 
Sappie schreef op vrijdag 20 april 2007 @ 11:38:
[...]

Wat is test.php uberhaupt voor script? Ik zou verwachten dat het naar dezelfde pagina zou wijzen (contact.php).
Test.php bedoel ik eigenlijk gewoon contact.php mee, alleen hier staat hij tijdelijk als test.php :P

[ Voor 17% gewijzigd door D467 op 20-04-2007 11:41 ]


  • orf
  • Registratie: Augustus 2005
  • Laatst online: 07:22

orf

Ik zie geen id in de action?

  • Scrummie
  • Registratie: Februari 2003
  • Laatst online: 04-11 09:03

Scrummie

Think different

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
if(!$_POST['submit']) 
{ 
?> 
<form action='test.php?id=<?=$_GET['id']?>' method=post> 
<input type=text name=naam><BR> 
<input type=text name=email><BR> 
<textarea name=bericht></textarea><BR> 
<input type=submit value=verzenden name="submit"> 
</form> 
<? 
} 
else 
{ 
mail($_GET['id']," onderwerp","Naam: ".$_POST['naam']."\n E-mail: ".$_POST['email']."\n\n ".$_POST['bericht']."\n \n site formulier van ".$_SERVER['REMOTE_ADDR']."\n","From: ".$_POST['email'].""); 
echo "Mailtje verzonden..."; 
} 
?> 


Dit zou moeten werken.

Seizoenskaarthouder Feyenoord - Vak T


  • D467
  • Registratie: Juni 2006
  • Laatst online: 09-11 12:33
Scrummie schreef op vrijdag 20 april 2007 @ 11:42:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
if(!$_POST['submit']) 
{ 
?> 
<form action='test.php?id=<?=$_GET['id']?>' method=post> 
<input type=text name=naam><BR> 
<input type=text name=email><BR> 
<textarea name=bericht></textarea><BR> 
<input type=submit value=verzenden name="submit"> 
</form> 
<? 
} 
else 
{ 
mail($_GET['id']," onderwerp","Naam: ".$_POST['naam']."\n E-mail: ".$_POST['email']."\n\n ".$_POST['bericht']."\n \n site formulier van ".$_SERVER['REMOTE_ADDR']."\n","From: ".$_POST['email'].""); 
echo "Mailtje verzonden..."; 
} 
?> 


Dit zou moeten werken.
Bedankt werkt nu!!! Alleen klein schoonheidsfoutje; die = hoorde daar niet :P

code:
1
<?=$_GET['id']?>

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 08:53
D467 schreef op vrijdag 20 april 2007 @ 11:49:
[...]


Bedankt werkt nu!!! Alleen klein schoonheidsfoutje; die = hoorde daar niet :P

code:
1
<?=$_GET['id']?>
Die hoort daar wel.

PHP:
1
<?php echo $_GET['id']; ?>


mag ook.

  • D467
  • Registratie: Juni 2006
  • Laatst online: 09-11 12:33
InZane schreef op vrijdag 20 april 2007 @ 11:51:
[...]


Die hoort daar wel.

PHP:
1
<?php echo $_GET['id']; ?>


mag ook.
Hmm... het werkt nu maar de afzender is nu niet meer het e-mail adres wat is ingevuld...

  • Sappie
  • Registratie: September 2000
  • Laatst online: 18-11 20:27

Sappie

De Parasitaire Capaciteit!

Wat staat er in je adres balk? Lijkt me sterk dat het email adres daarvan zou afwijken.

Specs | Audioscrobbler


  • D467
  • Registratie: Juni 2006
  • Laatst online: 09-11 12:33
Sappie schreef op vrijdag 20 april 2007 @ 11:58:
Wat staat er in je adres balk? Lijkt me sterk dat het email adres daarvan zou afwijken.
www.mijnsite.nl/contact.php?id=info@mijnsite.nl

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Als je een mailtje stuurt moet je ook zorgen dat je headers kloppen. Die parameter is er niet voor niets. ;) Hoe je die headers moet vullen staat op de PHP-site wel te lezen en het is ook heel uitgebreid behandeld in diverse topics in het forum waar dit topic eigenlijk hoort, namelijk Programming. Je zit hier verkeerd. ;)

Aangezien jouw insteek van dit topic niet echt de insteek is die we hier willen ("Zou je het script misschien een klein beetje kunnen aanpassen om me op weg te helpen?") doe ik dit topic op slot in plaats van het te verplaatsen. Ga even op zoek in Programming en dan kom je er wel uit. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.