Login Script via Ajax

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hey d0nUt, ich hab da noch ne frage an dich bezüglich des Login Scriptes... ich bekomme bei dem Teil ne errormessage... weisst du eventuell wieso ?

    Quellcode

    1. <?php
    2. if ($_POST['submit'] == 1)
    3. {
    4. $name = $_POST['name'];
    5. $pw = $_POST['pw'];
    6. if ($name == "VOLKAN")
    7. {
    8. if ($pw == "TEST")
    9. {
    10. header("location:../gb/admin/index.php?action=login&username=VOLKAN&password=TEST");
    11. } else {
    12. echo "Passwort ist Falsch";
    13. }
    14. } else {
    15. echo "User ist Falsch";
    16. }
    17. }
    18. echo '<html>
    19. <head>
    20. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    21. <title>AJAXLOGIN</title>
    22. <link rel="stylesheet" type="text/css" media="screen" href="../css/style.css" />
    23. <script type="text/javascript">
    24. $(document).ready(function() {
    25. $('#loginform').ajaxForm('#output', after);
    26. });
    27. function after(content) {
    28. if(!content) {
    29. $('#loginform').submit();
    30. return false;
    31. }
    32. }
    33. </script>
    34. <script type="text/javascript">
    35. function clearDefault(el) {
    36. if (el.defaultValue==el.value) el.value = ""
    37. }
    38. </script>
    39. </head>
    40. <body>
    41. <div id="main">
    42. <form id="loginform" action="'. $_SERVER['PHP_SELF'].'" method="post">';?>
    43. <input type="hidden" name="hid" value="hiddenValue" />
    44. <fieldset>
    45. <div><input type="text" class="mailing" name="name" value="Benutzer" onfocus='clearDefault(this)'/></div>
    46. <div><input type="password" class="mailing" name="pw" value="Password" onfocus='clearDefault(this)'/></div>
    47. <div><input type="submit" class="buttonmail" value="Login"/></div>
    48. </fieldset>
    49. </form>
    50. <div id="output"></div>
    51. </div>
    52. </body>
    53. </html>
    Alles anzeigen


    Diese Fehlermeldung bekomme ich:

    Quellcode

    1. Parse error: syntax error, unexpected '}', expecting ',' or ';' in E:\XAMPP\xampp\htdocs\root\JULIGO\login\log.php on line 28
  • Hallo d0nUt,

    ich habe das Script etwas modifiziert und in meine Seite eingebunden, bekomme aber immer den Fehler:

    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /.../newsletter_admin.php:10) in /.../newsletter_admin_secure.php on line 1"

    Was mache ich falsch? Hier die ersten Zeilen meines Scripts:

    newsletter_admin.php:

    Quellcode

    1. <?php
    2. if(!is_file("newsletter_config.php")) // Wenn keine Config-Datei vorhanden ist, wird das Setup-Script aufgerufen
    3. {
    4. include("newsletter_setup.php");
    5. exit;
    6. }
    7. else
    8. {
    9. require("newsletter_admin_secure.php");
    10. require("newsletter_config.php");
    11. ?>
    12. <html>
    13. <head>
    14. <title>login</title>
    15. ... usw ...
    Alles anzeigen


    newsletter_admin_secure.php:

    Quellcode

    1. <?php session_start();
    2. include("newsletter_config.php");
    3. if ($_GET['logout']=="1")
    4. {
    5. session_destroy();
    6. header("Location: newsletter_admin.php?logout=2");
    7. exit;
    8. }
    9. if($_POST['p_submit'] == 1)
    10. {
    11. $_SESSION['s_user'] = $_POST['p_user'];
    12. $_SESSION['s_password'] = md5($_POST['p_password']);
    13. }
    14. $login = false;
    15. $file = file($userfile);
    16. if($_SESSION['s_user'] != '' && $_SESSION['s_password'] != '')
    17. while (list ($line_num, $line) = each ($file))
    18. {
    19. $userziffern = explode(";;",$line);
    20. $dbuser = $userziffern[0];
    21. $dbpassword = $userziffern[1];
    22. $dblevel = $userziffern[2];
    23. if($dbuser == $_SESSION['s_user'] && $dbpassword == $_SESSION['s_password'])
    24. {
    25. $login = true;
    26. break;
    27. }
    28. }
    29. if($login == false)
    30. {
    31. ?>
    32. <!DOCTYPE ...>
    33. <html xmlns="http://www.w3.org/1999/xhtml">
    34. <head>
    35. <meta ... />
    36. <title>...</title>
    37. </head>
    38. <body> ... Loginformular ... </body>
    39. </html>
    40. <?php
    41. die();
    42. }
    43. ?>
    Alles anzeigen


    Seltsamerweise kommt die Fehlermeldung nur bei der Datei newsletter_admin.php. Bei den anderen Datein ist die Secure-Datei genauso eingebunden, aber da kommt keine Meldung.
    Ebenfalls tritt das Problem nach dem Login auf - ich kann problemlos navigieren bis auf diese eine Datei. Beim ausloggen kommt dann folgende Fehlermeldung:

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /.../newsletter_admin.php:10) in /.../newsletter_admin_secure.php on line 1

    Warning: Cannot modify header information - headers already sent by (output started at /.../newsletter_admin.php:10) in /.../newsletter_admin_secure.php on line 6

    Kannst Du mir bei meinem Problem Helfen? :D
  • änder mal in secure.php ab Zeile 10:
    Der Absatz nach der If-Anweisung sollte glaub ich in geschweiften Klammern stehen:

    Quellcode

    1. if($_SESSION['s_user'] != '' && $_SESSION['s_password'] != '') {
    2. foreach($file as $row) {
    3. $row = explode("\t", $row);
    4. $user = trim($row[0]);
    5. $password = trim($row[1]);
    6. if($user == $_SESSION['s_user'] && $password == $_SESSION['s_password']) {
    7. $login = true;
    8. }
    9. }
    10. }


    [EDITH]
    War vorher hier net noch ein Beitrag zu dem Login Script im Wiki?
    Bin ich jetzt bescheuert oder spinnt das Forum ?
    Lerne nicht Programmiersprachen, lerne Programmieren...

    :D Alles andere ist Syntax :D

    [Blockierte Grafik: http://www.xing.com/img/buttons/10_en_btn.gif]
  • nein, das ist der selbe thread, selber autor - anderes problem..
    scroll weiter nach oben

    meistens trenn ich threads mit unterschiedlichen problemen auf - bisher bin ich noch nicht dazu gekommen

    @topic: der fehler kommt, weil du vor dem start einer session keine ausgaben starten darfst.. (also weder echo noch content außerhalb der php klammern)
    der include ist zwar eigentlich über dem content, aber anscheinend klappts dennoch nicht