Hallo Leute,
ich habe ein Problem mit meinem "Seite empfehlen"-Script
Auf der zu empfehlenden Seite habe ich folgenden Link der ein PopUp aufruft und dabei die aktuelle URL übergibt:
<a href="#" onClick="window.open('/_lib/empfehlen.php?ref='+location.href,'NewWindow','width=600, height=600')">Seite weiterempfehlen</a>
So hier der Quelltext der empfehlen.php:
<!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>
<title></title>
</head>
<body>
<?php
$url = $_GET['ref'];
if (isset($_POST['submit'])) { //ist das Formular abgesendet worden?
$error = false;
$regex ="/^"."[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*"."@" ."([a-zA-Z0-9-]+\.)+"."([a-zA-Z]{2,4})"."$/";
if (!preg_match($regex, $_POST['s_email'])) {
echo "Geben Sie eine gültige Sender-Emailadresse ein!<br /><br />";
$error = true;
}
if (!preg_match($regex,$_POST['e_email'])) {
echo "Geben Sie eine gültige Empfänger-Emailadresse ein!<br /><br />";
$error = true;
}
if ($_POST['s_email'] == $_POST['e_email']) {
echo "Geben Sie zwei verschiedene Emailadressen an!<br /><br />";
$error = true;
}
if ($_POST['s_name'] == "" or $_POST['e_name'] == "") {
echo "Geben Sie sowohl ihren Namen als auch den Empfängernamen an!<br /><br />";
$error = true;
}
if ($error == true) {
echo "<a href=\"javascript:history.back()\"><strong>Zurück</strong></a>";
}
else { //Email versenden
//im folgenden wird die Nachricht generiert.
$nachricht = "Hallo ".$_POST['e_name'].", \n";
$nachricht .= $_POST['s_name'] ." hat gerade die Seite www.doedel.de besucht und meint, dass eventuell auch ".$ref." für dich interessant sein könnte. \n";
$nachricht .= "Er hinterließ dir folgende Nachricht: \n";
$nachricht .= $_POST['nachricht'];
$nachricht .= "\nEs würde uns freuen wenn du mal vorbei schaust!\n";
$nachricht = strip_tags($nachricht); //nur zur Sicherheit!
if (!mail($e_email,"Surftipp von ".$_POST['s_name'],$nachricht, "From: ".$s_email)) {
echo "Mail konnte nicht versand werden!";
}
else {
echo "Die Email wurde erfolgreich versendet!";
echo "<a href=\"javascript:window.close()\">Fenster schließen</a>";
}
}
}
else {
?>
Sie können hier die gerade gelesene Seite an Freunde, Bekannte oder Kollegen weiterempfehlen.<br/><br/>
Die Eingabe der Namen und Email-Adressen sind notwendig, diese werden von uns nicht weitergegeben bzw. weiterverwendet.<br/><br/><br/>
<form method="post" action="empfehlen.php">
<table width="460" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="203" height="30" valign="MIDDLE" align="RIGHT">Ihr Name:</td>
<td width="257" valign="MIDDLE" align="RIGHT"><input type="text" name="s_name" class="formfeld" /></td>
</tr>
<tr>
<td height="30" valign="MIDDLE" align="RIGHT">Ihre Email Adresse:</td>
<td valign="MIDDLE" align="RIGHT"><input type="text" name="s_email" class="formfeld" /></td>
</tr>
<tr>
<td height="18" valign="top"> </td>
<td valign="top"> </td>
</tr>
<tr>
<td height="30" valign="MIDDLE" align="RIGHT">Name ihres Freundes:</td>
<td valign="MIDDLE" align="RIGHT"><input type="text" name="e_name" class="formfeld" /></td>
</tr>
<tr>
<td height="30" valign="MIDDLE" align="RIGHT">Email Adresse ihres Freundes:</td>
<td valign="MIDDLE" align="RIGHT"><input type="text" name="e_email" class="formfeld" /></td>
</tr>
<tr>
<td height="35" valign="top"> </td>
<td valign="top"> </td>
</tr>
<tr>
<td valign="top" height="154" align="RIGHT">Nachricht (optional):</td>
<td valign="top" align="RIGHT"><textarea name="nachricht" rows="8" class="formfeld" /></textarea></td>
</tr>
<tr>
<td height="53" valign="top"> </td>
<td valign="MIDDLE"> <input type="submit" name="submit" value="SENDEN" class="formbutton" /></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Die URL wird wunderbar übergeben, die habe ich nämlich mal mit einem echo ausgegeben, das hat funktionert. Auch die komplette Abfrage auf Korrektheit funktioniert. Wenn alles okay ist komplett allerdings die Meldung:
"Internal Server Error, The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator."
Leider weiß ich nicht wo mein Fehler ist. Irgendeiner einen Tip ?
Danke Mikee