email uit database versturen via emailform
Fkes een vraagje. Ik heb allemaal verschillende profielen in mijn database staan. Bezoekers kunnen nu op een naam klikken en dan krijgen ze het profiel van de geselecteerde persoon te zien (. In een profiel bevindt zich ook een emailadres. Nu kunnen mensen een e-mail sturen dmv een e-mail sturen. Maar ik zou graag willen dat ze dit dmv een emailform doen. Een emailform is zo te maken, maar hoe zorg ik er voor dat het berichtje naar de geselecteerde persoon ($email) gestuurd wordt. Hopelijk weet iemand het antwoord.
Merci!
Seb.
Je moet net als view.php een mail.php maken met het forum.
En dan bij bij het forum uitvoeren doe je zoiets:
mail('$email', '$subject', $message);
echo "E-mail gestuurd naar: $naam";
in het form van mail.php moet je dus velden hebben waar de sublet en message ingevult kunnen worden
Hoe zorg ik er dan voor dat de juiste$email wordt gepakt, want dit gebeurt in een nieuw .php file die ik aanmaak met het emailformulier.
view.php?id=$id
Datzelfde kun je ook doen met mail:
mail.php?id=$id
wat koen zegt, je kan het met een simpele $_GET[''] varaible de $id dan krijgen :)
Code (php)
1
2
3
4
5
2
3
4
5
if ($submit) {
$result = mysql_query("SELECT * FROM $table WHERE id=$id",$db);
$links = mysql_fetch_array($result);
$id = $links["id"];
$email = $links["email"];
$result = mysql_query("SELECT * FROM $table WHERE id=$id",$db);
$links = mysql_fetch_array($result);
$id = $links["id"];
$email = $links["email"];
Alleen hij zegt wel dat het bericht succesvol is verzonden, maar tevens vermeldt hij dat er geen emailadres in de header is gevonden. Kortom, het bovengenoemde is niet goed, hij haalt het emailadres van het id niet op.
Voor de duidelijkheid in view.php?id heb ik
Code (php)
1
2
3
4
2
3
4
if ($id) {
$result = mysql_query("SELECT *, DATE_FORMAT(datum, '%d/%m/%Y') AS datum_opgemaakt FROM $table WHERE id=$id",$db);
$links = mysql_fetch_array($result);
$id = $links["id"]; etc..
$result = mysql_query("SELECT *, DATE_FORMAT(datum, '%d/%m/%Y') AS datum_opgemaakt FROM $table WHERE id=$id",$db);
$links = mysql_fetch_array($result);
$id = $links["id"]; etc..
Seb.
Controleer sowieso je query!
mysql("query..") or trigger_error(mysql_error());
trigger_error() vervangen door die() als je niet wilt dat je pagina verder geladen wordt als de query mislukt is.
Als men in view.php zit en men wil een email sturen dan klikt men op emailform.php?id
in emailform staat het volgende
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Emailfomulier</title>
</head>
<body>
<form name="form1" method="post" action="post.php">
Naam: <br /><input name="naam" type="text" value=""><br>
E-mail: <br /><input name="email_stuurder" type="text" value=""><br><br>
Bericht: <br /><textarea name="bericht" rows="7" cols="45"></textarea><br>
<input type="submit" name="Submit" value="Verzenden">
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Emailfomulier</title>
</head>
<body>
<form name="form1" method="post" action="post.php">
Naam: <br /><input name="naam" type="text" value=""><br>
E-mail: <br /><input name="email_stuurder" type="text" value=""><br><br>
Bericht: <br /><textarea name="bericht" rows="7" cols="45"></textarea><br>
<input type="submit" name="Submit" value="Verzenden">
</form>
</body>
</html>
Merci!
Seb.
Gewijzigd op 01/01/1970 01:00:00 door seb wd
Ik zou als ik jou was een hidden veld maken, daar het id van de user inzetten, en die uitlezen in post.php met $_POST['naam_van_hidden_field']
Ik ben er niet erg thuis in, zou je met de bovengenoemde code van emailform.php je hidden suggestie willen toevoegen?
Seb.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Emailfomulier</title>
</head>
<body>
<form name="form1" method="post" action="post.php">
Naam: <br /><input name="naam" type="text" value=""><br>
E-mail: <br /><input name="email_stuurder" type="text" value=""><br><br>
Bericht: <br /><textarea name="bericht" rows="7" cols="45"></textarea><br>
<input name="id" type="hidden" value="<?php echo $id; ?>">
<input type="submit" name="Submit" value="Verzenden">
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Emailfomulier</title>
</head>
<body>
<form name="form1" method="post" action="post.php">
Naam: <br /><input name="naam" type="text" value=""><br>
E-mail: <br /><input name="email_stuurder" type="text" value=""><br><br>
Bericht: <br /><textarea name="bericht" rows="7" cols="45"></textarea><br>
<input name="id" type="hidden" value="<?php echo $id; ?>">
<input type="submit" name="Submit" value="Verzenden">
</form>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
met mail() kan het toch zijn dat hij bijvoorbeeld bij hotmail bij ongewense email komt?
phpmailer class. Goed uitzoeken hoe het werkt in de documentatie en dan kun je er alles mee.
@Markeij: zou kunnen, maar ik blijf het zeggen: gebruik de Zet boven die stukjes code van jou eens $id = $_GET['id']. Dan is $id in ieder geval gevuld..
welke stukjes code bedoel, ik heb hierboven namelijk meerdere codes staan.
@Jan: krijg nog steeds hetzelfde bericht: no reciptient addresses found in header....
Merci!
Seb.