SA:MP UCP Login funktioniert nicht [Dini]

  • Hallo liebe Community,


    ich habe ein Tutorial von Tion gemacht, aber immer wenn ich meine Daten eingebe steht dort Login falsch


    und:


    Warning: ftp_get(cache/Uschi.ini.cache) [function.ftp-get]: failed to open stream: No such file or directory in /users/ngrserver/www/UCP.php on line 40

    Warning: ftp_get() [function.ftp-get]: Error opening cache/Uschi.ini.cache in /users/ngrserver/www/UCP.php on line 40



    Dies ist der Code:



    <?php
    session_start();
    // Eine neue Session-ID bei jedem Aufruf generieren - nur beim Login geht schlecht,
    // da vorher Text ausgegeben wird und ich euch nicht mit OutputStream-Bufferring belästigen möchte
    // „false“ bedeutet, alle Variablen nicht löschen.
    session_regenerate_id(false);
    ?>
    <html lang="de">
    <head>
    <meta charset="utf-8" />
    <title>New Generation Roleplay UCP</title>
    </head>
    <body background="background.png" text="#990000" link="#0000CC" vlink="#000066" alink="#000000">
    <body>
    <?php
    // Einrücken müsst ihr selber :P
    if(isset($_SESSION['logedin']) && $_SESSION['logedin'] == true)
    {
    // Hier ist der Benutzer eingeloggt
    $player = parse_ini_file('cache/'. $_POST['username'] .'.ini.cache');
    echo'Wilkommen im Controlpanel, '. $_SESSION['username'] .'<br />'; // <- erinnert ihr euch ? Die haben wir bei dem Login gesetzt ;)
    echo'Du bist Level '. $player['Level'] .'<br />'; // In der Datei steht "Level=5", dann steht hier "Du bist Level 5"
    if($player['ALevel'] >= 1) // Wenn das ALevel ( Godfatherisch für AdminLevel ) größer als 1 ist, das auch ausgeben
    echo'Du bist Admin Level '. $player['ALevel'] .'<br />';
    }
    else
    {
    // Der Benutzer ist nicht eingeloggt
    if(isset($_POST['username']) && isset($_POST['password']))
    {
    // Das Formular ist abgesendet worden -> verarbeiten
    // Verbinden zu dem FTP-Server "127.0.0.1" auf Port 21
    $ftp = ftp_connect("82.211.30.52", 21);
    // Einloggen mit dem Benutzer "bla" und dem Passwort "blub"
    ftp_login($ftp, "srv30552", "y97k1f4");
    // Wechseln in das Verzeichnis "scriptfiles/Accounts"
    ftp_chdir($ftp, "scriptfiles/Accounts");
    // Versuche, die Datei "benutzername.ini" zu downloaden.
    // Der zweite Parameter gibt den Namen auf dem Webspace an, der dritte auf dem FTP-Server. Mit dem viertem sagen wir, dass wir die Datei in dem ASCII-Modus haben wollen.
    ftp_get($ftp, 'cache/'. $_POST['username'] .'.ini.cache', $_POST['username'] .'.ini', FTP_ASCII);
    // Prüfen, ob die Datei existiert. Wenn ja, download erfolgreich
    if(file_exists('cache/'. $_POST['username'] .'.ini.cache'))
    {
    // Der Benutzer existiert - wir lesen seine Datei aus ( die wir gedownloaded haben )
    // Dazu nutzen wir parse_ini_file - das geht die Datei zeilenweise durch und macht aus einer Zeile "Key=xxx" folgendes: $array['Key'] = "xxx"
    $player = parse_ini_file('cache/'. $_POST['username'] .'.ini.cache');
    // Jetzt prüfen wir, ob das Passwort stimmt. WICHTIG: Bei einem GF müsst ihr das PW evtl. verschlüsseln !
    if($player['Key'] == $_POST['password'])
    {
    // Der Benutzer hat sich erfolgreich eingeloggt
    echo 'Du hast dich erfolgrecih eingeloggt.';
    // Jetzt setzen wir die Session-werte:
    $_SESSION['logedin'] = true;
    $_SESSION['user'] = $_POST['username'];
    }
    else
    {
    // Die Passwörter stimme nicht überein
    echo 'Das Passwort ist falsch !';
    }
    }
    else
    {
    // Der Benutzer existiert nicht
    echo 'Der Login ist falsch';
    }
    }
    else
    {
    // Das Formular ist nicht abgesendet
    echo <<<FORMULAR
    <div style="text-align: center;">
    <br>
    <br>
    <p><img src="logo.png" alt="NGRLogo"></p>
    <br>
    <p><span style="font-family:'Avantgarde',Times,serif">Wilkommen auf dem User Control Panel von New Generation Roleplay</span><br>

    <p><span style="font-family:'Comic Sans MS',Times,serif">Bitte logge dich mit deinem Ingame Account ein</span><br>
    <br>
    <br>
    <form action="UCP.php" method="post">
    <p><span style="font-family:'Comic Sans MS',Times,serif">Username:</span><br>
    <input type="text" name="username" /><br />
    <p><span style="font-family:'Comic Sans MS',Times,serif">Passwort:</span><br>
    <input type="password" name="password" /><br />
    <input type="submit" value="Einloggen" />
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    </div>
    </form>
    FORMULAR;
    }
    }
    ?>
    </body>
    </html>



    Der eingebene FTP Zugang funktioniert und kann ausprobiert werden!


    Ich hoffe ihr könnt mir helfen

  • // Einrücken müsst ihr selber :P


    So wird das nichts mit der Hilfe. Keiner hat Lust, nicht formatierten Sorucecode zu lesen. Pack den Code in code tags und rück ihn ein, dann kriegst du eher Hilfe als so.


  • Warning: ftp_get(cache/Uschi.ini.cache) [function.ftp-get]: failed to open stream: No such file or directory in /users/ngrserver/www/UCP.php on line 40


    Warning: ftp_get() [function.ftp-get]: Error opening cache/Uschi.ini.cache in /users/ngrserver/www/UCP.php on line 40

    Das sagt doch schon der Fehler?! Die Function ftp_get() hat defiziete die Datei UCP.php zuöffnen. Datei nicht vorhanden? Auf die Korrekte Gross/Kleinschreibung der Dateinamen auch achten ;)


    Abgesehen von der unsauberen Programmierung, kann dies schon verwirren :)


    Liebe Grüße
    palwal

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • palwal
    Das ist nicht korrekt.

    Zitat

    Warning: ftp_get(cache/Uschi.ini.cache) [function.ftp-get]: failed to open stream: No such file or directory in /users/ngrserver/www/UCP.php on line

    Der Fehler tretet auf, weil die Spielerdatei Uschi.ini.cache im Verzeichnis cache nicht gefunden / geöffnet werden kann.
    Der Fehler liegt darin, dass die Spielerdatei überhaupt nicht heruntergeladen / im cache Verzeichnis abgespeichert wird.


    Ich würde an deiner Stelle in MySQL umsteigen.
    Müsstest halt nur (je nach Skript) 2-3 Variablen umschreiben.

  • palwal
    Das ist nicht korrekt.

    Der Fehler tretet auf, weil die Spielerdatei Uschi.ini.cache im Verzeichnis cache nicht gefunden / geöffnet werden kann.
    Der Fehler liegt darin, dass die Spielerdatei überhaupt nicht heruntergeladen / im cache Verzeichnis abgespeichert wird.


    Ich würde an deiner Stelle in MySQL umsteigen.
    Müsstest halt nur (je nach Skript) 2-3 Variablen umschreiben.

    Okay wieder was gelernt. Ich habe ehrlich gesagt auch nie mit Cache gearbeitet xD

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

  • palwal
    Das ist nicht korrekt.

    Der Fehler tretet auf, weil die Spielerdatei Uschi.ini.cache im Verzeichnis cache nicht gefunden / geöffnet werden kann.
    Der Fehler liegt darin, dass die Spielerdatei überhaupt nicht heruntergeladen / im cache Verzeichnis abgespeichert wird.


    Ich würde an deiner Stelle in MySQL umsteigen.
    Müsstest halt nur (je nach Skript) 2-3 Variablen umschreiben.

    Ich komm mit MySQL nicht klar.


    Ich will ja nur wissen was der Fehler ist, bzw. was ich daran noch verändern muss.
    Und ich habe das eingerückt, nur wenn ichs dann anzeigen lasse sieht das wieder genauso aus.

  • Naja wenn du mich fragst würde ich nie so ein System haben so wie du das hast.


    MySQL ist easy. Schwieriger ist es, dein Script vor SQL Injection zu schützen. Aber du findest mehr Leute die MySQL können als die sich mit Dini auseinander setzen.


    Beispiel:


    Sry das es nicht eingerückt ist da ich es extra in diesen Thema rein geschrieben habe. Hoffentlich stimmen alle functions, ich arbeite nähmlich eigentlich nur noch mit PDO wenn es über die Datenbank geht xD


    MySQL ist wesentlich einfacher, ob im Script oder im Web.

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

    Einmal editiert, zuletzt von palwal ()

  • Warum eigendlich so schwer wenn es um dini geht?
    Guck dir das mal an.
    Dini in PHP

    Hab ja alles gemacht, aber das System kann nicht auf die Datei zugreifen und somit ist der Login irgendwie falsch.
    MySQL werde ich nie verstehen ich habe mich damit jetzt fast 1 Jahr beschäftigt und komme damit nicht klar.


    Wie bekomme ich das hin, dass das System auf das FTP richtig zugreift?

  • Warum wirst du es nie verstehen wenn wir mal dabei sind. ?
    Es kommt auch immer darauf an wie man es lernt, im Prinzip ist es einfach, du musst nur verstehen wie man damit arbeitet.

    Ja ich kann MySQL nicht und habe es schon ganz oft versucht desswegen arbeite ich mit DINI.


    Ich möchte ja nur wissen was der Fehler in der PHP Datei ist.