 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
19.03.2003, 23:35
|
#1
|
|
TP-Insider
Registriert seit: Apr 2001
Ort: Zürich, Schweiz
|
Mein erstes richtiges Script geht überhaupt nicht :((
Hi
Hab mich jetzt mal an ein Gästebuch auf Dateibasis gemacht. Wollte das selbst programmieren und beim Programmieren war ich mir eigentlich sicher dass es klappt aber es kommt eine ganze Seite voller Fehlermeldungen auf den Bildschirm und ich weiss nicht wieso  Also das konzept ist eigentlich simpel: Jemand kann sich eintragen, das wird gespeichert und eine externe Datei (per include) zeigt bereits vorhandene Einträge an.
Die eigentlichen Fehler liegen aber irgendwie in der Datei mit dem Formular. Da hab ich drei verschiedene Fälle deklariert:
a) Wenn das Formular ausgefüllt wurde
b) Wenn es nicht korrekt ausgefüllt wurde
c ) Wenn es gar nicht ausgefüllt wurde
Per Hidden Datei wird dann der Counter an Beiträgen weitergeleitet. bitte helft mir..bit jetzt echt etwas deprimiert..hatte fast 2 Stunden an dem Ding und jetzt klappts überhaupt nicht
PHP-Code:
<body>
<font color="#000000" size="3" face="Arial, Helvetica, sans-serif"><strong><?php include("listing.php"); ?><br>
<br>
Gästebuchscript auf Dateibasis</strong></font><br>
<?php
$counter = "counter.txt";
$save_file = "save_file.txt";
if(@$HTTP_POST_VARS["submit"] == "Eintragen" && @$HTTP_POST_VARS["name"] != "" && @$HTTP_POST_VARS["email"] != "" && @$HTTP_POST_VARS["beitrag"] != ""){
$HTTP_POST_VARS["zaehler"]++;
$zaehler = $HTTP_POST_VARS["zaehler"];
$name = $HTTP_POST_VARS["name"];
$email = $HTTP_POST_VARS["email"];
$beitrag = $HTTP_POST_VARS["beitrag"];
$save = array($zaehler, $name, $email, $beitrag);
$save_now = implode("@@@", $save); //Alle zu speichernden Daten sind jetzt vorhanden!
if(@!file_exists($save_file)){
touch($save_file);
if(@!file_exists($save_file)){
die ("Die Datei kann leider nicht angelegt werden");
}
}
fopen($save_file, "w");
fwrite($save_file, $save_now);
fclose($save_file);
echo <<<EOT
<form name="form1" method="post" action="">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="62"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Name:</strong></font></td>
<td width="238"><input type="text" name="name"></td>
</tr>
<tr>
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>email:</strong></font></td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Beitrag:</strong></font></td>
<td><textarea name="beitrag"></textarea></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="hidden" name="counter" value="
EOT;
echo ($zaehler);
echo <<<EOT
"><br>
<input type="submit" name="submit" value="Eintragen">
</div></td>
</tr>
</table>
</form>
EOT;
} elseif(@$HTTP_POST_VARS["submit"] == "Eintragen" && @$HTTP_POST_VARS["name"] == "" && @$HTTP_POST_VARS["email"] == "" && @$HTTP_POST_VARS["beitrag"] == ""){ //Speichervorgang vollständig abgeschlossen
echo "Bitte füllen Sie das Formular korrekt aus! <br>";
echo <<<EOT
<form name="form1" method="post" action="">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="62"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Name:</strong></font></td>
<td width="238"><input type="text" name="name"></td>
</tr>
<tr>
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>email:</strong></font></td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Beitrag:</strong></font></td>
<td><textarea name="beitrag"></textarea></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="hidden" name="counter" value="
EOT;
echo ($zaehler);
echo <<<EOT
"><br>
<input type="submit" name="submit" value="Eintragen">
</div></td>
</tr>
</table>
</form>
EOT;
} else {
if(@!file_exists($counter)){ //Test ob die Datei existiert und wenn nicht wird sie jetzt angelegt
touch($counter);
fopen($counter, "w");
fwrite($counter, 0);
fclose($counter);
if(@!file_exists($counter)){
echo "Die Datei konnte nicht angelegt werden. Kontaktieren Sie bitte den Webmaster";
}
} //Jetzt ist der counter spätestens vorhanden
fopen($counter, "r");
$zaehler = fgets($counter); //Hier kriegt die Variable Zaehler den counter-Wert
fclose($zaehler);
echo <<<EOT
<form name="form1" method="post" action="">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="62"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Name:</strong></font></td>
<td width="238"><input type="text" name="name"></td>
</tr>
<tr>
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>email:</strong></font></td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><strong>Beitrag:</strong></font></td>
<td><textarea name="beitrag"></textarea></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="hidden" name="counter" value="
EOT;
echo ($zaehler);
echo <<<EOT
"><br>
<input type="submit" name="submit" value="Eintragen">
</div></td>
</tr>
</table>
</form>
EOT;
}
?>
</body>
__________________
http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!
|
|
|
20.03.2003, 09:19
|
#2
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
ohne jetzt die zeit zu haben, den code zu analysieren, folgendes:
- warum fangst du nicht "klein" mit php an?? zuerst einfache sachen, dann komplexere! wenn es sooo leicht wäre, würde jeder ein php-profi sein
- TEST EARLY, TEST OFTEN - mehr kann ich dazu nicht sagen!
geh das ganze mal schrittweise durch und check, WO der fehler liegt!
|
|
|
20.03.2003, 09:52
|
#3
|
|
TP-Junior
Registriert seit: Mar 2003
Ort: Land der Berge
|
Re: Mein erstes richtiges Script geht überhaupt nicht :((
Zitat:
Original geschrieben von NicNac
...
bitte helft mir..bit jetzt echt etwas deprimiert..hatte fast 2 Stunden an dem Ding und jetzt klappts überhaupt nicht
...
|
hi!
mannomann, du hast ja ganz nette erwartungen gegenüber diesem forum  .
ohne dich jetzt demotivieren zu wollen, aber ich denke besser nicht an die stunden, die ich vor diversen problem(ch)en gesessen bin. am ende wars dann oft nur eine fehlende klammer oder so....
ich kann mich der antwort von prefix nur anschließen: KLEIN beginnen, schrittweise steigern! nicht umsonst starten alle programmier-tutorials mit einem schlichten "Hallo Welt"-progrämmchen.
gruß
__________________
wene75
---
nichts ist so gerecht unter den menschen verteilt wie die intelligenz - keiner glaubt, davon zu wenig zu haben.
|
|
|
20.03.2003, 10:26
|
#4
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
na, soo schlimm ist es dann wohl auch nicht 
da haben wir schon verwegenere Anfragen gehabt.
ansich sind in deinem Script syntaktisch nur ein paar Fehlerchen drin, die - wie ich meine - z.T. wohl davon kommen, dass du einen Teil aus einem Buch abgetippt/kopiert hast.
- Fehler 1)
PHP-Code:
<font color="#000000" size="3" face="Arial, Helvetica, sans-serif"><strong><?php #include("listing.php"); ?><br>
dein listing.php gibt es nicht, brauchst du nicht (denk ich mal)
- Fehler 2)
PHP-Code:
$f = fopen($save_file, "a+");
fwrite($f, $save_now);
fclose($f);
filefunktionen arbeiten mit Handlern, die sie an die folgenden Dateifunktionen weitergeben. Hierzu empfehle ich dir einfach mal einen Blick in die Hilfe.
Dein 'w' bewirkt ein überschreiben aller daten. 'a+' lässt die alten Daten in ruhe und hängt nur deine neue datei an.
Fehler 3)
PHP-Code:
$c = fopen($counter, "w");
fwrite($c, 0);
fclose($c);
if(@!file_exists($counter)){
echo "Die Datei konnte nicht angelegt werden. Kontaktieren Sie bitte den Webmaster";
}
} //Jetzt ist der counter spätestens vorhanden
$c = fopen($counter, "r");
$zaehler = fgets($c); //Hier kriegt die Variable Zaehler den counter-Wert
fclose($c);
gleicher Fehler wie oben. w/r passt in diesem Fall.
Dann läuft dein script.
Was aber nicht heisst, dass es logisch in Ordnung ist. Da hast du noch einiges vor dir. 
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
20.03.2003, 17:35
|
#5
|
|
TP-Insider
Registriert seit: Apr 2001
Ort: Zürich, Schweiz
|
Vielen Dank für deine Mühe Longfang  Und an die beiden vorherigen User: Ich hab ja mit hallo welt angefangen und mich weit durch ein Lehrbuch durchgearbeitet. Wär ich noch vor "Hallo Welt" könnte ich so ein Script sicher noch nicht schreiben.
__________________
http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!
|
|
|
23.03.2003, 15:46
|
#6
|
|
TP-Insider
Registriert seit: Jan 2003
Ort: Österreich
|
idee...
Hi...
also ich empfehle dir dazu mal die URL http://www.phpbox.de
dort gibts so ein GB-Tutorial auf Dateibasis
LG
Manu 
__________________
Programmieren ist ein ständiger Wettkampf zwischen Programmieren, die versuchen, immer neuere und idiotensicherere Programme zu schreiben und dem Universum, das immer größere und dümmere Idioten erzeugt. Bisher hat immer das Universum gewonnen!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 03:34 Uhr.
|
 |