Ansätze einer Problemlösung?
josef
- php
moin zusammen
Habe versucht das Suchscript http://www.planetc.de/download/planetsearch/planetsearch.html
für die Suche auf die eigenen Seiten an meine Seiten anzupassen und auch lokal . Das klappt auch ganz gut bisher, nur bekomme ich unter der Ergebnisausgabe folgende Fehlermeldungen.
Warning: fopen("./admin/_log/search_log.txt", "w+") - Permission denied in /srv/www/htdocs/attac/planetsearchix/planetsearchix.php on line 181
Warning: flock(): supplied argument is not a valid File-Handle resource in /srv/www/htdocs/attac/planetsearchix/planetsearchix.php on line 182
Warning: fwrite(): supplied argument is not a valid File-Handle resource in /srv/www/htdocs/attac/planetsearchix/planetsearchix.php on line 183
Warning: flock(): supplied argument is not a valid File-Handle resource in /srv/www/htdocs/attac/planetsearchix/planetsearchix.php on line 184
Warning: fclose(): supplied argument is not a valid File-Handle resource in /srv/www/htdocs/attac/planetsearchix/planetsearchix.php on line 185
Soweit ich das auch nur ansatzweise verstehe, sind dafür folgende zeilen des scripts zuständig,
foreach ($search_arr as $search_exp) {
$zeilen = file("./admin/_log/search_log.txt");
$anz_zeilen = sizeof($zeilen);
$x=0;
for ($i=0; $i<$anz_zeilen; $i++) {
list ($search_word, $search_num) = split("\|", chop($zeilen[$i]));
// wenn Suchbegriff gefunden wird
if ($search_exp==$search_word) {
$search_num++;
$i-2;
$x++;
}
$new_log .= "$search_word|$search_num\n";
}
// wenn der Suchbegriff nicht schon geloggt wurde
if ($x==0) {
$search_num = "1";
$new_log .= "$search_exp|$search_num\n";
}
$data = fopen("./admin/_log/search_log.txt","w+");
flock($data,1);
fwrite($data, $new_log);
flock($data,3);
fclose($data);
unset($new_log);
}
nun weiß ich nicht weiter und wäre sehr dankbar für einen Lösungsansatz von mir aus auch mit dem Zaunpfahl;).
Habe ich bei der Rechtevergabe geschlampert?
gruß josef
Hi,
Warning: fopen("./admin/_log/search_log.txt", "w+") - Permission denied
das ist IMHO sehr deutlich. Dein Script hat kein Recht, diese Datei schreibend zu öffnen.
Warning: [...]
Der Rest sind Folgefehler.
Soweit ich das auch nur ansatzweise verstehe, sind dafür folgende zeilen des scripts zuständig,
Nein, die Dateirechte.
Cheatah
Hallo Josef!
Ich kenne zwei mögliche Fehlerquellen;
1. Der Account, unter welchem du PHP startest (in den allermeisten Fällen der Account des Webservers) hat auf dem Verzeichnis in das du liest / schreibst keine Rechte.
2. In der PHP.ini Datei gibt es eine Direktive, welche "basedir" oder so ähnlich heisst. Mit dieser Diektetive gibst du an, wo überall PHP mit Dateien herumspielen darf.
Prüfe mal diese Direktive....
Gruss
Ben
Hallo Josef,
Warning: fopen("./admin/_log/search_log.txt", "w+") - Permission denied in /srv/www/htdocs/attac/planetsearchix/planetsearchix.php on line 181
... das geht also schief ...
alle folgenden Meldungen sind Folgefehler, siehe auch Cheatahs
Posting, die Du vermeiden kannst und solltest
$data = fopen("./admin/_log/search_log.txt","w+");
Nur wenn Du die Datei erfolgreich öffnen konntest,
kannst Du das folgende tun, deswegen:
if ($data) {
flock($data,1);
fwrite($data, $new_log);
flock($data,3);
fclose($data);
unset($new_log);
}
und schließe den Block an der richtigen Stelle ;-)
nun weiß ich nicht weiter und wäre sehr dankbar für einen Lösungsansatz von mir aus auch mit dem Zaunpfahl;).
Habe ich bei der Rechtevergabe geschlampert?
Sieht so aus ;-)
Lese bitte die Benutzerbeiträge zu http://de.php.net/manual/de/function.fopen.php;
einige, wenn auch wenige Beispielen empfehlen diese Vorgehensweise.
Einfach in Zukunft Dateizugriffe, Sperroperationen, Datenbankzugriffe, usw. auf Erfolg zu überprüfen.
gruß josef
Freundliche Grüße,
Vinzenz
remoin zusammen
Mal ein herzliches Dankeschön an euch drei. Klappt tatsächlich jetzt.
gruß josef