Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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>

Geschrieben

$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

Geschrieben

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\">";

Geschrieben

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

Geschrieben
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?

Geschrieben

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>

Geschrieben

*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!

Geschrieben
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. :D

<form name="circle" action=".$PHP_SELF.">

muss auch zwischen die PHP Tags.

Und fwrite wurde von dir falsch übernommen.

Gruß Jaraz

Geschrieben
Original geschrieben von Jaraz

Dann schlage ich dir nen PHP Kurs vor. :D

<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

Geschrieben
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

Geschrieben
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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...