Kontaktformular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfhrungszeichen
antwort
attribut
beitrag
betreff
country
email
empfnger
error
fehler
formular
hilfe
info
klammern
klein schreibung
meldung
message
send
skript
syntax
-
hi, habe irgendwo einen kleinen fehler den ich nicht finde wäre nett wenn ihr noch einmal durch das skript schauen könnt da mehrere augen bekanntlich besser sehen. danke
hier der skript:
http://nopaste.info/b6f1cf01f5.html
und hier der html code
http://nopaste.info/e8f04a56db.html
ich wünsch euch noch einen schönen sonntag. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
1. wenn im Formular
<input name="name" type="text" size="32" maxlength="30">
steht, dann muss es $_REQUEST['name'] anstatt von $_REQUEST['Name'], denn PHP legt Wert auf Groß- und Klein-Schreibung
2. if($_REQUEST['Send']) {...} soll wohl überprüfen, ob das Formular abgesendet wurde. Das geht so nicht, denn du hast beim Sende-Button nicht name="Send" stehen: <input type="submit" value="send">
Machs am besten so:
<input type="submit" name="send" value="send">
und im Script:
if($_REQUEST['send'] == 'send') {...} -
<?php mail('$Empfaenger', '$Mailbetreff', '$Mailnachricht', 'From:".$_REQUEST['Email']; ?>
Da hast du ein doppeltes Anführungszeichen drin. Allgemein stimmt in Z.30 das mit den Anführungszeichen nicht. Machs so:
<?php mail($Empfaenger,$Mailbetreff,$Mailnachricht,'From:'.$_REQUEST['Email']); ?>
edit:
Noch was:
<?php echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href="kontaktformular.php">Seite</a>."; ?>
muss
<?php echo 'Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href="kontaktformular.php">Seite</a>.'; ?>
heißen.
Beitrag geändert: 12.8.2007 11:38:04 von sandrock-jonas -
Danke für deine schnelle Antwort. Anscheinend arbeite ich zu unsauber und habe schon wieder etwas übersehen. Denn jetzt erscheint die Meldung.
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/webpages/lima-city/sieghai/html/kontaktformular-auswerten.php on line 36
Habe versucht das problem selber zu lösen und habe heraus gefunden das ein Semikolon hin muss. Es sieht jetzt so aus:
else
{
echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href="kontaktformular.php"> Seite </a>";
}
Oder liege ich mit meiner Annahme falsch?
-
1. Sieh dir erstmal meinen Edit an, da hab ich das schon geschrieben.
2. Zur Erklärung der Fehlermeldung:
"unexpected T_STRING" heißt soviel wie "unterwartete Zeichenkette".
Wenn du Strings mit echo ausgibts, gehörten diese in Anführungszeichen.
mit
<?php echo "bla"; ?>
gibst du z.B. einen String aus. Bei HTML-Code kann das aber zu Problemen führen, denn HTML benutzt für die Attribute der HTML-Tags (z.B. <a href="blubb.html">, wobei a der HTML-Tag ist, href ist das Attribut) ebenfalls Anführungszeichen. Der PHP-Parser kann nun nicht unterscheiden, ob es nun die Anführungszeichen für den PHP-String oder für den HTML-Tag sind. Er kann aber zwischen einfachen und doppelten Anfürhungszeichen unterscheiden. Wenn du
<?php echo "<a href="kontaktformular.php">Seite</a>"; ?>
schreibst, dann interpretiert der PHP-Parser alle Anführungszeichen, denn sie sind alle gleich.
Schreibst du hingegen
echo '<a href="kontaktformular.php">Seite</a>';
?>[/code]
dann weiß der Parser, dass er nur die einfachen Anführungszeichen interpretieren muss (er interpretiert immer die Art, die direkt hinter dem echo steht).
Hoffe, das war halbwegs verständlich. Ansonsten nachfragen. -
Deine Antworten sind super zu verstehen, und ich habe den Fehler gefunden, korregiert und auch gelernt was du mit deiner Hilfe mir sagen wolltest. Nur leider will dieser Quellcode garnicht enden da er jetzt diese Fehlermeldung auspuckt.
Parse error: syntax error, unexpected $end in /home/webpages/lima-city/sieghai/html/kontaktformular-auswerten.php on line 40
Das Ende vom "Lied" sieht so aus.
?>
}
?>
</body>
</html>
Nur Zeile 42 ist die Body Klammer...Jetzt bin ich ganz überfragt. Ich habe drei mal die Zeilen nachgezählt. 42 Die Antwort auf alles^^ -
Naja, so langsam ist der Code (http://nopaste.info/e8f04a56db.html) nicht mehr so ganz auf dem neuesten Stand. Poste doch nochmal die Version, die du jetzt hast.
Dazu kannst du auch die Lima-City-Code-Funktion (oder wie ich das auch immer nennen soll) benutzen.
Das postest du so:
[ code ]hier kommt dein Quellcode hin[ /code ]
du musst nur die Leerzeichen in den [...] weglassen. -
Ok, hier kommt der Link für den Quellcode.
http://nopaste.info/14660876d0.html
Ich hoffe das es dann auch der letzte Fehler war. -
Ok, du machst die Klammer (}) von der if-Anweisung nach der PHP-Klammer (?>) zu. Dadurch dürfte sich der Fehler ergeben. Der Schluss des Codes muss
}
?>
anstatt von
?>
}
heißen.
edit:
noch was:
1. wenn im Formular
<input name='name' type='text' size='32' maxlength='30'>
steht, dann muss es $_REQUEST['name'] anstatt von $_REQUEST['Name'], denn PHP legt Wert auf Groß- und Klein-Schreibung
Das gilt natürlich auch für alle anderen Felder. Das name="..." Attribut des <input>s entspricht immer dem Schlüssel der $_REQUEST-Variablem.
zu <input type="text" name="email adress"> gehört $_REQUEST['email adress']
zu <textarea name="your message"> gehört $_REQUEST['your message']
zu <input type="text" name="bla"> gehört dann natürlich $_REQUEST['bla']
etc.
Beitrag geändert: 12.8.2007 13:03:53 von sandrock-jonas -
So jetzt müsste alles richtig sein. Jedenfalls sieht es für mich so aus. Könntest du trotzdem noch einmal kurz auf der Seite www.haifanpage.de Nachschauen ob alles so richtig ist. Danke. Ich danke dir für deine Ausdauer bei der Fehlersuche.
Das Kontaktformular findest du unter den Link comm.//
P.s. Ich sehe gerade das die emails nicht bei mir ankommen. T-T
Beitrag geändert: 12.8.2007 13:13:39 von sieghai
Beitrag geändert: 12.8.2007 13:21:33 von sieghai -
Ich hab die beiden Scripte nochmal überarbeitet und ausprobiert. Bei mir hats jetzt geklappt:
<html> <head> <title>haifanmessage</title> </head> <body> <form action="kontaktformular-auswerten.php" method="post"> <table border="0" cellpadding="0" cellspacing="4"> <tr> <td align="right">*name</td> <td><input name="name" type="text" size="32" maxlength="30"></td> </tr> <tr> <td align="right">*email adress</td> <td><input name="email" type="text" size="32" maxlength="40"></td> </tr> <tr> <td align="right">*country</td> <td><input name="country" type="text" size="32" maxlength="40"></td> </tr> <tr> <td align="right">*city</td> <td><input name="city" type="text" size="32" maxlength="40"></td> </tr> <tr> <td align="right">*subject</td> <td><input name="subject" type="text" size="32" maxlength="40"></td> </tr> <tr> <td align="right">*your message</td> <td><textarea name="message" cols="30" rows="10"></textarea></td> </tr> <tr> <td align="left"> </td> <td><input type="submit" name="send" value="send"></td> </tr> </table> </form> </body> </html>
und
<?php echo '<html> <head> <title>Kontaktformular mit PHP</title> </head> <body>'; $empfaenger = 'sieghai@gmx.de'; if($_POST['send'] == 'send') { if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['country']) || empty($_POST['city']) || empty($_POST['subject']) || empty($_POST['message'])) { echo 'Bitte gehen Sie <a href="javascript:history.back();">zurück</a> und füllen Sie alle Felder aus!'; } else { $nachricht = 'Sie haben folgende Nachricht erhalten: Name: '.$_POST['name'].' E-Mail-Adresse: '.$_POST['email'].' Country: '.$_POST['country'].' City: '.$_POST['city'].' Betreff: '.$_POST['subject'].' Nachicht: '.$_POST['message'].' Datum/Zeit: '.date('d.m.Y H:i:s'); $betreff = 'Kontakt: '.$_POST['subject']; mail($empfaenger,$betreff,$nachricht,'From: '.$_POST['name'].' <'.$_POST['email'].'>'); echo"Vielen Dank für Ihre eMail!"; } } else { echo '<a href="kontaktformular.php">Seite</a>'; } echo ' </body> </html>'; ?>
-
Danke das du dir die Mühe gemacht hast noch einmal die beiden Quellcodes ganz durch zu schauen. Trotzdem habe ich heute viel gelernt. Danke, und einen schönen Sonntag noch.
"Thread kann geschlossen werden" -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage