Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

1

17.07.2009, 14:44

[PHP] Primitives Gästebuch

Hallo,

ich versuche mich gerade an PHP und habe mal ein sehr sehr sehr primitives Gästebuch geschrieben.

Aber irgendwie klappt das nicht. Also die Anzahl der Einträge bleibt immer auf 1 und es wird nichts ausgegeben. Hier mal das Script.


geastebuch.php

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>
</head>
<body>

<?
$count;
$text;

echo "<b> Gästebuch </b> <br>";


//Anzahl der Einträge Prüfen

$count_datei = fopen ("count","w+");
$count = fgets ($count_datei,10);
fclose ($count_datei);

if($count == "")
{
$count =0;
}

//Anzahl der Einträge wurde Ermittelt


//Einträge auslesen und ausgeben


for ($a=0; a < $count;$a++)
{



//Öffnen und lesen

$text_datei = fopen ($a,"w+");
$text = fgets ($text_datei,250);
fclose ($text_datei);

echo"$text <br>";
echo "<br> <br>";




C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
$text = $_POST ["textfeld"];
$count;

//Anzahl der bisherigen Einträge herausfinden

$counter_datei = fopen ("count","w+");
$count = fgets ($counter_datei,10);

echo "$count <br>";
$count +=1;//Ums Eins erhöhen

echo "$count <br>";

rewind ($counter_datei);
fwrite ($counter_datei,$count);
fclose ($counter_datei);

//Neuen Eintrag speichern

$text_datei = fopen($count,"w+");
fwrite ($text_datei,$text);
fclose ($text_datei);

echo"Eintrag wurde gespeichert";
echo" Ihr Eintrag: $text";


?>


Der rest ist nur ein HTML -Formular und unnötig wie ich denke.

Ich denke das Porblem liegt am Speichern des Zählers. Aber wo?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

17.07.2009, 14:53

Probier den Fehler doch näher einzuschränken. Klappt dann das auslesen?

Und das inkrementieren läuft doch sicher, oder? - Dann musst du noch schauen, ob es richtig gespeichert wird.

Den Fehler so aufzuspüren ist recht schwer. ;)

btw:
Ich habe auch mal ein Gästebuch auf Basis von Files geschrieben. Mach es nicht DB's sind so viel eleganter. ;)

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

3

17.07.2009, 15:29

Du öffnest die Datei im zweiten Snippet mit fopen(..., "w+");

PHP.net sagt dazu:

Zitat


Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.


EDIT:
Bzw ich seh grad du öffnest die Datei grundsätzlich mit w+. Schau dir mal die doku zu fopen() an. Dort gibts ne Übersicht über alle möglichen Modi + eine Erklärung dazu. Zum lesen reicht zum Beispiel "r"

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

4

17.07.2009, 19:46

Also Script zwei funktioniert jetzt. Lag daran das ich den falschen Mod beim öffnen genommen habe und die Datei immer wieder komplett überschrieben wurde. (=Zähler erhöt sich nie). Jetzt zählt er immer eins höher uns legt daher für jeden Eintrag eine eigene Datei an. Also wunderbar.

Aber im ersten (das wo alles ausgegeben wird) scheint immer noch ein Fehler zu sein.

1. Er gibt mir die aktuelle Anzahl der Einträge nicht aus.
2. Er gibt die zwei Kontroll ausgaben in der Schleife nicht aus woraus ich schließe das er nicht in die Schleife springt.


Jetzt bräuchte ich nochmal eure Hilfe. Habs schon alles versucht.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

17.07.2009, 19:53

Zitat

for ($a=0; a < $count;$a++)


Ich nehme mal an, dass das a ohne $ da nur ein Tippfehler ist?

Ansonsten gib mal den Wert von $a kurz vor der Schleife aus.

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

6

18.07.2009, 12:36

Geht 0.o. Wieso bin ich noch am herausfinden ^^. Hab irgendwie nur blöd auf die Tastatur gehauen.

Ich sags euch wenn ich es weiss. :)

Hier zum ausporbieren: http://errschaffer.bplaced.net/PHP-Base/Homepage/

edit: Das es mit einer DB einfacher geht ist mir schon klar aber ich will erstmal PHP Grundwissen haben ;)

7

18.07.2009, 12:39

Ich hab mal Registrieren getestet. Bei dir kann man ja einfach nur auf Registrieren klicken. Bau da mal besser ne fehlermeldung ein das ein Pflichtfeld nicht angegeben wurde.
Metal ist keine Musik sondern eine Religion.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

18.07.2009, 12:52

Also die Farben musst du ändern. Da erkennt man ja gar nichts. ;)

Und funktionieren tut es anscheinend auch nicht, oder hast du den Fehler noch nicht behoben? - Ich habe ein Eintrag gemacht, wird aber nie angezeigt..

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

9

18.07.2009, 12:55

Ich hab anscheinend wieder irgendwas geändert -.-

10

18.07.2009, 12:57

schau dir dein Gästebuch mal an! Dort steht nichts als Fehlermeldungen. Ich seh aber keine Einträge.
Metal ist keine Musik sondern eine Religion.

Werbeanzeige