Login via Ajax überprüfen

  • Hallo zusammen,

    Ich bin gerade dabei eine Login-Abfrage mittels eines Ajax-Requests zu bearbeiten.
    Mein Problem liegt darin, dass anscheinend das Ajax Script fehlerhaft ist - ich jedoch den Fehler nicht finde.
    Die Loginabfrage funktioniert einwandfrei.

    Mein Ajax-Request sieht folgendermassen aus:

    alert("HERE"); wird noch afgerufen - zu inside komme ich allerdings nichtmehr.

    Es scheint so als ob die Anfrage einen Fehler aufweist mir den aber nicht anzeigt. :/


    Gruss,

    €: das ganze sieht ja schlecht formatiert aus.. Hier mal der pastebin Link :) http://pastebin.com/vSyS8y9Y

    Einmal editiert, zuletzt von Schoggimaendli (25. November 2010 um 14:12) aus folgendem Grund: formatierung.

  • Uncaught exception: TypeError: Cannot convert '$('username')' to object
    Error thrown at line 44, column 4 in doLogin() in http://xxxxx.js:
    var ajax = new Ajax.Request('sites/loginfunction/check_login.php',
    called from line 1, column 0 in <anonymous function>(event):
    doLogin();


    komischerweise habe ich den Code von nem Kollegen bekommen und das ganze läuft da perfekt...

    grz

    Einmal editiert, zuletzt von Schoggimaendli (25. November 2010 um 15:58)

  • Sieht stark nach Prototype aus :/
    Tut mir Leid, da muss wohl jemand anderes ran - ich benutze für AJAX-Request die Funktionen, die von Standardisierungs-Gremien vorgeschlagen werden.
    Ergo müsste ich mich erst in Prototype einarbeiten.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Wie würde das ohne das Prototype-Framework realisierbar sein?

    gruess


    €:

    Also das Problem liegt wohl nicht an Prototype.
    Ich habe das ganze mal mit einem XmlHttpObject probiert -> gleicher Fehler. ;)


    Es liegt daran dass mein Javascript die Inputbox 'username' nicht findet.
    Nur, wie kann das sein?
    Meine LoginBox wird mittels <?php require_once eingebunden. Aber daran dürfte es wohl kaum liegen, oder?

    grz

    Einmal editiert, zuletzt von Schoggimaendli (25. November 2010 um 16:43)

  • ....lesen


    oben

    Code
    var myhash = new Hash();
    myhash.set(...);

    unten dann

    Code
    parameters: myhash

    Einmal editiert, zuletzt von Pion (25. November 2010 um 16:47)

  • Bitte was?

    Du sollst das Manual lesen..

    Zitat

    The parameters for the request, which will be encoded into the URL for a 'get' method, or into the request body for the other methods. This can be provided either as a URL-encoded string or as any Hash-compatible object (basically anything), with properties representing parameters.

  • Auf was dein Beitrag bezogen war.
    Das mit dem Sckript ist mittlerweile geklärt, das Problem liegt eher an JavaScript selber.

    Er kann 'username' was ein <div> in meinem Code ist, nich zu einem Objekt konvertieren.
    Das brauch ich aber, da ich den Inhalt auslesen will.


    grz

  • Nimm jQuery. Bzw. den inhalt eines divs leist du nicht über seine DOM-Referenz sondern über .innerHTML aus.
    Mit jQuery sähe das dann so aus:

    Das führt dazu, dass eine Anfrage an ajax/login.php geht, der über POST die werte user und pw übergeben werden.
    Die Funktion bei success hat als erstes argument die rückgabe des Servers.

    EDIT:
    du musst natürlich nicht jQuery nehmen, ich halts nur für simpler mit jQuery ;)

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (25. November 2010 um 17:33)

  • Auf was dein Beitrag bezogen war.
    Das mit dem Sckript ist mittlerweile geklärt, das Problem liegt eher an JavaScript selber.

    Er kann 'username' was ein <div> in meinem Code ist, nich zu einem Objekt konvertieren.
    Das brauch ich aber, da ich den Inhalt auslesen will.


    grz

    Ach kommt sschon Leute, jetzt wo er sein HTML, in dem der Fehler liegt, gezeigt hat, müsst ihr doch nicht mit jquery ankommen.
    Das Problem liegt nicht an Javascript, sondern beim Programmierer ;)

    Mit

    Code
    $('username')


    und

    Code
    $('password')


    wird auf input felder mit den entsprechenden ID's zugegriffen. Diese gibt es aber nicht.
    Vergib also die ID's richtig oder greife anders auf die inputfelder zu, siehe dazu die Doku von Prototype.

    @Pion: An die url-parameter hatte ich auch erst gedacht, habe dnn aber das Manual gelesen. Und da steht, dass man sie auch in dieser Form übergeben kann ;)