kekskruemel
Angesehenes Mitglied
Ich habe folgende Datei mit php Inhalt geschrieben. Diese nutze ich ohne Veränderung seit langem. Doch ich war dann mal auf einen neuen Anbieter (Strato) gewechselt und seit dem funktioniert es nicht mehr. Dasselbe auch bei einer Registrierungsdatei und da habe ich auch festgestellt, dass es erst dann wieder geht, wenn ich den Mailversand ausklammere.
Es muss also - so denke ich - daran liegen. Doch ich finde keinen Fehler. Es lief früher ja auch einmal. Ich denke daher, dass es eher an einer Einstellung auf meinem Strato VServer liegt oder dass dort eine neuere php version installiert ist, die das nicht mehr beinhaltet. (http://tankcheck.de/phpinfo.php)
CODE <?php
session_start();
include('global.php');
$content = "";
//////////////////////////////////////////
//Kontrolle ob eingeloggt oder nicht wegen SPAM-Captcha
//////////////////////////////////////////
if($_SESSION['level'] <> "0")
{
$spam = "true";
}
else
{
if(@$_POST['spam'] == $_SESSION['bg'])
{
$spam = "true";
}
else
{
$spam = "false";
}
}
//////////////////////////////////////////
//Beginn Mailerstellung und Versand
//////////////////////////////////////////
if((@$_GET['mail'] == "true") AND ($_POST['sender_name'] <> "") AND ($_POST['sender_email'] <> "") AND ($_POST['contact_betr'] <> "") AND ($_POST['contact_text'] <> "") AND ($spam == "true"))
{
$text = $_SERVER['REQUEST_URI'];
$treffer = strrchr($text, '/');
$pfad = str_replace($treffer, '', $text);
$server = "<img src='http://".$_SERVER['HTTP_HOST'].$pfad."/img/logo.gif'>";
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i:s",$timestamp);
$sender_name = $_POST['sender_name'];
$sender_email = $_POST['sender_email'];
$this->tmp_file = TEMPLATE_DIR."/email/".$_SESSION['sess_lang']."_kontakt.html";
$this->error = $lang['msg_no_template'];
$this->content = "";
$file = @fopen($this->tmp_file, "r");
if(!$file)
{
echo $this->error;
}
else
{
while(!feof($file))
{
$temp = fgets($file, 4096);
$this->content .= $temp;
}
}
$this->content = str_replace("{server}", $server, $this->content);
$this->content = str_replace("{sender_name}", $sender_name, $this->content);
$this->content = str_replace("{sender_email}", $sender_email, $this->content);
$this->content = str_replace("{lang_betreff}", $lang['contact_betr'], $this->content);
$this->content = str_replace("{betreff}", $_POST['contact_text'], $this->content);
$this->content = str_replace("{lang_text}", $lang['contact_text'], $this->content);
$this->content = str_replace("{contact_text}", $_POST['contact_text'], $this->content);
$this->content = str_replace("{time}", $datum." - ".$uhrzeit, $this->content);
$adresse = $sender_email;
$adresse1 = $contact_mail;
$betreff = $lang['contact_mail_betr']."(".$datum." / ".$uhrzeit.")";
$betreff1 = "Kontaktaufnahme von ".$sender_name." (".$sender_email.")";
$inhalt = $this->content;
$header = "From: <".$contact_mail.">\r\n";
$header .= "Content-Type:text/html\r\n";
$mail = @mail($adresse,$betreff,$inhalt,$header);
$mail1 = @mail($adresse1,$betreff1,$inhalt,$header);
if(($mail) && ($mail1))
{
$msg = $lang['msg_mail_ok'];
}
elseif((!$mail) OR (!$mail1))
{
$msg = $lang['msg_mail_false'];
}
}
elseif((@$_GET['mail'] == "true") AND (($_POST['sender_name'] == " ") OR ($_POST['sender_email'] == "") OR ($_POST['contact_betr'] == "") OR ($_POST['contact_text'] == "") OR $spam = "false") )
{
$_SESSION['sess_contact_betr'] = @$_POST['contact_betr'];
$_SESSION['sess_contact_text'] = @$_POST['contact_text'];
$msg = $lang['msg_mail'];
}
//////////////////////////////////////////
//Ende Mailerstellung und Versand
//////////////////////////////////////////
//////////////////////////////////////////
//Beginn Kontaktformular
//////////////////////////////////////////
$content .= "<table><form method=post action='kontakt.php?mail=true'><div class=head>".$lang['contact']."</div><br>";
$content .= "<tr><td colspan=2>".$lang['name'].": <br><input type=text name=sender_name size=30 value='".@$_SESSION['sess_user_vorname']." ".$_SESSION['sess_user_name']."'></td></tr>";
$content .= "<tr><td colspan=2>".$lang['email'].": <br><input type=text name=sender_email size=30 value='".@$_SESSION['sess_user_email']."'></td></tr>";
$content .= "<tr><td colspan=2>".$lang['contact_betr'].": <br><input type=text name=contact_betr size=30 value='".@$_SESSION['sess_contact_betr']."'></td></tr>";
$content .= "<tr><td colspan=2>".$lang['contact_text'].": <br><textarea name=contact_text rows=10 cols=35>".@$_SESSION['sess_contact_text']."</textarea></td></tr>";
// SPAM SCHUTZ BILD DA, WENN USER NICHT EINGELOGGT
if($_SESSION['level'] <> "0") $content .= "";
else $content .= "<tr><td width=90px>".$lang['sicherheit'].":<br><img src='bild.php'></td><td valign=bottom align=left><input type=text maxlength=5 size=5 name=spam></td></tr>";
//ENDE SPAM SCHUTZ
$content .= "<tr><td><button name=weiterleitung type=submit class='Button'> ".$lang['senden']."</button></td></tr></form></table>";
//////////////////////////////////////////
//Ende Kontaktformular
//////////////////////////////////////////
// Klasse hinzuladen
include("template.class.php");
// Objekt erzeugen ($error wird bereits im Konstrukt definiert und ist hier nur optional)
$template = new template("template/home.html");
// Datei einlesen
$template->readtemplate();
// Platzhalter ersetzen
$template->replace("title", $lang['kontakt_title']);
$template->replace("meta", $lang['kontakt_meta']);
include('footer.php');
?>
Es muss also - so denke ich - daran liegen. Doch ich finde keinen Fehler. Es lief früher ja auch einmal. Ich denke daher, dass es eher an einer Einstellung auf meinem Strato VServer liegt oder dass dort eine neuere php version installiert ist, die das nicht mehr beinhaltet. (http://tankcheck.de/phpinfo.php)
CODE <?php
session_start();
include('global.php');
$content = "";
//////////////////////////////////////////
//Kontrolle ob eingeloggt oder nicht wegen SPAM-Captcha
//////////////////////////////////////////
if($_SESSION['level'] <> "0")
{
$spam = "true";
}
else
{
if(@$_POST['spam'] == $_SESSION['bg'])
{
$spam = "true";
}
else
{
$spam = "false";
}
}
//////////////////////////////////////////
//Beginn Mailerstellung und Versand
//////////////////////////////////////////
if((@$_GET['mail'] == "true") AND ($_POST['sender_name'] <> "") AND ($_POST['sender_email'] <> "") AND ($_POST['contact_betr'] <> "") AND ($_POST['contact_text'] <> "") AND ($spam == "true"))
{
$text = $_SERVER['REQUEST_URI'];
$treffer = strrchr($text, '/');
$pfad = str_replace($treffer, '', $text);
$server = "<img src='http://".$_SERVER['HTTP_HOST'].$pfad."/img/logo.gif'>";
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i:s",$timestamp);
$sender_name = $_POST['sender_name'];
$sender_email = $_POST['sender_email'];
$this->tmp_file = TEMPLATE_DIR."/email/".$_SESSION['sess_lang']."_kontakt.html";
$this->error = $lang['msg_no_template'];
$this->content = "";
$file = @fopen($this->tmp_file, "r");
if(!$file)
{
echo $this->error;
}
else
{
while(!feof($file))
{
$temp = fgets($file, 4096);
$this->content .= $temp;
}
}
$this->content = str_replace("{server}", $server, $this->content);
$this->content = str_replace("{sender_name}", $sender_name, $this->content);
$this->content = str_replace("{sender_email}", $sender_email, $this->content);
$this->content = str_replace("{lang_betreff}", $lang['contact_betr'], $this->content);
$this->content = str_replace("{betreff}", $_POST['contact_text'], $this->content);
$this->content = str_replace("{lang_text}", $lang['contact_text'], $this->content);
$this->content = str_replace("{contact_text}", $_POST['contact_text'], $this->content);
$this->content = str_replace("{time}", $datum." - ".$uhrzeit, $this->content);
$adresse = $sender_email;
$adresse1 = $contact_mail;
$betreff = $lang['contact_mail_betr']."(".$datum." / ".$uhrzeit.")";
$betreff1 = "Kontaktaufnahme von ".$sender_name." (".$sender_email.")";
$inhalt = $this->content;
$header = "From: <".$contact_mail.">\r\n";
$header .= "Content-Type:text/html\r\n";
$mail = @mail($adresse,$betreff,$inhalt,$header);
$mail1 = @mail($adresse1,$betreff1,$inhalt,$header);
if(($mail) && ($mail1))
{
$msg = $lang['msg_mail_ok'];
}
elseif((!$mail) OR (!$mail1))
{
$msg = $lang['msg_mail_false'];
}
}
elseif((@$_GET['mail'] == "true") AND (($_POST['sender_name'] == " ") OR ($_POST['sender_email'] == "") OR ($_POST['contact_betr'] == "") OR ($_POST['contact_text'] == "") OR $spam = "false") )
{
$_SESSION['sess_contact_betr'] = @$_POST['contact_betr'];
$_SESSION['sess_contact_text'] = @$_POST['contact_text'];
$msg = $lang['msg_mail'];
}
//////////////////////////////////////////
//Ende Mailerstellung und Versand
//////////////////////////////////////////
//////////////////////////////////////////
//Beginn Kontaktformular
//////////////////////////////////////////
$content .= "<table><form method=post action='kontakt.php?mail=true'><div class=head>".$lang['contact']."</div><br>";
$content .= "<tr><td colspan=2>".$lang['name'].": <br><input type=text name=sender_name size=30 value='".@$_SESSION['sess_user_vorname']." ".$_SESSION['sess_user_name']."'></td></tr>";
$content .= "<tr><td colspan=2>".$lang['email'].": <br><input type=text name=sender_email size=30 value='".@$_SESSION['sess_user_email']."'></td></tr>";
$content .= "<tr><td colspan=2>".$lang['contact_betr'].": <br><input type=text name=contact_betr size=30 value='".@$_SESSION['sess_contact_betr']."'></td></tr>";
$content .= "<tr><td colspan=2>".$lang['contact_text'].": <br><textarea name=contact_text rows=10 cols=35>".@$_SESSION['sess_contact_text']."</textarea></td></tr>";
// SPAM SCHUTZ BILD DA, WENN USER NICHT EINGELOGGT
if($_SESSION['level'] <> "0") $content .= "";
else $content .= "<tr><td width=90px>".$lang['sicherheit'].":<br><img src='bild.php'></td><td valign=bottom align=left><input type=text maxlength=5 size=5 name=spam></td></tr>";
//ENDE SPAM SCHUTZ
$content .= "<tr><td><button name=weiterleitung type=submit class='Button'> ".$lang['senden']."</button></td></tr></form></table>";
//////////////////////////////////////////
//Ende Kontaktformular
//////////////////////////////////////////
// Klasse hinzuladen
include("template.class.php");
// Objekt erzeugen ($error wird bereits im Konstrukt definiert und ist hier nur optional)
$template = new template("template/home.html");
// Datei einlesen
$template->readtemplate();
// Platzhalter ersetzen
$template->replace("title", $lang['kontakt_title']);
$template->replace("meta", $lang['kontakt_meta']);
include('footer.php');
?>