UTGMK Geschrieben 8. August 2002 Geschrieben 8. August 2002 Was zum Teu*** ist hier falsch? <html> <head> <title>Formular</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="99CCFF" text="#000000"> <? $datei = fopen(Nachrichten.txt,a); fwrite($datei, $name, $firma, $telefon, $absendmail, $betreff, $inhalt); fclose($datei); echo " <table width=560 height="94">; <tr> <td height="103"> <p><font size=+1><b><font size="5">Kontakt</font></b></font><font size="5">:<br> </font> <br> <b> Hir können Sie mit uns Kontakt aufnehmen. Wir werden uns dann bei Ihnen selbstverständlich melden.</b></p> </td> </tr> </table> <table width=560 height="328"> <tr> <td width=140> <p><b>Name:</b></p> </td> <td width="294"> <input type=text name=name size=40> </td> </tr> <tr> <td width=140> <p><b>Firma:</b></p> </td> <td width="294"> <input type=text name=firma size=40> </td> </tr> <tr> <td width=140> <p><b>Ihre Telefonnummer:</b></p> </td> <td width="294"> <input type=text name=telefon size=40> </td> </tr> <tr> <td width=140> <p><b>Ihre E-Mailadresse:</b></p> </td> <td width="294"> <input type=text name=absendemail size=40> </td> </tr> <tr> <td width=140> <p><b>Betreff:</b></p> </td> <td width="294"> <input type=text name=betreff size=40> </td> </tr> <tr> <td width=140 valign=top height="167"> <p><b>Inhalt:</b></p> </td> <td height="167" width="294"> <textarea name=inhalt cols=40 rows=10></textarea> </td> </tr> </table> <table width=370> </table>"; ?> </body> </html> Zitieren
Impulz Geschrieben 8. August 2002 Geschrieben 8. August 2002 $datei = fopen(Nachrichten.txt,a); ^-- da fehlen anfuehrungsstriche um das nachrichten.txt Falls das nicht alles ist, bitte die Fehlermeldung posten, sonst wirds etwas schwierig den fehler zu finden... Michael Zitieren
Tweetymax Geschrieben 8. August 2002 Geschrieben 8. August 2002 Das war noch lange nicht alles... Innerhalb des PHP Scripts musst du HTML Tags, in denen " vorkommen einen \ vorraussetzen, damit der HTML Quelltext korrekt angezeigt wird, sonst bekommst du immer einen fehler. Beispiel aus deinem Posting: echo " <table width=560 height="94">; (du weisst schon, dass du mit dem Simikolon das echo beendest, oder?) Korrekt müsste das so aussehen: echo " <table width=560 height=\"94\">"; Zitieren
Impulz Geschrieben 8. August 2002 Geschrieben 8. August 2002 mal davon abgesehen dass es sowieso sinnlos ist so einen grossen html block per echo auszugeben. nach dem fclose einfach wieder das php tag zumachen (?>) und gut is Zitieren
Tweetymax Geschrieben 8. August 2002 Geschrieben 8. August 2002 Auch ne Möglichkeit Entfernt zumindest die fehlerquelle, dass man \ vergisst Zitieren
Jaraz Geschrieben 8. August 2002 Geschrieben 8. August 2002 Hallo, ist das ne Aufgabe von deinem Lehrer oder hast du das geschrieben? In dem Script sind soviele Fehler, dass ich dir dringend raten würde erst mal mit einem Buch anzufangen. Tipps zu Büchern gibt es im Forum etliche. Sorry wenn das zu deutlich ist, meine ich aber nur zu deinem besten. Fehler: -fopen sieht in etwas so aus: $fp = fopen ("/home/rasmus/file.txt", "a"); -fwrite so: fwrite ( $fp, $name." ".$vorname); -Deine Formularelemente sind ohne entsprechendes Form Tag -Die echo Ausgabe ist fehlerhaft, entweder so: echo '<input type="Text">'; oder so: echo "<input type=\"Text\">"; schreiben. Dein HTML ist ebenfalls sehr gewöhnungsbedürftig. Einmal in der ersten Zeile width="294" würde reichen, ist aber Geschmackssache. Werte sollten immer in "". Gruß Jaraz Zitieren
tobias-digital Geschrieben 9. August 2002 Geschrieben 9. August 2002 Original geschrieben von Impulz mal davon abgesehen dass es sowieso sinnlos ist so einen grossen html block per echo auszugeben. nach dem fclose einfach wieder das php tag zumachen (?>) Nur Interessehalber, warum wird es bei Leuten, die sich anscheinend mit PHP ganz gut auskennen, als schlechter Stil angesehen wenn man das macht? Ich selbst schreibe in letzter Zeit sehr viel in PHP und lasse alles in echo Kommandos ausgeben. Gibt es Performanceunterschiede? Zitieren
Azariel Geschrieben 9. August 2002 Geschrieben 9. August 2002 Ich mache das auch so und habe keine Probleme damit! Zitieren
UTGMK Geschrieben 9. August 2002 Autor Geschrieben 9. August 2002 Also hier habe ich eine Verbesserung (von einem netten Kollegen) Es gibt nur noch das kleine Problem, das er die Daten nicht in die Textdatei schreibt. Was könnte das sein? <html> <head> <title>Formular</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="99CCFF" text="#000000"> <? if ($button) { $datei = fopen("Nachrichten.txt","a"); fwrite($datei, $name, $firma, $telefon, $absendmail, $betreff, $inhalt); fclose($datei); echo "Die Nachricht wurde verschickt"; } else { echo ' <table width=560 height="94"> <tr> <td height="103"> <p><font size=+1><b><font size="5">Kontakt</font></b></font><font size="5">:<br> </font> <br> <b> Hir können Sie mit uns Kontakt aufnehmen. Wir werden uns dann bei Ihnen selbstverständlich melden.</b></p> </td> </tr> </table> <table width=560 height="328"> <tr> <td width=140> <p><b>Name:</b></p> </td> <td width="294"> <form name="circle" action='.$PHP_SELF.'> <input type=text name=name size=40> </td> </tr> <tr> <td width=140> <p><b>Firma:</b></p> </td> <td width="294"> <input type=text name=firma size=40> </td> </tr> <tr> <td width=140> <p><b>Ihre Telefonnummer:</b></p> </td> <td width="294"> <input type=text name=telefon size=40> </td> </tr> <tr> <td width=140> <p><b>Ihre E-Mailadresse:</b></p> </td> <td width="294"> <input type=text name=absendemail size=40> </td> </tr> <tr> <td width=140> <p><b>Betreff:</b></p> </td> <td width="294"> <input type=text name=betreff size=40> </td> </tr> <tr> <td width=140 valign=top> <p><b>Inhalt:</b></p> </td> <td width="294"> <textarea name=inhalt cols=40 rows=10></textarea> </td> </tr> <tr> <td width=140 valign=top> </td> <td height="167" width="294"> <input type=submit name=button> </td> </tr> </table></form>'; } ?> </body> </html> Zitieren
Jaraz Geschrieben 9. August 2002 Geschrieben 9. August 2002 Tja wenn du den Thread gelesen hättest wüßtest du es. Gruß Jaraz Zitieren
-bLuEtooTh- Geschrieben 9. August 2002 Geschrieben 9. August 2002 *lol* also ich würd dir erstmal en HTML-Kurs vorschlagen bevor du dann mit PHP weitermachst Mein Vorschlag (net getestet): <html> <head> <title>Circle-Formular</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="99CCFF" text="#000000"> <? if ($button) { $datei = fopen("Nachrichten.txt","a"); fwrite($datei, $name, $firma, $telefon, $absendmail, $betreff, $inhalt); fclose($datei); echo "Die Nachricht wurde verschickt"; } else { ?> <form name="circle" action=".$PHP_SELF."> <table width="560" height="94"> <tr> <td height="103"> <p><b><font size="5">Kontakt</font></b></font><font size="5">:<br> </font> <br> <b> Hir können Sie mit uns Kontakt aufnehmen. Wir werden uns dann bei Ihnen selbstverständlich melden.</b></p> </td> </tr> </table> <table width="560" height="328"> <tr> <td width="140"> <p><b>Name:</b></p> </td> <td width="294"> <input type="text" name="name" size="40"> </td> </tr> <tr> <td> <p><b>Firma:</b></p> </td> <td> <input type="text" name="firma" size="40"> </td> </tr> <tr> <td> <p><b>Ihre Telefonnummer:</b></p> </td> <td> <input type="text" name="telefon" size="40"> </td> </tr> <tr> <td> <p><b>Ihre E-Mailadresse:</b></p> </td> <td> <input type="text" name="absendemail" size="40"> </td> </tr> <tr> <td> <p><b>Betreff:</b></p> </td> <td> <input type="text" name="betreff" size="40"> </td> </tr> <tr> <td valign="top"> <p><b>Inhalt:</b></p> </td> <td> <textarea name="inhalt" cols="40" rows="10"></textarea> </td> </tr> <tr> <td valign="top"> </td> <td height="167"> <input type="submit" name="button"> </td> </tr> </table> </form> <?php } ?> </body> </html> [/PHP] bis dann Keep circle! Zitieren
Jaraz Geschrieben 9. August 2002 Geschrieben 9. August 2002 Original geschrieben von -bLuEtooTh- also ich würd dir erstmal en HTML-Kurs vorschlagen bevor du dann mit PHP weitermachst Dann schlage ich dir nen PHP Kurs vor. <form name="circle" action=".$PHP_SELF."> muss auch zwischen die PHP Tags. Und fwrite wurde von dir falsch übernommen. Gruß Jaraz Zitieren
-bLuEtooTh- Geschrieben 9. August 2002 Geschrieben 9. August 2002 Original geschrieben von Jaraz Dann schlage ich dir nen PHP Kurs vor. <form name="circle" action=".$PHP_SELF."> muss auch zwischen die PHP Tags. Und fwrite wurde von dir falsch übernommen. Gruß Jaraz für was muss des zwischen die PHP Tags ??? wenns an PHP SELF liegt ich verwende normalerweise POST <form method="POST" action="xxx.php" name="xxx"> mach des dann stimmts Zitieren
Jaraz Geschrieben 9. August 2002 Geschrieben 9. August 2002 Original geschrieben von -bLuEtooTh- <form method="POST" action="xxx.php" name="xxx"> Wenn du dann den Namen der php Datei änderst, musst du auch die action Option jedes Formulars ändern. Dafür gibt es extra die Variable $PHP_SELF in der der Name des ausgeführten Skripts steht. Damit die Variable auch gefüllt ist, muss sie natürlich zwischen <?php ?> stehen. Gruß Jaraz Zitieren
Impulz Geschrieben 9. August 2002 Geschrieben 9. August 2002 Original geschrieben von n's Nur Interessehalber, warum wird es bei Leuten, die sich anscheinend mit PHP ganz gut auskennen, als schlechter Stil angesehen wenn man das macht? Ich selbst schreibe in letzter Zeit sehr viel in PHP und lasse alles in echo Kommandos ausgeben. Gibt es Performanceunterschiede? Es gibt zwar Perfomanceunterschiede, aber die sind nicht ausschlaggebend. Der Hauptgrund ist einfach dass es unheimlich unleserlich wird wenn man alles per echo raus haut. Vorallem weil man in den seltensten Faellen eine PHP-Seite mit HTML, sondern viel eher eine HTML-Seite mit PHP-Elementen hat. Da bietet es sich einfach an in den HTML Code die kleinen PHP Teile einzubetten anstatt das bisschen PHP mit seitenweise HTML aufzublaehen. Dann muss man beispielsweise noch aufpassen ob man beim echo ' oder " nimmt und ggf. noch mehr Zeichen escapen. Oftmals bietet es sich sowieso an Inhalt und Aussehen komplett voneinander zu trennen indem man Templates benutzt. Michael Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.