WinFuture-Forum.de: Cookie Setzen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Cookie Setzen


#1 Mitglied ist offline   Kaldoran 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 19. April 06
  • Reputation: 0

geschrieben 08. April 2007 - 10:21

Hallo,

Ich bastel mir gerade ein ganz simples LogIn System.
Ich hab mir gedacht das beim LogIn ein Cookie gesetzt wird.
In dem Cookie sollte die IP gespeichtert werden und das Cookie sollte etwa 6 Stunden gültig sein.
Ich hoffe jemand kann mir sagen wie ich das mit dem cookie realisiere.

Der Hintergrund ist natürlich der, dass man sich nicht jedes mal neu einloggen muss wenn man die Page aufruft.
0

Anzeige



#2 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 08. April 2007 - 10:32

Ich gehe mal davon aus, dass du PHP benutzt. Um Cookies zu setzten verwendest du setcookie.

Zitat

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )


Also irgendwie so. Einfach mal im Manual gucken.

setcookie("DeinCookie", $desbenutzersip, time() + 3600*6);


Aber warum machst du es dir nicht bequem und verwendest Sessions?

Grüße
Pelztier

Dieser Beitrag wurde von PelzigesWaldtier bearbeitet: 08. April 2007 - 10:32

0

#3 Mitglied ist offline   Kaldoran 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 19. April 06
  • Reputation: 0

geschrieben 08. April 2007 - 10:40

Sessions bequem ?

Also ich hab mir folgendes Tutorial durchgelesen. Ich fand das ziemlich aufwendig.


Ich finde meine Methode viel leichter. Vor allem für meine Zwecke reicht es.
Ich hab mir halt gedacht:

Seitenaufruf -> prüfen ob gültiges Cookie vorhanden

Wenn ja Eingeloggt sein und zugriff auf "User Bereich"

Wenn nein LogIn Formular anzeigen und beim LogIn Cookie setzen
0

#4 Mitglied ist offline   Kaldoran 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 19. April 06
  • Reputation: 0

geschrieben 08. April 2007 - 13:10

Soweit hab ich alles realisiert.

Nun ist mir aufgefallen, dass ich gar nicht weis wie man abfragt ob ein gültiges Cookie vorhanden ist

Und es wär gut wenn jemand noch sagen könnte wie man ein Cookie löscht, für den LogOut.

THX schon mal
0

#5 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 08. April 2007 - 13:36

Cookies kannst du in der Superglobal $_COOKIE oder $_REQUEST finden. So rufst du dein Cookie ab:

echo $_COOKIE["DeinCookie"];


Wenn du C. löschen willst, dann setzt du expire einfach auf einen Zeitpunk der Vergangenheit.

setcookie ("DeinCookie", "", time() - 3600);


Das uns noch viel mehr steht auch im PHP-Manual: http://de2.php.net/m...n.setcookie.php

Grüße
Pelztier
0

#6 Mitglied ist offline   webgfx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 19
  • Beigetreten: 11. April 05
  • Reputation: 0

geschrieben 08. April 2007 - 14:19

Machs doch wirklich sexy und einfacher mit sessions..

session_start();


$_SESSION['deineSession'] = $deinValue;

prüfen kannst du es wie folgt:

if(isset($_SESSION['deineSession'])
{
}

und wenn du dich ausloggst einfach..

session_destroy();

Ich find das wesentlich einfacher. Hoffe ich konnt dir helfen.. :)
0

#7 Mitglied ist offline   Kaldoran 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 19. April 06
  • Reputation: 0

geschrieben 08. April 2007 - 15:04

Ich bin am verzweifeln.

Ich suche seit 35min den Fehler in dem Source:
<?php
  if($_GET['user'] == "")
	{
	  echo"Fehler: Kein Username eingegeben<br><br>";
	  $fehler = 1;
	}
  if($_GET['pwd'] == "")
	{
	  echo"Fehler: Kein Passwort eingegeben";
	  $fehler = 1;
	}
  if ($fehler != 1)
	{
	  mysql_connect("xxx","xxx","xxx") or die ("Keine Verbindung moeglich");
	  mysql_select_db("xxx")or die ("Die Datenbank existiert nicht");

	  $abfrage = "SELECT username, passwort FROM mitglieder WHERE username = $_GET[user]";
	  $ergebnis = mysql_query($abfrage);
	  $data = mysql_fetch_object($ergebnis);
	  if($data->username == $_GET['user'])
		{
		  $passwort = md5($_GET['passwort']);
		  if($data->passwort == $passwort)
			{
			  setcookie("login", time() + 3600*24);
			}
		  else
			{
			  echo"Fehler: Falsches Passwort eingegeben<br><br>";
			}
		}
	  else
		{
		  echo"Fehler: Unbekannter Username<br><br>";
		}
	}
?>


Der Server spuckt folgendes aus:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/xxx/check.php on line 19
Fehler: Unbekannter Username


Edit: Zur Hilfe: Line 19 ist folgende:
$data = mysql_fetch_object($ergebnis);

Es heißt ja so schön: Man findet nur den Fehler von anderen, nicht seine eigenen.

Ich hoffe ihr könnt mir helfen :)

Dieser Beitrag wurde von Kaldoran bearbeitet: 08. April 2007 - 15:16

0

#8 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 08. April 2007 - 15:57

übergibst du username und passwort beim einloggen per url oder per formular? ich nehme mal an doch eher per formular und dann muß es statt

$_GET['user'] und $_GET['passwort']

nämlich

$_POST['user'] und $_POST['passwort']

heißen.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#9 Mitglied ist offline   Kaldoran 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 19. April 06
  • Reputation: 0

geschrieben 08. April 2007 - 16:03

Die beiden Werte werden per Formular übergeben.

Ich hab jetzt mal alles auf $_POST umgestellt.

Es bleibt jedoch der selbe Fehler in Zeile 19
0

#10 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 08. April 2007 - 16:13

ich würde dann als erstes die werte in variablen packen und mit denen weiterarbeiten. also

$username = $_POST['user'];

usw. ganz am anfang und dann immer mit $username weitermachen. dann würde ich die datenbankabfrage erstaml rausnehmen oder als kommentar machen und nur die werte ausgeben, um zu gucken, welche werte überhaupt wie ankommen und dann das ganze erst mit der datenbank machen und auch da immer wieder kontrollwerte zwischendurch ausgeben, dass man weiß, wie weit das skript überhaupt funktioniert.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#11 Mitglied ist offline   Kaldoran 

  • Gruppe: aktive Mitglieder
  • Beiträge: 124
  • Beigetreten: 19. April 06
  • Reputation: 0

geschrieben 08. April 2007 - 16:40

Ich habs:

Der fehler lag hier:
$abfrage = "SELECT username, passwort FROM mitglieder WHERE username = $_POST[user]";

Es muss heißen:

$abfrage = "SELECT username, passwort FROM mitglieder WHERE username = '$_GET[user]'";

Es musste nur das $_POST[user] in solche 'hochkommas'

Keine ahung warum aber jetzt gehts.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0