Cookie über Function setzen?

Also bisher meldet man sich auf der Hauptseite an, wenn der User existiert wird das Passwort mit dem in der Datenbank hinterlegten verglichen. Wenn das korrekt ist, wird erst das Coockie gesetzt und in den Unterordner weitergeleitet.

Im Unterordner vergleiche ich den in dem Coockie hinterlegten User mit der Datenbank, ob dieser existiert. Wenn ja wird die Seite ausgegeben, ansonsten zurückgeleitet zur Hauptseite. Das hat den Hintergrund, falls jemand nicht über die Haupseite geht, sondern direkt den Unterordner aufruft!

Reicht das aus? Wenn nein, was könnte mal noch einbauen bzw. prüfen?

Mfg.
 
Aber der Cookie (maskuliner Artikel, ohne „c“) enthält dann ja nur den Benutzernamen. Die Authentisierung erfolgt also allein auf diesem Wert. Cookies können aber auch selbst gesetzt werden. Der Schutz ist also gleich Null.
Wieso arbeitest du nicht einfach mit einer Sitzung?
 
Du meinst also ein Coockie setzen, darin eine Zeichenfolge die in der Datenbank zum dazugehörigen User gespeichert wird!?

Oder was hält man von dem Vorschlag das Password md5 verschlüsselt abzuspeichern? Und dieses dann immer mitprüfen!?

Die Sitzung müsste ich ja dann bei jedem Seiteraufruf aktualisieren oder? Wollte eine Dauer von 20 Minuten machen. Wenn des USer in dieser Zeit nichts gemacht hat ist das Coockie abgelaufen!
 
Ich rate dir zur Sitzung. Speichere einfach bei der Authentisierung ein Wert und prüfe später, ob dieser existiert. Dann brauchst du auch keine Benutzerinformationen in Cookies zu speichern.
 
Alles klar so mache ich das!

Sagt mal kann man auch eine Function neu starten? Also ich vergebe eine ID per Zufallsgenerator und möchte prüfen, ob diese schon vergeben ist und wenn ja, erneut den Zufallsgenerator starten! Wie kann man das realisieren?

Generator:
PHP:
$pool = "qwertzupasdfghkyxcvbnm";
$pool .= "23456789";
$pool .= "WERTZUPLKJHGFDSAYXCVBNM";
srand ((double)microtime()*1000000);
for($index = 0; $index < 20; $index++)
{
$sessionID .= substr($pool,(rand()%(strlen ($pool))), 1);
}

Datenbankabfrage:
PHP:
$db = connect_db();
$sessionnum=mysql_num_rows(mysql_query("SELECT sessionID FROM user WHERE sessionID = '$sessionID'", $db));
mysql_close($db);

Wie kann ich das einbauen oder miteinander verschweißen?
 
Du musst es gar nicht so kompliziert machen. Nutze doch einfach den PHP-eigenen Sitzungsmechanismus. Die Wahrscheinlichkeit, dass bei der Initialisierung einer neuen Sitzung eine bereits existierende Sitzungs-ID generiert wird, ist relativ gering und kann ignoriert werden.
Falls du jedoch dennoch sicher gehen willst:
PHP:
session_start();
if (!isset($_SESSION['CREATED'])) {
	$_SESSION['CREATED'] = time();
} else if (!isset($_GET[session_name()], $_POST[session_name()], $_COOKIE[session_name()])) {
	session_gegenerate_id();
}
 
Hmm ich habs jetzt ohne Session gemacht und zwar so;

Ich generiere beim erfolgreichen Authentifizieren eine ID, die in ein Coockie gespeichert wird und in die Datenbank zum eingeloggten User.

Und auf den nächsten Seiten schaue ich ob die ID in dem Coockie mit einer ID in der Datenbank übereinstimmt und wenn nicht zurück!

Ist das schwachsinnig oder sollte ich das ganze komplett mit sessions machen?
 
Zurück