Fehler in Variable
Christoph
- php
Hi Forum,
ich seh vor lauter Bäumen den Wald nicht mehr....
Bei meiner HP hab ich ein Kontaktformular, da wo man lustige Daten eingeben kann usw...
ok dafür hab ich Code gebastelt der meiner Meinung nach auch gehen sollte, was er aber nicht tut. :(
ein kleiner Auszug;
if(isset($_GET['action']))
{
switch($_GET['action'])
{
case 'absenden':
$mail = "christoph@gahmann.com";
$headers ="From: $_POST['vorname'] $_POST['nachname'] <$_POST['email']>\r\n";
$message .="Vorname: $_POST['vorname']\n";
$message .="Nachname: $_POST['nachname']\n\n";
$message .="Email: $_POST['email']\n";
$message .="Homepage: $_POST['homepage']\n";
$message .="Nachricht: $_POST['nachricht']\n\n";
$message .= "----------------------------------------\n";
@$send=mail($mail,"Konaktaufnahme",$message,$headers);
$content='Vielen Dank';
break;
}
}
else
{
function content()
{
?>
hier beginnt dann der html Aufbau wo das Formular sichtbar ist und die ganzen input Felder stehen.
Ok wenn ich die Seite aufrufe kommt:
Parse error: parse error, expecting T\_STRING' or
T_VARIABLE' or `T_NUM_STRING' in der Zeile da wo $headers ="From: $_POST['vorname'] $_POST['nachname'] <$_POST['email']>\r\n"; steht!
Nur wo ist mein Fehler?
Danke, wenn mir jemand helfen könnte, wäre lieb!
LG Christoph
Hallo Christoph,
$headers ="From: $_POST['vorname'] $_POST['nachname'] <$_POST['email']>\r\n";
Parse error: parse error, expectingT\_STRING' or
T_VARIABLE' or `T_NUM_STRING' in der Zeile da wo $headers ="From: $_POST['vorname'] $_POST['nachname'] <$_POST['email']>\r\n"; steht!
Nur wo ist mein Fehler?
schreib das mal so um:
$headers = 'From: '.$_POST['vorname'].' '.$_POST['nachname'].' <'.$_POST['email'].">\r\n";
Das sollte funktionieren. Beachte den bewussten Einsatz von " und '. ABER VORSICHT: Du verwendest Formulardaten ohne diese Vorher auf Plausibilität zu prüfen!!! Das ist ein schweres Sicherheitsloch. Du solltest ALLE Daten aus Formularen prüfen, ob diese auch sinnvoll sind.
viele Grüße
Achim Schrepfer
Hallo Christoph,
Hallo Achim
schreib das mal so um:
$headers = 'From: '.$_POST['vorname'].' '.$_POST['nachname'].' <'.$_POST['email'].">\r\n";
Nicht ganz habs alles umgeschrieben mit dem '. usw... dann gings.
Das sollte funktionieren. Beachte den bewussten Einsatz von " und '. ABER VORSICHT: Du verwendest Formulardaten ohne diese Vorher auf Plausibilität zu prüfen!!! Das ist ein schweres Sicherheitsloch. Du solltest ALLE Daten aus Formularen prüfen, ob diese auch sinnvoll sind.
Kannst du mir da mal ein kleines Beispiel geben? Vielleicht raff ich grad nicht was du direkt meinst, sorry...
viele Grüße
Achim Schrepfer
Danke und LG Christoph
Ei guude wie?
Kannst du mir da mal ein kleines Beispiel geben? Vielleicht raff ich grad nicht was du direkt meinst, sorry...
Du solltest vorher prüfen, ob die E-Mail-Adresse eine solche auch ist (mindestens: xx@yyy.zz), ob die URL für die Homepage "http://" und mindestens einen Punkt enthält, ob irgendwo HTML-Tags wie bspw. <script> oder <style> vorkommen, etc.
Traue niemals den Eingaben Deiner Besucher... >8|
LG ausm Hesseland
Lemmy
Ei guude wie?
Ei guude was? kommst du aus Frankfurt/Main?
Du solltest vorher prüfen, ob die E-Mail-Adresse eine solche auch ist (mindestens: xx@yyy.zz), ob die URL für die Homepage "http://" und mindestens einen Punkt enthält, ob irgendwo HTML-Tags wie bspw. <script> oder <style> vorkommen, etc.
Traue niemals den Eingaben Deiner Besucher... >8|
Jo das stimmt allerdings. Auch wenns nur meine private HP ist, werd ich mal schaun was man da so alles machen kann!
LG auch aus dem Hessenland ;)
LG ausm Hesseland
Lemmy
Christoph
Hallo,
Jo das stimmt allerdings. Auch wenns nur meine private HP ist, werd ich mal schaun was man da so alles machen kann!
das hat im übrigen nichts damit zu tun, ob Deine Homepage privat ist. Als Provider würde ich potenziell unsichere Skripten sofort bei Entdeckung stilllegen. Solche Skriptfehler können nämlich die Sicherheit des gesamten Servers beeinträchtigen.
viele Grüße
Achim Schrepfer
Hallo,
Hallo
das hat im übrigen nichts damit zu tun, ob Deine Homepage privat ist. Als Provider würde ich potenziell unsichere Skripten sofort bei Entdeckung stilllegen. Solche Skriptfehler können nämlich die Sicherheit des gesamten Servers beeinträchtigen.
Glaubst du der Provider bei mehreren tausend Domains sich die Scripte durchschaut? Glaub ich eher weniger. Naja, habs aber mal auf die Plausibilität überprüfen lassen und mir auch das zu Herzen genommen was die PHP Faq darüber geschrieben hat. Denke nun das es jetzt sicherer sein müsste. Also ich hoffe es ;)
viele Grüße
Achim Schrepfer
LG Christoph
Hallo,
Als Provider würde ich potenziell unsichere Skripten sofort bei Entdeckung stilllegen.
Glaubst du der Provider bei mehreren tausend Domains sich die Scripte durchschaut? Glaub ich eher weniger.
ein Massenhoster wird das wahrscheinlich nicht tun. Unsere Firma hingegen macht das schon (ca. 100 Webs pro Server). Natürlich erfolgt auch hier die Prüfung stichprobenartig und teilweise durch Skripten unterstützt. Aber darum geht es primär nicht. Die Mehrheit der Forumsbenutzer hier pflegt auch einen gewissen Idealismus. Und in Sachen serverseitiger Programmierung sieht das u.a. eben so aus, dass die Skripten (halbwegs) sicher programmiert werden, was ja generell ein sinnvolles Vorhaben ist, oder? Und deshalb weise ich auf offensichtliche Sicherheitslücken hin, selbst wenn es für einen Privatmann von untergeordnetem Interesse ist (was es aber nicht sein sollte).
viele Grüße
Achim Schrepfer
Hi Christoph
$headers ="From: $_POST['vorname'] $_POST['nachname'] <$_POST['email']>\r\n";
$message .="Vorname: $_POST['vorname']\n";
usw.
Ich hatte den Fehler schon auch, es hat mir geholfen, die Variablen aus den Anführungszeichen zu nehmen, ohne dass ich Dir erklären kann, warum...
z.b.
$headers ="From: ".$_POST['vorname']." ".$_POST['nachname']." <".$_POST['email'].">\r\n";