tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
552
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    lape Tutorials.de Gastzugang
    hallo
    ich habe nun ein session basiertes loginsystem programmiert.
    wie kann ich es realisieren, dass zusätzlich zu den sessions auch cookies angelegt werden.
    wenn ich beides paralel mache bekomme ich die fehlermeldung "...header already sent..."
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Hi, willkommen im Forum.

    Es ist eigentlich kein Problem sowohl Sessions als auch Cookies zu nutzen, auch ohne Nutzung der Output Control. Ich biete auf meiner Seite beim Login auch die Moeglichkeit an Cookies fuer ein automatisches Login beim naechsten Besuch setzen zu lassen.

    Hier mal meine login.php als Beispiel. Alles was Du evtl. vermisst (z.B. session_start()) wird bereits in anderen Scripts ausgefuehrt, da bei mir alles in die index.php includet wird (und nicht gerade wenig).
    Code php:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    
    <?php
    $changesection='main';
    $subtitle='Login';
    if (isset($_POST['login']))
        {
            if ((!empty($_POST['username'])) && (!empty($_POST['password'])))
                {
                    $users=mysql_query("select * from `users` where `username`='".quote_string($_POST['username'])."' limit 1",$db);
                    $user=mysql_fetch_assoc($users);
                    if (!empty($user))
                        {
                            $cryptedpassword=sha1($_POST['password']);
                            if ($cryptedpassword==$user['password'])
                                {
                                    if (isset($_POST['savelogin']))
                                        {
                                            setcookie('id',$user['id'],time()+2592000);
                                            setcookie('password',$cryptedpassword,time()+2592000);
                                        }
                                    $_SESSION['id']=$user['id'];
                                    $_SESSION['userlevel']=$user['userlevel'];
                                    mysql_query("update `sessions` set `userid`='".$user['id']."' where `sessionid`='".$sessionid."'",$db);
                                    header('Location:'.$sessioncheckcaller.$sessionparm);
                                    exit;
                                }
                            else
                                {
                                    $changes[$changesection].='Invalid username/password';
                                }
                        }
                    else
                        {
                            $changes[$changesection].='Invalid username/password';
                        }
                }
            else
                {
                    if (empty($_POST['username']))
                        {
                            $changes[$changesection].='No username<br>';
                        }
                    if (empty($_POST['password']))
                        {
                            $changes[$changesection].='No password<br>';
                        }
                }
        }
    $changes[$changesection].='<form method="post" action="'.$sessioncheckcaller.'?subsite=login.php'.$sessionparm_link.'">';
    $changes[$changesection].='<table class="vistable">';
    $changes[$changesection].='<tr><td>Username:</td><td><input type="text" name="username"></td></tr>';
    $changes[$changesection].='<tr><td>Password:</td><td><input type="password" name="password"></td></tr>';
    $changes[$changesection].='</table>';
    if ($session['cookies']==1)
        {
            $changes[$changesection].='Stay logged in:';
            $changes[$changesection].='<input type="checkbox" name="savelogin"><br>';
        }
    $changes[$changesection].='<input type="submit" name="login" value="Login">';
    $changes[$changesection].='</form>';
    ?>
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Abhängig von der Sitzungskonfiguration wird automatisch versucht, die Sitzungs-ID in einem Cookie zu übermitteln.
    Falls du jedoch zusätzlich noch einen Cookie setzen möchtest und die genannte Fehlermeldung erhälst, solltest du mal nach den Stichworten der Fehlermeldung suchen. Diese Thematik wurde bereits ausgiebig behandelt.

    Ach und bitte versuche dich an die Regeln der deutschen Rechtschreibung zu halten.
     
    Markus Wulftange

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 09.12.08, 08:37
  2. Antworten: 5
    Letzter Beitrag: 01.06.07, 23:44
  3. Problem mit session, cookie login
    Von kcyberbob im Forum PHP
    Antworten: 6
    Letzter Beitrag: 27.06.05, 10:22
  4. Login mit Session und Cookie Problem
    Von Cyberlord im Forum PHP
    Antworten: 3
    Letzter Beitrag: 16.06.04, 20:39
  5. Problem mit Login (Session & Cookie)
    Von kcyberbob im Forum PHP
    Antworten: 2
    Letzter Beitrag: 28.11.03, 10:50