Frage von SpieleArena, 42

PHP! Wo ist mein Fehler?

Einfsch und driekt:

Error: Warning: fopen(/XXX/username/actic.txt): failed to open stream: No such file or directory in /customers/f/7/f/spielearena.org/httpd.www/acti.php on line 28 Warning: filesize(): stat failed for /XXX/username/actic.txt in /customers/f/7/f/spielearena.org/httpd.www/acti.php on line 29 Warning: fread() expects parameter 1 to be resource, boolean given in /customers/f/7/f/spielearena.org/httpd.www/acti.php on line 29 Warning: fopen(/XXX/username/actic.txt): failed to open stream: No such file or directory in /customers/f/7/f/spielearena.org/httpd.www/acti.php on line 30 Der angegebene Nutzer wurde nicht gefunden! Oder ein Fehler ist Aufgetreten! Instanze Abgebrochen!

Wobei der Pfad existiert

<?php
//Variabeln abrufen
$name = $_GET["name"];
$code = $_GET["code"];

echo 'SpielUnity Register V0.9<br />' ."\n\n";
echo '<br />' ."\n\n";
echo 'Starten der Überprüfung...<br />' ."\n\n";
echo 'Starting SpielUnityAntiHack++<br />' ."\n\n";



$fp = fopen("ips.txt", "a");
fwrite($fp, "\n".$_SERVER['REMOTE_ADDR']);
fclose($fp);

//Hacker Schutz
if (ctype_digit($code)) {
  // Test bestanden es ist eine Ziffer!
} else {
    die("Achtung: Entweder: Sie haben sich vertippt Oder: HACKER ANGRIFF!!!    Aus Sicherheits Gründen wird ihre Ip aufgezeichnet aber in 7 Tagen wieder Gelöscht! Diese Daten werden NICHT weitergegeben! Instanze Abgebrochen!");
}


//Überprüfen ob Code OK
// liest den Inhalt einer Datei in einen String
$f1 = "/XXX/" . %name . "/actic.txt";
$h1 = fopen ($f1, "r");
$r1 = fread ($h1, filesize ($f1));
$fp1 = fopen($f1, "a")
or die("Der angegebene Nutzer wurde nicht gefunden! Oder ein Fehler ist Aufgetreten! Instanze Abgebrochen!");
If ($r1 == $code) {
    echo 'Code stimmt über ein!<br />' ."\n\n";
    echo 'Bitte warten...<br />' ."\n\n";
} else {
    die("Der Code ist Ungültig! Instanze Abgebrochen!");
}
fclose($fp1);
fclose ($h1);


//Überprüfen Ob User Bereits Activiert ist und wenn nicht activieren
$f2 = "/XXX/" . %name . "/actic.txt";
$h2 = fopen ($f2, "r");
$r2 = fread ($h2, filesize ($f2));
$fp2 = §f2, "a");
If ($r2 == "false") {
    fwrite($fp2, "\n"."true");
} else {
    die("Der User ist bereits Activiert! Instanze Abgebrochen!");
}
fclose($fp2);
fclose ($h2);


//weiterleitung:
echo '<br />' ."\n\n";
echo '<br />' ."\n\n";
echo 'SpielUnity Register V0.9 -- END OF<br />' ."\n\n";
echo '<br />' ."\n\n";
echo 'Sie werden in wenigen Sekunden weitergeleitet!<br />' ."\n\n";
echo 'Ihr Acc. wurde erfolgreich aktiviert!<br />' ."\n\n";
header("Refresh: 10; <a href="http://spielearena.org/">http://spielearena.org/</a>");
?>
Antwort
von maximilianus7, 14

sehe 2 tippfehler (?): zeichen % und § statt $. falls diese nur durch die übertragung des codes in den GF-editor entstanden ist:

poste den code besser auf www.paste2.org mit copy & paste.

aufgrunde der fehlermeldungen gehe ich davon aus, dass im original die variablen richtig geschrieben wurde und die pfade richtig aufgelöst wurden.

dann allerdings gebe ich den kollegen recht: du solltest keine absoluten pfade angeben. wenn die beanstandenen dateien im selben verzeichnis wie die php-scripte liegen, genügt der einfache dateiname. ansonsten

unterverz/dateiname  oder  ../unterverz/dateiname

Antwort
von RakonDark, 17

gibt mehrere möglichkeiten ,

1. den ganzen Pfad angeben also nicht relative bzw was du da machst ist auch nicht richtig du schreibst "/XXX" das wäre ja vom anfang des server roots , der ist aber bei
/customers/f/7/f/spielearena.org/

also müsste es wohl


/customers/f/7/f/spielearena.org/XXX.... sein

2. schreibrechte bzw leserechte nicht vorhanden



Kommentar von SpieleArena ,

Wie meinst du das den ganzen pfad angeben?

Kommentar von RakonDark ,

wie wäre es wenn du erstmal lernst wie man relative pfade und absolute pfade in unix schreibt .

relative pfade fangen nie mit / an

absolute pfade fangen vom server root an und du bist nur ein winziger kunde der sein ordner irgendwo auf dem server hat , aber das steht ja in der fehlerbeschreibung wo dein Ordner vom  Root aus gesehen  ist .


Kommentar von SpieleArena ,

Danke und achja winziger kunde ich habe ienen Kompletten KVM Server

Kommentar von SpieleArena ,

Aber der Pfad zur Datei ist ja spielearena.org/XXX/actic.txt

Achja natürlich ist XXX nur ein simbol für den richtigen Pfad

Kommentar von RakonDark ,

Naja der Pfad sagt jedenfalls nicht wie bei mir /var/www/domain/... also vom root aus gesehen ist es bei dir ein winziger Ordner der dem Kunden xyz gehört :)

Antwort
von MisterRobot, 28

Exception Handling, sagt dir das was?

Die Datei ist nicht vorhanden.

Les dir den Fehlercode schön durch, übersetze ihn ins deutsche und streng dann deinen Kopf an.

Kommentar von SpieleArena ,

Aber die Datei existiert habe ca 999999999999 mal nachgeschaut

Kommentar von fluffiknuffi ,

Aber auch in dem Pfad in dem dein Skript es sucht? Und hat das Skript Leserechte?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten