PHP Fehler

N

Newman

the newman
Hallo,

ich habe hier ein Script das ich als Counter fuer meine Webseite benutzen moechte. Diese Script lief frueher schon mal bei mir.

Jetzt zeigt es mir folgende Fehler an:
...
Warning: fopen(ip.txt): failed to open stream: Permission denied in /daten/www/counter/counter.php on line 30
...
Code von Zeile 30:
...
$ipfile = fopen($ipdir,"r+");
...

Habe auch auf w/a gestellt, doch der Fehler verschwindet nicht.

Kann mir jemand helfen ?
 
wem gehört die Datei? Sind die Dateirechte richtig gesetzt?
 
scheint nichts mit den dateirechten zu tun zu haben. hab sie geaendert.
 
PHP hat die rechte der webservers.. hast du das bei ändern der rechte bedacht?
 
hm, naja. mal ein vergleich:
...
-rw-r--r-- 1 kalli users 15 2003-11-08 15:11 phpinfo.php

-rw-r--r-- 1 kalli users 2266 2003-12-02 20:41 counter.php
...

phpinfo laeuft, counter.php nicht. sind die gleichen rechte.
muss an was anderem liegen.
 
Du sollst die Rechte der Datei "ip.txt" ändern und guggen ob es geht, mal so zusammenfassend gesagt ;)
 
Ist das nicht sinngemäß das selbe was ich geschrieben habe?
 
Manche DInge kann man auch schöner ausdrücken. Jemandem ne URL da hin zu klatschen nach dem Motto "nu such mal" ist glaube ich nicht die schönste Art und Weise, desweiteren hilft es Newman mehr wenn man direkt sagt das er die Rechte der Textdatei prüfen soll (erspart er sich einbißchen Arbeit, denk mal drüber nach!).
 
sequel schrieb:
Ist das nicht sinngemäß das selbe was ich geschrieben habe?
/Klugscheiss an/Nope, du sagtest $ip.txt, er ip.txt ;)/Klugscheiss aus/.

// Edit
Hops das war wohl ne Minute auseinander. BTW. stimmt scheinbar die Boardzeit nicht..
 
Also erstens habe ich ihm keine URL dahingeklatscht, sondern im gesagt er solle die Rechte für $ip.txt ändern.
Die URL wat ein zusatz, wo er sich anschauen kann, wie man die chmod mit PHP verwaltet.
Was war jetzt an deinem Post schöner? Nur das du keine URL geposted hast?!?
naja....


mfg manuel

Code:
Du gehst in das WWW_ROOT oder dahin wo die Datei ist,  in der du schreiben willst, dort änderst du die rechte so, das der webserver aus der datei lesen kann,
Wenn das passiert ist, sollte es funktionieren

Edit by me.....
 
Zuletzt bearbeitet:
hm. die rechte sind jetzt wie folgt eingestellt:

-rwxrwxrwx für ip.txt.
die fehler werden nicht mehr angezeigt.
jedoch passiert nix :)
 
Poste doch einfach mal den Code, dann kann jeder besser helfen, weil der Blick in Glaskugel hat mir gerade nichts gebracht...
 
<?

#######################################################

$numip = "3"; //Anzahl der IP-Nummern, die gespeichert werden sollen
$font = "verdana"; //Schriftart
$fontsize = "1"; //Schriftgroesse
$fontcolor = "#000000"; //Schriftfarbe


$anzdir="counter.txt" ;
$ipdir="ip.txt" ;

#######################################################


if (file_exists($anzdir) AND file_exists($ipdir))
{
global $REMOTE_ADDR, $ipdata, $userip1;
$userip = $REMOTE_ADDR ;
$ipfile = fopen($ipdir,"r+");
$ipfile1 = fgets($ipfile,200);
$ipdata = explode(":",$ipfile1);

if (in_array($userip, $ipdata))
{
global $nummer;
$anzahl = fopen("$anzdir", "r+") ;
$nummer = fgets($anzahl,9);

fclose($anzahl);
}
else
{
global $num, $userip;
$num = count($ipdata);

if ($num <= $numip)
{
fputs($ipfile,$userip.":");
fclose($ipfile);
$anzahl = fopen("$anzdir", "r+");
$nummer = fgets( $anzahl, 9 );
$nummer++;
fseek($anzahl, 0);
fputs( $anzahl, $nummer );
fclose($anzahl);
}
else
{
global $ipdata9, $push;
$pop = array_pop($ipdata);
$ipdata = array_reverse($ipdata);
array_push($ipdata,$userip);
$ipdata = array_reverse($ipdata);
$userip2 = implode(":",$ipdata);
$ipfile = fopen($ipdir,"w+");
fputs($ipfile,$userip2);
fclose($ipfile);

$anzahl = fopen("$anzdir", "r+");
$nummer = fgets( $anzahl, 9 );
$nummer++;
fseek($anzahl, 0);
fputs( $anzahl, $nummer );
fclose($anzahl);
}
}
}
else
{
if (file_exists($ipdir))
{
global $nummer;
$fo = fopen($anzdir,"w+");
fputs($fo, 1);
$nummer = 1;
}
else
{
global $nummer;
$foip = fopen($ipdir, "w+");
fputs($foip, $REMOTE_ADDR.":");
fclose($foip);
$foan = fopen($anzdir,"w+");
fputs($foan, 1);
$nummer = 1;
}
}

echo " $nummer";

?>
 
liegt auf jedenfall an dir, weill bei mir geht das......
er schreibt aber keine IP nach IP.txt, werde es mir später man ansehen....
 
vielleicht hab ich php falsch installiert ?
habe keine zusatzpakete installiert. nur apache und das 'grobe' php.
 
du hast register_globals auf off
entweder du schaltest es auf on oder du ersetzt $REMOTE_ADDR durch $_SERVER['REMOTE_ADDR'] oder so etwas ähnliches
 

Ähnliche Themen

Cent OS + Apache + PHP = ? zu rechten

[PHP] file_exists und scandir, mal gehts mal nicht

php if-Bedingung wird nicht eingehalten

Rollei Mini Wifi Camcorder

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben