Beiträge von Florian77711

    Schnell überflogen würde ich sagen, dass isset($_POST['submit']) nie wahr ist.
    Ich persönlich würde eine hidden-variable mitschicken (<input type="hidden" name="isForm" value="1">) und auf diese dann das isset($_POST['isForm']) überprüfen.

    Ich schätze mal dass du es ohne Cronjob machen möchtest, da dir keiner zur Verfügung steht.
    Als ich früher keine Cronjobs hatte, bin ich auf cronjob.de gestoßen, da kann man zumindest einen Cronjob kostenlos anlegen, d.h. deren Server ruft eine von dir eingegeben URL zu einem bestimmten Zeitpunkt auf (bei kostenloser Nutzung mit maximal 1-2 Minuten verspätung).


    Ein anderer Lösungsansatz (wenn das Spiel komplett im Hintergrund läuft) wäre, das Spiel zwischen TeamA und TeamB einfach zum Zeitpunkt der Annahme der Herausforderung zu simulieren, jedoch erst ab voller Stunde "öffentlich" zu zeigen.

    @Admins: Bitte löschen und ggf. verwarnen

    Wieso sollten die Admins jetzt ernst gemeinte und nicht beleidigende Kritik löschen?


    Ich selbst vertrete die Meinung dass man nach ein paar Stichworten, die man erfragen kann, 2 Minuten Zeit in Googel investieren kann und so seine Codeschnipsel (möglicherweise gleich den ganzen Code) bekommt, anstatt wegen jedem **** alles genau zu erfragen.

    PHP
    $query = mysql_query("SELECT admin FROM users WHERE username = '$username'");
    $data = mysql_fetch_array($query);
    foreach($data as $row) {
        $isAdmin = (int) $row['admin'];
    }


    Was bringt denn hier eine foreach-Schleife? Es sollte ja sowieso nur eine Zeile pro Benutzernamen geben...
    Ich würde das ganze so machen:

    PHP
    $query = mysql_query("SELECT admin FROM users WHERE username = '$username'");
    $data = mysql_fetch_array($query);
    $isAdmin = (int) $data['admin'];

    Das Problem ist, ich möchte das ganze nicht auf meinem Webserver machen.


    Ich will das ganze mal verkaufen, und wenn ein Kunde eine eigens erstellte 404-Page hat, soll diese dann angezeigt werden.
    Und da das ganze anwenderfreundlich sein soll, will ich nicht dass der Kunde dann den Pfad der Error-Seite in die .htaccess-Datei eintragen muss, aber ich werde wohl nicht daran vorbei kommen, oder?

    Guten Abend!


    Ist es in PHP Igrendwie möglich, den Pfad der Error-Documents herauszufinden?


    Ich möchte in einem Skript, wenn nicht alle Parameter übergeben wurden, die Standard Error-Seite ausgeben.


    Die Methode "auf nicht vorhandene Seite Weiterleiten" fällt aus, da ich die Seite "komplett unsichtbar" machen möchte, bei einer Weiterleitung weiß man aber, dass hinter der URL ein Skript steckt. Einfach den 404-Statuscode ausgeben bringt z.B.: bei meinem Opera nichts, da er dann einfach eine weiße leere Seite anzeigt. Auch das Ausgeben von file_get_contents('http://nicht_Vorhandene_Seite'); geht nicht, da PHP nur ein E_WARNING ausgibt, den Inhalt jedoch nicht...


    Hat irgendjemand Hilfe?


    MfG Florian

    Anscheinend gibt es ein Problem mit der MySQL-Query.


    Sidn Sie sicher dass die Tabelle userdate heißt? das wäre der erste mögliche Fehler, der mir auffält.


    Des weiteren bin ich mir jetzt nicht ganz sicher, jedoch glaube ich dass MySQL einfache ( ' ) Anführungszeichen möchte, Sie benützen doppelte.


    Lösungsvorschlag:

    PHP
    $query = mysql_query('SELECT * FROM `userdata` WHERE `user`=\''.$username.'\' AND `pw`=\''.$passwort.'\'');

    1. Das mit der Session (Zeile 16) kannst du eingentlich jetzt mal weglasse, hatte ich nur noch mitkkopiert...
    2. Probier mal zu 'debuggen', also mach z.B.: das $data = mysql_fetch_array($result); [Zeile 13] schon vor dem 1. IF, und gibt dir dann z.B.: $data['password'] aus und dann noch $passwort und schau, ob es das selbe ist.

    Das versteh ich jetzt nicht...
    Sicher, dass du es genau so hast, und nicht irgendwo zufällig ?> steht oder so?
    Das einzige, was mir einfällt, wäre die Zeile 11 so umzugestalten:

    PHP
    if(0 < mysql_num_rows($result)) {


    Aber das Ergebnis kann ich mir nicht erklären, eigentlich müsste es (meiner Meinung nach) funktionieren...

    Hab das mal aus dem Login-Skript einer selbst gecodeten Website genommen:



    Hoffe das hilft dir weiter


    Falsch, es könnte zwar sein, dass bei einer mehrfachen Anwendung eine Brute-Force-Attacke etwas länger brauchen könnte, jedoch steigt die Gefahr von neuen Attacken. Ebenfalls wird bei Algorithmen immer dazu notiert, ob es sicher ist, diesen Algorithmus mehrfach anzuwenden oder nicht, da es evt. zu Ausnahmesituationen kommen kann.


    Nja, auf jedenfall sicherer als 1maliges md5, da z.B. die meisten Passwort-Tabellen auf md5 ausgelegt sind, nicht auf doppeltes md5.
    Auch das 'etwas länger brauchen' ist nicht unter den Tisch zu kehren.


    Sicherlich ist es nicht besonders sicher, aber für einen PHP-Anfänger reicht es meiner Meinung nach alle Mal.


    //Edit: Zu Sh12:


    Du hattest ja in diesem Thread einmal deinen md5-hash aus der Datenbank geposted, wenn ich mich recht erinnere war der in Großbuchstaben.
    Villeicht könnte das dein Problem sein: Die PHP-Funktion md5() gibt einen String zurück, in dem die Buchstaben klein sind.
    Anscheinend gibt dein SA:MP-Skript, oder was auch immer den MD5-String in die Datenbank schreibt, den MD5-String in Großbuchstaben an, was jedoch für PHP (und ich glaub so ziemlich jede andere Script/Programmiersprache auch) nicht dasselbe ist.


    Mein Lösungsvorschlag wäre jetzte folgender:


    PHP
    /* Zeile 17 */ else if(strtolower($user['Passwort']) == md5($passwort))


    Die Funktion strtolower gibt dir das gehashte Passwort der Datenbank dann in Kleinbuchstaben zurück, was dein Problem, wenn es das meiner Annahme ist, löst...

    jap, doppeltes hashen ist ja eigentlich auch viel sicherer :)
    //Edit: Neue Nachricht buggt, also so:


    Durch das true wird nicht der Hexadezimalwert des Hashes angezeigt, sondern im Binären Format zurückgegeben, also der "Wusel" ^^