Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Cookies und SessionID's

Empfohlene Antworten

Veröffentlicht

Hallo!

Ich möchte folgendes...

Eine Webseite auf der man sich einloggt und auf den folgenden Seiten der Benutzer erhalten bleibt, also die Seite weiß wer sich angemeldet hat und surft.

So, mein Problem...

Ich habe alles fertig programmiert und es lief auch, als ich es jedoch auf meinen Webserver (der gehostet wird) lud klappte dies nicht mehr. Ich vermute mal, da die Session auf dem Server in eine Textdatei geschrieben wird, was der Server aber nicht erlaubt. Es darf keine Datei auf dem Server geschrieben werden.

Wie realisiere ich nun meine Login Funktion? Ich bekomme es einfach nicht hin. :-(

Am liebsten wäre mir, wenn die SessionID in einem Clientseitigen Cookie gespeichert werden, bzw. wenn dieser keine Cookies erlaubt, in der URL übergeben wird. Doch wie bekomme ich das hin? *schnief*

Ach ja, meine Cookies verursachen folgende Fehler-Meldungen:

Warning: Cannot add header information - headers already sent by (output started at /www/users/web181/html/ims/login.php:12) in /www/users/web181/html/ims/login.php on line 75

Warning: Cannot add header information - headers already sent by (output started at /www/users/web181/html/ims/login.php:12) in /www/users/web181/html/ims/login.php on line 76

Hier mein Code:

<html>

....

Formular

....

// Überprüfung

if ($submit) {

// Verbindung mit der Datenbank wird hergestellt

$db = mysql_connect("localhost","....",".....");

mysql_select_db("......",$db);

// Benutzer und Paßwort werden in der Datenbank überprüft

$sql = "SELECT * FROM db_user WHERE User='$UserEntered'";

$result = mysql_query($sql,$db);

$data = mysql_fetch_array($result);

// Ist der Benutzer vorhanden, wird eine neue Seite aufgerufen

if ($PassEntered==($data["Password"])){

$UserID=$data["UserID"];

setcookie("sessionlogin", "$UserID", "()+1800);");

header("Location: main.php");

}

// Ist der Benutzer nicht vorhanden, wird eine Fehlermeldung ausgegeben

else{

echo ("Der Benutzer existiert nicht, oder falsches Paßwort");

include("login.php");

exit;

}

}

}

?>

Wobei Zeile 75 und 76 folgende sind:

setcookie("sessionlogin", "$UserID", "()+1800);");

header("Location: main.php");

Erstmal danke für die Antwort!

*grübel*

Ich dachte mit dem Befehl verweist man an eine neue Seite, bzw. ruft diese auf.

Wie löse ich mein Problem am besten? Ich glaube, ich muß noch viel lernen....:rolleyes:

Moin !

der header() Befehl ist schon richtig, nur darfst Du wie gesagt vorher keinerlei Ausgaben machen, schon der <html> Tag am Anfang ist zuviel.

Wenn ich das richtig sehe, zeigt dein login.php das Anmelde-Formular an und schickt das ergebnis an sich selbst ?

Lösen könntest Du das z.B., indem Du die Ausgabe des Login-Formulars in eine eigene Funktion packst, und am Anfang des Scriptes verzweigst (über die $submit-Variable) in entweder Formular-ausgeben oder Überprüfung. Wichtig ist halt nur, das vorher nix an den Browser geschickt wird.

Hoffe das hilft Dir weiter !

gruß

Christian

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.