Ich bin jetzt so weit, das die Seite A ihre Adresse an Seite B weitergibt,
die auch sichtbar ist.
Formular funktioniert nur halb. Die Mails kommen an.
Alle Felder werden ausgegeben nur der Link nicht.
Alle Felder haben im Formular einen Namen nur der Link nicht.
Liegt es vielleicht daran?
Das kommt als Mail:
--------------------------------------------
Diese Seite ist sehenswert:
hier sollte die vollständige URL stehen
pepe
Diese Seite musst du dir ansehen.
Ciao
--------------------------------------------
Seite A:
<a href="/anfreundsenden/index.php?adresse=<?=str_replace("?", "%_%", $_SERVER['REQUEST_URI'])?>">an Freund senden</a>
Seite B:
Um die ganze URL zu schicken, muss ich sicher die Zeichenkette "http://www.meineseite.de" vor
str_replace einfügen?
<?php
//Formulardaten empfangen
$link = str_replace("%_%", "?", $_GET['adresse']);
$name = trim($_POST["name"]);
$email = trim($_POST["email"]);
$nachricht = trim(substr($_POST["nachricht"],0,150));
$button = $_POST["button"];
//include ("../funktionen/funktionen.php");
function check_email($email) {
//email nach dem @-Zeichen aufgetrennt
$addarray = explode("@",$email);
//gab es mehr oder weniger als ein @-Zeichen? Dann falsch
if(count($addarray) != 2) return false;
//ist der Teil vor dem @-Zeichen leer? Dann falsch
if(strlen($addarray[0]) == 0) return false;
//ist der Domain_teil nach dem @-Zeichen kleiner als 5 Zeichen? Dann falsch
if(strlen($addarray[1]) < 5) return false;
//Punkt f¸r Toplevel-Domain auslesen
$punktarray = explode(".",$addarray[1]);
//gab es weniger als einen Punkt, dann ung¸ltig, falsch
if(count($punktarray) < 2) return false;
//TopLevelDomain merken
$tld = $punktarray[count($punktarray)-1];
//TLD hat mindestens 2, max. 6 Zeichen
if(strlen($tld) >= 2 && strlen($tld) <= 6) return true;
}
//Formulardaten versendet?
if($button){
//Pflichtfelder leer?
if(!$name || !$email || !$nachricht){
$meldung[] = "Bitte alle * Felder ausfüllen";
}
//Email-Adresse falsch?
$check = check_email($email);
//$check = true;
if(!$check){
$meldung[] = "Bitte geben Sie eine korrekte E-Mail ein";
}
//alles in Ordnung?
if(!$meldung){
//email versenden!!!
$subject = "Diese Seite ist sehenswert ".date("d.m.Y H:i:s");
$mailbody = "Einen Freund informieren:
$link\n\n".
"$name\n$nachricht\n\n".
"Ciao";
//Das @-Zeichen vor mail unterdrückt Verbindungsfehler
$versandt = @mail("$email_empfaenger", $subject, $mailbody, "From: $email");
if($versandt) header("Location: /anfreundsenden/antwort.php?name=".urlencode($name));
//eigene Fehlerausgabe
else $meldung[] = "Verbindungsprobleme! Versuche Sie es später noch einmal.<br /><br />";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Einen Freund informieren</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h3>An Freund senden:</h3>
<?php
if(is_array($meldung)){
echo implode("<br />", $meldung);
}
?>
<form action="/anfreundsenden/index.php" method="post">
<p>
<!-- HTML-nachricht -->
Link an Freund senden:
http://www.meineseite.de<?php echo $link; ?>
</p>
<p>Ihr Name *<br />
<input type="text" name="name" value="<?php echo $name; ?>" maxlength="50" size="50" />
<br />
Ihre E-Mail Adresse *<br />
<input type="text" name="email" value="<?php echo $email; ?>" maxlength="50" size="50" />
<br />
E-Mail Adresse des Empfängers*<br />
<input type="text" name="email_empfaenger" value="<?php echo $email_empfaenger; ?>" maxlength="50" size="50" />
<br />
Nachricht *<br />
<textarea name="nachricht" cols="50" rows="5" wrap="virtual"><?php echo $nachricht; ?></textarea>
<br />
<input type="submit" name="button" value="versenden" />
</p>
</form>
</body>
</html>