kostenloser Webspace werbefrei: lima-city


Problem mit Sessions

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    thoba

    Co-Admin Kostenloser Webspace von thoba

    thoba hat kostenlosen Webspace.

    Hallo!

    Ich habe folgendes Problem: Ich habe ein Script geschreiben, in dem Sessions genutzt werden. Bei mir auf dem Rechner mit Xampp l?uft es auch, aber hier bei Lima kommen folgende Fehler:


    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/webpages/lima-city/thoba/html/admin/index.php:12) in /home/webpages/lima-city/thoba/html/admin/index.php on line 47

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/webpages/lima-city/thoba/html/admin/index.php:12) in /home/webpages/lima-city/thoba/html/admin/index.php on line 47

    Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/thoba/html/admin/index.php:12) in /home/webpages/lima-city/thoba/html/admin/index.php on line 51


    Das Script sieht komplett so aus:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Login f?r den Admin-Bereich</title>
    </head>
    
    <body>
    
    <div align="center">
      <h1>Login f&uuml;r den Admin-Bereich</h1>
      <form name="form1" method="post" action="<?php echo $PHP_SELF; ?>">
        <p>Username:</p>
        <p>
          <input name="name" type="text" id="name">
    </p>
        <p>&nbsp;</p>
        <p>Passwort:</p>
        <p>
          <input name="passwort" type="password" id="passwort">
    </p>
        <p>
          <input type="submit" name="Submit" value="Login">
    	  <input type="hidden" name="send" value="1">
        </p>
      </form>
      <p>&nbsp;  </p>
    </div>
    <?php
    if($_POST[send] == 1) {
    if($HTTP_POST_VARS['name'] == "" OR $HTTP_POST_VARS['passwort'] == "")
    echo "Sie haben kein Benutzernamen oder Passwort eingegeben";
    else {
    mysql_connect("mysql.lima-city.de", "USER20218", "xxx");
    mysql_select_db(DB595986944);
    
    $sql_1 = "SELECT user, passwort FROM admin WHERE id = '1'";
    $result_1 = mysql_query($sql_1);
    while($row_1 = mysql_fetch_object($result_1))
    {
    $db_user = $row_1->user;
    $db_passwort = $row_1->passwort;
    }
    $pass_md5 = md5($HTTP_POST_VARS['passwort']);
    
    if($db_user == $HTTP_POST_VARS['name'] && $db_passwort == $pass_md5) {
    session_start();
    $_SESSION[user] = $HTTP_POST_VARS['name'];
    $_SESSION[passwort] = $pass_md5;
    
    header ('Location: admin.php');
    }
    
    else {
    echo "Der Benutzername und/oder das Passwort ist falsch!";
    echo "<br>Bitte versuchen Sie es erneut."; 
    }
    
    }
    
    }
    else {
    echo "Bitte loggen Sie sich ein!";
    }
    
    
    ?>
    </body>
    </html>


    Wo liegt der Fehler, bzw. was muss ich alles ?ndern? Ich bin nicht so der Experte auf dem Gebiet.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hihi thoba!

    Bist du sicher, dass dein Script auf deinem lokalen XAMPP-Server l?uft? Du gibst HTML-Quelltext aus, bevor du einen header()-Befehl absendest. Befehle wie header() oder setcookie() m?ssen immer vor jeglicher Textausgabe erfolgen. Wo das nicht m?glich ist, musst du die Textausgabe zwischenspeichern. Ich verwende dazu am Anfang des Quelltextes
    ob_start()
    und am Ende
    ob_end_flush();

    MfG
    alopex
  4. Autor dieses Themas

    thoba

    Co-Admin Kostenloser Webspace von thoba

    thoba hat kostenlosen Webspace.

    Ja, dass Script l?uft bei mir lokal, und zwar sogar so wie ich es haben will.

    Trotzdem sch?n, dass du den Fehler entdeckt hast. K?nntest du mir vielleicht anhand meines Scriptes das Beispiel geben, wie ich das jetzt genau machen muss?

    W?re nett von dir.
  5. <?php
    ob_start();
    // Das muss als allererstes stehen,
    // ohne irgendwelchen Lehrzeichen oder
    // Zeilenumbr?che
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//D...
    ...
    </body>
    </html>
    <?php
    ob_end_flush();
    ?>
  6. Autor dieses Themas

    thoba

    Co-Admin Kostenloser Webspace von thoba

    thoba hat kostenlosen Webspace.


    <?php
    ob_start();
    // Das muss als allererstes stehen,
    // ohne irgendwelchen Lehrzeichen oder
    // Zeilenumbr?che
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//D...
    ...
    </body>
    </html>
    <?php
    ob_end_flush();
    ?>


    Perfekt! So geht es!

    Vielen Dank @ alopex!
  7. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Bei einer bestimmten Version des Apache-Servers war es m?glich, erst daten auszugeben, bevor man cookies setzt. Der IE und ?ltere Mozillas haben die dann sogar angenommen, alle anderen hab den Header als Text ausgegeben. Hab ich zumindest mal irgendwo gelesen (k?nnte hier in dem Forum gewesen sein).
  8. session_start();


    Must ganz oben stehen.
    also vor

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


    mfg biLo

    EDIT: Achso sorry es l?uft ja schon. :blah:
  9. m*********1

    was ich dir auch noch raten w?rder

    if($_POST[send] == 1) {
    
    if($HTTP_POST_VARS['name'] == "" OR $HTTP_POST_VARS['passwort'] == "")


    ersetze es durch:

    if(isset($_POST["Submit"])){
    
    if($HTTP_POST_VARS['name'] == "" OR $HTTP_POST_VARS['passwort'] == "")


    Dann brauchst du kein Hiddenfeld mehr und du kannst dir sicher sein, dass du wirklich keine Fehlermedlung wie zum Beispeil das in dem Array nichts drine ist bekommst
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!