Wiedermal was mit Cookies!!

dennis2412

Gesperrt
Hallo!!
Auf meiner Page gibt es einen kleinen Login in der Navi!!
Wenn man dort die richtigen Daten eingibt und auch Login klickt, dann wird man zu der Seite ok.php weitergeleitet!!
Wenn man dann wieder auf die Hauptseite also die indes.php geht muss man sich ja erneut einloggen, weil die internen Links ja nur in der ok.php stehen wie mache ich aber, dass die Hauptseite erkennt wenn ein cookie gesetzt wurde und dann autmoatisch nicht mehr das login formular sondern die internen links angibt?
Versteht ihr was ich meine?
 
PHP:
<? if($cookie=passwort) {echo "blabla..";} ?>

musst halt dann die entsprechenden links anzeigen, oder die datei includen --> d.h. statt echo $include=intern oder so
 
Also ich bin jetzt etwas durcheinander gekommen!
Wenn man sich einloggt, dann passiert folgendes:
PHP:
$dbanfrage = "select * from $tabelle where nick = '$_POST[nick]' and aktiviert= '1' and passwort = '$_POST[passwort]' ";  
$fetchdata = mysql_query($dbanfrage); 
if($fetchdata) { 
// Anzahl der Reihen pruefen 
    $number = mysql_num_rows($fetchdata); 
    if ($number == "1") { 

$_SESSION['nick'] = $_POST['nick']; 
$_SESSION ['passwort'] = $_POST['passwort'];
include "index.php";
}  
else  
{ 
echo "Entweder du hast dich nicht aktiviert oder garnicht erst angemeldet";  }   
}  

 
?>
Is ja schön aber in der start.php soll dann erkannt werden, ob ein Cookie gesetzt wurde!! Die start.php sieht momentan so aus:
PHP:
<td class="tab_menu" align="center" width="100%" bgcolor="880000" background="images/bereiche.gif" bgcolor="880000">
                  <form action="memberscript/control_login.php" method="post">
                  <font size="1" face="Verdana"><b>Nickname:</b></font><br><input type="text" name="nick" size="14" style=" background-image: url('http://www.ifsl2002.de/img/input.gif'); background:880000; color:#FFFFFF; border:1 ridge #000000; font:bold 10px Verdana"></font></b><br><font size="1" face="Verdana"><b>Passwort:</b></font><b><font face="Verdana" size="1" color="#FFFFFF"><br>
                  <input type="password" name="passwort" size="14" style=" background-image: url('http://www.ifsl2002.de/img/input.gif'); background:880000; color:#FFFFFF; border:1 ridge #000000; font:bold 10px Verdana"></font></b><br>
                  <input type="submit" name="login" style="background-color:#880000; color:#FFFFFF; border:1 ridge #000000; font:bold 10px Verdana" value="Login"></form></TD>
Aber wenn der ein Cookie erkennt also das richtige, dann soll dort z.B. nur "Hallo" stehen!!
 
hmm ich sehe kein cookie das gesetzt wird - und für mich
sieht es so aus als möchtes du über sessions arbeiten
da fehlt aber auch session_start und session_register :-)

und abfragen im anderen script geht dann so:

if ($_session['nick'] == '') {
# deine formular
} else {
echo "hallo";
}
 
Stimmt ich hab garkeine Cookies :-)
Aber dann mach ich das mal mit cookies, weil ich will, dass der noch eingeloggt ist, wenn er den Computer neustartet oder so!!
Also er soll solange eingeloggt bleiben, bis er sich ausloggt!!
Mit Cookies hab ich noch nie gearbeitet und damit mein Problem auch mit dem Titel zu tun hat: ;)
Könnt ihr mir sagen wie ich Cookies setze, wenn ich ein Formulat mit Nick und Passwort ab die control.php sende?
Also was muss ich dann in der control.php schreiben?
PHP:
mysql_connect($host,$user,$password) or die ('Konnte keine Verbindung zum Server herstellen'); 
mysql_select_db($dbname) or die ('Konnte Datenbank nicht auswählen'); 
 
 
$dbanfrage = "select * from $tabelle where nick = '$_POST[nick]' and aktiviert= '1' and passwort = '$_POST[passwort]' ";  
$fetchdata = mysql_query($dbanfrage); 
if($fetchdata) { 
// Anzahl der Reihen pruefen 
    $number = mysql_num_rows($fetchdata); 
    if ($number == "1") { 

$_SESSION['nick'] = $_POST['nick']; 
$_SESSION ['passwort'] = $_POST['passwort'];
include "index.php";
}  
else  
{ 
echo "Entweder du hast dich nicht aktiviert oder garnicht erst angemeldet";  }   
}
Jetzt muss ich ja eigentlich nur noch die Stelle in der if Schleife verändern und am Anfang <?
session_start();
?> weglassen oda?
 
PHP:
$_SESSION['nick'] = $_POST['nick']; 

$_SESSION ['passwort'] = $_POST['passwort'];

ersetzen durch

setcookie("user","$_spost['nick']",36000);

das cookie hält dann 10 stunden
 
cookie für immer geht meines wissens nicht

wenn aber der wert hinten sehr hoch ist hält das cookie entsprechend lange

3600 = 1 std
360000 = 100 std
360000000 = 100.000 std usw...

abrufen neue version:
echo $_cookie['nick'];

alte version
echo $nick;
(auf mein beispiel von oben bezogen)
 
Wenn ich beim Cookie ne risiege Zahl schreibe, besteht das Cookie dann auch noch wenn er den Browser schon geschlossen hat und wieder auf??
Und wie mache ich dsa jetzt mit dem if?
Ich kann nja nicht if $passwort= $passwort schreiben!!
 
Zuletzt bearbeitet:
jo das ist die function vom cookie
der inhalt kommt solange an den server zurück wie das cookie gültig ist
(auch wenn der rechner vom user aus war)

abfrage ist dann:

if ($_cookie['user'] <> '') {
echo "user $_cookie['user'] ist noch eingeloggt";
}

ps ..

löschen cookie fals der user sich doch abmeldet geht so:

setcookie("user","",0);
 
Zurück