Einfaches PHP guestbook

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/einfaches_php_guestbook_62817/page_1 - zur Vollversion wechseln!


grOOvekill@ schrieb am 13.01.2003 um 21:03

Nabend!

Hab ein kleines Problem und komm nicht auf die Lösung: Hier mein Skript für ein kleines guestbook in PHP:

<?php
// Dateizuweisung
$file = "counter.txt";

// Datei öffnen
$ftp = @fopen($file,"r+");

// Die ersten 10 Zeichen holen
$count = (int)fgets($ftp,10);

// Eine 1 addieren
$count++;

// Zeiger auf 0. Position setzen
rewind($ftp);

// Schreibt
fwrite($ftp,$count);

// Datei schließen
fclose($ftp);

// Das File zeigt sich selbst an
include($file);
?>


Ich bekomm jedoch die ganze Zeit folgende Fehlermeldung:

Warning: Supplied resource is not a valid File-Handle resource in /home/sites/site234/web/oben.php on line 16


Line 16 ist die, wo ich den Zeiger mittels rewind auf 0 setze (rewind($ftp); ). Dieses Skript ist auf einer anderen Site schon mal problemlos gelaufen. Warum nicht jetzt?

Irgendwelche Ideen?


Vivo schrieb am 13.01.2003 um 21:12

Zitat von grOOvekill@
$ftp = @fopen($file,"r+");
Dieses @ scheint mir auf den ersten Blick überflüssig zu sein ...

//Ups ... das am Ende nicht gelesen ... Das @ scheint mir trotzdem überflüssig zu sein


grOOvekill@ schrieb am 13.01.2003 um 21:17

Zitat von Vivo
Dieses @ scheint mir auf den ersten Blick überflüssig zu sein ...

//Ups ... das am Ende nicht gelesen ... Das @ scheint mir trotzdem überflüssig zu sein

Nee, daran liegt's nicht. Irgendwas schmeckt ihm wahrscheinlich von den File-Berechtigungen her nicht. Aber was?

Vielleicht liegts auch daran, daß die zwei Files in zwei unterschiedlichen Ordnern liegen. Ich schmeiß mal beide in einen Ordner und versuch's nochmal.


Vivo schrieb am 13.01.2003 um 21:18

Zitat von grOOvekill@
Vielleicht liegts auch daran, daß die zwei Files in zwei unterschiedlichen Ordnern liegen. Ich schmeiß mal beide in einen Ordner und versuch's nochmal.
Wenn die Files in unterschiedlichen Ordnern liegen solltest du ihm evtl. noch den Paht mitgeben ...


Philipp schrieb am 13.01.2003 um 22:11

Zitat von grOOvekill@
Nabend!

Hab ein kleines Problem und komm nicht auf die Lösung: Hier mein Skript für ein kleines guestbook in PHP:

Das ist aber ein Counter und kein Gästebuch :confused:


watchout schrieb am 14.01.2003 um 02:10

Zitat von Philipp
Das ist aber ein Counter und kein Gästebuch :confused:
hehe, wollt ich auch grad sagen :D

zum thema:
wenn du das "@" wegnehmen würdest, bringt das zwar im moment noch wenig, aber später, wenn mal ein script komplizierteres filehandling hat, kanns ganz schön nerven keine fehlermeldungen zu bekommen
wie dem auch sei, du hast deswegen eine fehlermeldung wie "file not found" oder ähnliches verpasst ;)


DAO schrieb am 14.01.2003 um 06:42

$file = fopen("count_main.dat","r+");
$count_main = fgets($file,5);
if (! $count_main)
$count_main=0;
rewind($file);
$count++;
fwrite ($file, $count_main);
fclose ($file);
echo $count_main;

?>

edit :
denk mal der source muest hin haun fuers mainfile , war der einzige den ich noch gfunden hab am webspace die andren sind in den tiefen der direktories versumpert bzw auf div hdds


grOOvekill@ schrieb am 14.01.2003 um 07:58

Ich bin ein ********! Natürlich geht es um einen Counter!!
:D:D:D


Philipp schrieb am 14.01.2003 um 10:35

Gut :). Hier eine leicht nachbearbeitete Variante des Counters:

Code: PHP
<?php
// Dateizuweisung
$file = "counter.txt"; 

// Datei öffnen
$ftp = @fopen($file,"r+") or die("Kann Datei $file nicht öffnen"); 

// Die ersten 10 Zeichen holen
$count = fgets($ftp,10); 

// Eine 1 addieren
$count++; 

// Zeiger auf 0. Position setzen
rewind($ftp); 

// Schreibt in Datei
if (flock($ftp, 2)) fwrite($ftp,$count); 

// FLock aufheben 
flock($ftp, 3);

// Datei schließen
fclose($ftp); 

// Zeigt counter an
echo $count; 
?>

$ftp = @fopen($file,"r+") or die("Kann Datei $file nicht öffnen");
Wenn fopen die Datei nicht öffnen kann bricht das Script mit einer Fehlermeldung ab.

if (flock($ftp, 2)) fwrite($ftp,$count);
Schützt die Datei mittels File Locking vor gleichzeitigen zugriffen. Wird unten mit flock($ftp, 3); wieder aufgehoben.

echo $count;
Zeigt die Variable $count an. Das ganze mit include() zu inkludieren ist ein unnötiger Lesezugriff ;)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025