• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Einbindung Webseite/php-Datei nach Ajax Request

Heavy-Dee

Mitglied
Hallo zusammen,


Ich versuche gerade eine Infoseite die als Active Desktop unter WinXP läuft zu schreiben.
In dieser Seite sollen nach der Clientanmeldung ein Benutzername und ein Passwort abgefragt werden und den Variablen $username u. $passwort (zur weiteren Verarbeitung) zugewiesen werden.
Ein "normaler" Serverrequest würde bei einem POST_Command ein neues Browserfenster öffnen, um dieses zu umgehen habe ich die Versendung der Formulardaten und die "Befüllung" der Variablen mit AJAX mittels jquery realisiert.
Dieser ganze Vorgang funktioniert auch.
Mein Problem besteht in der Weiterverarbeitung, nachdem die Benutzerdaten erfolgreich überprüft wurden erhalte eine Meldung 'LOGIN hat geklappt!' [Zeile 23].
Nun würde ich aber gerne anstelle der Meldung wieder die Hauptseite (html-bereich) angezeigt bekommen oder eine php-Datei includen und somit darstellen.
Ist der login fehlerhaft soll eine Meldung ausgegeben werden und wieder die Hauptseite (html-bereich) mit login.
Leider bekomme ich in beiden Fällen immer nur ein Meldungsfenster mit dem Code angezeigt und ich verstehe nicht wieso bzw. wie es zu realisieren ist.

PHP:
<?php
    $con=mysql_connect("localhost","xxx","xxx");
    if(!$con){die('Keine Verbindung zur Datenbank!');}
    mysql_select_db("xxx",$con);
    
    $username = $_POST['username'];
    $passwort = $_POST['passwort'];
    $passwort = md5($passwort);
    
    $sql = "Select login_id,login,pwd,new from tbl_login where login='$username'";
    $result=mysql_query($sql);
    $row=mysql_fetch_array($result);
    $u_db=$row['login'];
    $p_db=$row['pwd'];
    $id=$row['login_id'];
    
    // Benutzername und Passwort werden überprüft
    if ($username == $u_db && $passwort == $p_db)


    {
///////////////////////INHALT nach erfolgreichem Login hier !!!!!!!///////////////////////////////////////


        echo 'LOGIN hat geklappt!';
    
///////////////////////INHALT Ende !!!!!!!///////////////////////////////////////    
    exit;
    }


?>


<!DOCTYPE html>
<html lang="de">
    <head>
        <meta http-equiv="Content-Type" content="text/html css; charset=iso-8859-1">
        <title>Hauptseite</title>
        <link rel="stylesheet" type="text/css" href="src/main.css">
        <script src='src/jquery-1.3.2.min.js'></script>


        <script>
            $(document).ready(function () {
                $('#log_form').bind('submit', function() {
                    var form = $('#log_form');
                    var data = form.serialize();
                    $.post('test.php', data, function(response) {
                    alert(response);            
                    });
                    return false;           
                });             
            });
        </script>
    </head>


<!-- /////////////////////// Hauptseite  Menüleiste, Menüleiste rechts (u. Anmeldung in Spalte 2)/////////////////////////////////////// -->
<body>
    <div>
    
    <table width="400px" border="0" cellpadding="5" cellspacing="5" align="center">
        <form method="post" id="log_form" action="main.php">
            <tr>
                <td colspan="2" width="100%" style="text-align:center;">
                <h2>Anmeldung</h2>
                </td>
            </tr>
            <tr>
                <!-- Spalte 1 (50%) -->
                <td width="50%" style="text-align:right">
                    Personalnummer:
                </td>
                <!-- Spalte 2 (50%) -->
                <td width="50%" style="text-align:left;">
                    <input type="text" name="username" />
                </td>
            </tr>
            <tr>
                <!-- Spalte 1 (50%) -->
                <td width="50%" style="text-align:right">
                    Passwort:
                </td>
                <!-- Spalte 2 (50%) -->
                <td width="50%" style="text-align:left">
                    <input type="password" name="passwort"/>
                </td>
            </tr>
            <tr>
                <td colspan="2" width="100%" valign="top" style="text-align:center">
                    <br>
                    <button type="submit">Login</button>
                </td>
            </tr>    
        </form>    
    </table>


    </div>
</body>
</html>


Wäre nett wenn mir jemand helfen könnte.

MfG
DIRK
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Dann musst du es so aufbauen, dass der AJAX-Call dein Formular nicht ersetzt, sondern die Erfolgsmeldung in einen Container unterhalb des Formulars lädt.
 
Hallo,

du sprichst in rätzel, 2 mal von hauptseite, ein mal mit/ohne Login?

wenn zu einer anderen Seite möchtest ersetze dein
PHP:
echo 'LOGIN hat geklappt!';
gegen
PHP:
header("Location: Zielseite.php");
wenn möchtest das ein fehler angezeigt wird aber auch das formular musst ein affenformular draus machen und nach deinem
PHP:
    exit;
    }
ca das einfügen
PHP:
else{echo 'LOGIN Fehler!';}
man könnte jetzt natürlich die eingegebenen werte wieder in die felder schreiben und die Fehleranzeige in die Seite einbinden in dem die als variable machst und wo anders ausgibst
oder oder

Cheffchen
 
Werbung:
so wie du es beschrieben hast habe ich es auch versucht.

Wenn ich es mit "header" oder mit "include" versuche, bekomme ich immer eine Meldung mit dem Codeinhalt der entsprechenden Seite.

Code:
<?php
if ($username == $u_db && $passwort == $p_db)
    {
    header("Location: http://191.xxx.xxx.xx:xxxx/Hauptseite/status_today.php");
    exit;
    }
    else
    {
    header("Location: http://191.xxx.xx.xx:xxxx/Hauptseite/main.php");
    }
?>
oder
Code:
<?php
    if ($username == $u_db && $passwort == $p_db)
    {
    include "status_today.php";
    exit;
    }
    else
    {
    include "main.php";
    }
?>


ich weiß nicht mehr weiter.

DIRK
 
Werbung:
Zurück
Oben