2008-01-21 22:44:30 UTC
Hallo,
also zwei verschiedene Probleme, oder?
Einmal wird versucht eine Formulardatei einzulesen, die wohl angegeben ist, aber nicht geöffnet werden darf.
Entweder die Dateiangabe ist leer, was ich aus "Warning: fopen(./)" schließe oder es hängt an Dateirechten.
fgets() und fclose() sind dann Folgefehler. fopen() gibt einen Fehler und keine Resource zurück. Diese Resource hätten fgets() und fclose() aber gebraucht.
Die beste Lösung wird da wohl sein, vor dem fopen() etwas einzufügen wie
if(file_exists())
{
...fopen() (lib.inc.php line 29)
... weiter wie gehabt.
}
Bin mir nicht ganz sicher, ob das die Lösung ist. In meiner payed.php, wo die besagte Formulardatei geöffnet wird, steht das fopen() in Zeile 17 und das file_exists() ist bereits drin.
In meiner lib.inc.php, aus Deiner Fehlermeldung hervorgeht, gibt es ein fopen() in Zeile 33.
$file = fopen ("./$row[3]", "r");
Falls das also Deine Stelle sein sollte folgende Lösung:
if($row[3]=="" || !file_exists(basename($row[3]))
{
$auto_convert=0;
}
else
{ // die Originalzeilen
$file = fopen ("./$row[3]", "r");
$i=0;
while ($i<32)
{
$line = fgets ($file, 200);
$i++;
}
$line = fgets ($file, 200);
$auto_convert=substr($line,17,1);
fclose($file);
}
Falls Du nur mit einer Währung arbeitest, laß das alles weg und nur
$auto_convert=0;
übrig.
Diese Problematik steht letztlich im Zusammenhang mit der fehlenden Session.
Die Session fehlt und deshalb auch der Name der Konfigurationsdatei. Und einiges andere mehr.
Warum fehlt nun also die Session?
Aus register_globals = off folgt vermutlich auch, daß $sess keinen Wert hat.
Hast Du's mit
header("Location:pay.php?sess=".$_POST["sess"]."&fehler=1");
versucht?