session_start() Problem

martin-schulz

Mitglied
Moin moin

Ich habe folgendes Problem.
Ich bin grade dabei mir ein Login auf meiner HP einzurichten.
wenn ich das Script einzeln aufrufe geht alles.
Aber wenn ich es einbinde und es dann aufrufen will kommt der fehler:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\www\ms\config.php:20) in C:\xampp\htdocs\www\ms\admin\login2.php on line 12

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\www\ms\config.php:20) in C:\xampp\htdocs\www\ms\admin\login2.php on line 12

kann mir jemand helfen.

fals ihr noch den quellcode benötigt sagt bitte bescheid.
 
Du startest in deiner login2.php eine Session.
In deiner config.php hast aber schon auf Zeile 20 eine Ausgabe.

Lösung:
Setze am Anfang deiner index.php schon den session_start().
 
Hallo

Okay wenn ich am anfang der PHP den session_start() setze, kann der in der Login und den anderen includierten seiten denn entfernt werden?
 
Okay euch vielen lieben dank es scheint zu klappen.

sagt mal bitte wie müsste ich anfangen um jetzt noch einen Logout zu programmieren.
Momentan gehts so das wenn die seite geschlossen wird man sich neu anmelden muss.
Für eure lösungsansätze bin ich dankbar.

LG Martin
 
Da wir dein Login-Script nicht kennen fange ich mal an ins Blaue zu raten.
Nehme an du Arbeitest mit Session.
Weiterhin nehme ich an du hinterlegst z.B. den Usernamen in dieser.
Wenn das soweit stimmt hast du mindestens 3 Varianten, wie du dich Ausloggen kannst.
1. Variante: unset(), kannst z.B. mit unset($_SESSION['username']); den Usernamen zurück setzen und damit dich "Ausloggen"
2. Variante: du setzt z.B. $_SESSION['username'] mit ein Leeren Wert (also so z.B. $_SESSION['username']="";)
3. Variante: du zerstörst die Session mit session_destroy()
 
Ja sorry war mein fehler habe vergessen den quelltext zu posten.

Hier werden die formulardaten an dieses Script (login2.php) übergeben.

PHP:
<?php 

  $username = $_POST["username"]; 
  $passwort = md5($_POST["password"]); 


//Auslesen der Datenbank

  mysql_connect("$BD_SERVER","$DB_NUTZER","$DB_PASSWORT");
  mysql_select_db("$DB_NAME");
  $sql="SELECT name, passwort FROM $DB_TB_NAME_ADMIN WHERE name LIKE '$username' LIMIT 1";
  $result=mysql_query($sql);

  $row = mysql_fetch_object($result); 

  if($row->passwort == $passwort) 
    { 
      $_SESSION["username"] = $username; 

      echo "<br>\n";
      echo "Hallo <b>\"" . $username . "\"</b> du hast dich <b><font color=\"#00ff00\">erfolgreich</font></b> angemeldet\n";
      echo "<br>\n<br>\n<br>\n";
      echo "<div align=\"center\"><input type=\"button\" value=\"&nbsp;&nbsp;weiter&nbsp;&nbsp;\" class=\"button\" onclick=\"document.location.href='index.php?section=31'\"></div>\n<br>\n<br>\n<br>\n";

    } 
  else 
    { 

      echo "<br>\n";
      echo "Benutzername und/oder Passwort waren <b><font color=\"#ff0000\">falsch</font></b>.\n";
      echo "<br>\n<br>\n<br>\n";
      echo "<div align=\"center\"><input type=\"button\" value=\"&nbsp;&nbsp;zur&uuml;ck&nbsp;&nbsp;\"class=\"button\" onclick=\"document.location.href='index.php'\"></div>\n<br>\n<br>\n<br>\n";

    } 

?>
 
Da hab ich ja gut geraten. :D Die Arten wie du dich Ausloggen kannst hab ich dir ja schon beschrieben.

ACHTUNG: Weiss nicht ob du dich schon mal mit dem Thema SQL-Injection beschäftigt hast. Dein Script ist ein gefundenes Fressen für Illegale Abfragen. Schau dir mal mysql_real_escape_string an.
 
Zurück