1.6k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von bollerkohl Mitglied (175 Punkte)
Hallo Spezialisten,

habe ein Feedbackformular (htm) und dazu ein feedback.php.
Das Abschicken funzt, aber der Text im Feld S1 und die dazu gehörige Auswahl (Tipp, Meinung oder Kritik) werden nicht mitgesendet? Kann mir jemand helfen?

HTML:

<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Feedback</title>
<meta name="Microsoft Theme" content="satin 1011">
</head>

<body>

<table border="0" width="800" height="99">
<tr>
<td height="99" width="800">
<p align="center"><b><font face="Trebuchet MS">- Hier können Sie
Ihre Meinung sagen, Kritik üben oder einfach einen Tipp geben - </font>
</b></td>
</tr>
</table>
<table border="0" width="612" height="77">
<tr>
<td height="77" width="261">
<p align="center"><b><font face="Trebuchet MS" size="4">Ihr Feedback bitte:</font></b></p>
</td>
<td height="77" width="335" align="center">
<form method="POST" name="Feedback" action="feedback.php">
<p align="center"><br>
<font face="Trebuchet MS">
<input type="radio" value="Kritik" checked name="R1">&nbsp; Kritik&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font size="3"><input type="radio" name="R1" value="Meinung"> </font>Meinung&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font size="3"><input type="radio" name="R1" value="Tipp"></font> Tipp</font></p>
</td>
</tr>
</table>
<p align="center"><font size="2" face="Trebuchet MS"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font></p>
<table border="0" width="616" height="289">
<tr>
<td height="240" width="610" colspan="3">
<p align="right"><font face="Trebuchet MS">
<textarea rows="13" name="S1" cols="77"></textarea></font></p>
<p>&nbsp;</td>
</tr>
<tr>
<td height="43" width="364">
&nbsp;</td>
<td height="43" width="136">
<p align="center"><font face="Trebuchet MS">
<input type="reset" value="Zurücksetzen" name="B2" style="float: right"></font></td>
<td height="43" width="102">
<p align="center"><font face="Trebuchet MS">
<input type="submit" value="Absenden" name="B1" style="float: right"></font></td>
</tr>
</table>
</form>
</body>

</html>


PHP-----------------------------------------------------------------------------


<?php
header("Content-Type: text/html;charset=ISO-8859-1");
function formathtml($text)
{
$text="
<html>
<head>
<title>Feedback meine Seite.de</title>
</head>
<body bgcolor='#680106' text='#ffffff'>
".$text."
</body>
</html>";
return $text;
}


$mail_txt='<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=0 width="100%">
<tr>
<td colspan=5>&nbsp;Vielen Dank für Ihr Feedback.</td>
</tr>

<tr>
<td colspan=5>&nbsp;</td>
</tr>

<tr>
<td>&nbsp;Feedback:</td>
<td colspan=2>&nbsp;'.$R1.'</td>
</tr>

<tr>
<td colspan=5>&nbsp;</td>
</tr>

<tr>
<td valign="top">&nbsp;Bemerkung:</td>
<td>&nbsp;'.str_replace(chr(13),"<br>",$S1).'</td>
</tr>
</table>
</td>
</tr>
</table>';

//E-Mail
$client_email="meine@seite.de";
$email_subject="Feedback meine Seite.de";

$headers = "From: www.Meine Seite.de<".$client_email.">";
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
$email_message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $mail_txt . "\n\n";


$chk=@mail($client_email,$email_subject,$email_message,$headers);

//E-Mail Ende

echo '
<html>
<head>
<title>Feedback Meine Seite.de</title>
</head>
<body bgcolor="#680106" text="#ffffff">
<table border=0 cellspacing=0>
<tr>
<td>';


if($chk==1)
{
echo '
&nbsp;Ihr Feedback wurde erfolgreich verschickt.<br><br>';
}
else
{
echo '&nbsp;Beim Versenden Ihres Feedbacks ist ein Fehler aufgetreten.<br><br>';
}

echo '</td>
</tr>
</table>';
?>



Vielen Dank!

3 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Du musst die Variablen am Anfang des PHP-Skripts auch initialisieren:

$S1= $_REQUEST['S1'];
$R1= $_REQUEST['R1'];
0 Punkte
Beantwortet von bollerkohl Mitglied (175 Punkte)
wäre toll, wenn mir jemand genau sagen kann wohin das muss?

DANKE
0 Punkte
Beantwortet von katy Mitglied (787 Punkte)
das solltest du dir genauer anlesen, zB. in diesem Tutorial

Eigentlich musst du, um unschöne Fehlermeldungen zu vermeiden, erst mal prüfen, ob überhaupt Daten eingegangen sind if($_POST) (da du nur per POST Daten überträgst ist es sinnvoller, dann auch dort und nicht mit $_REQUEST überall nachzuschauen) und anschließend schauen, ob auch die gewünschten dabei sind und dann deinen Variablen das passende zuweisen.

Und um auf deine Frage zurückzukommen: natürlich muss das alles vor der ersten Verwendung der Variablen passieren.

katy
...