MySQL Daten in Cookie schreiben

Peetz

Mitglied
Also ich habe folgende zwei Dateien um ein Cookie zu schreiben. Die erste heist login.html, in der man Textfelder ausfühlen kann die dann in der zweiten Datei (cookiewrite.php) verarbeitet und geschrieben werden.

login.htm:
Code:
<html>
<head>
 <title>Neue Seite 3</title>
 <meta http-equiv="Content-Language" content="de">
 <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
 <meta name="ProgId" content="FrontPage.Editor.Document">
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
 <base target="_self">
</head>

<body bgcolor="#273037">
 <form action="cookiewrite.php" method="post"> 
  Nick:<br><input type="text" name="nick" size="10"><p>
  Passwort:<br><input type="text" name="passwort" size="10"><p>
  <input type=submit value=Abschicken>
 </form>
</body>
</html>

Und die cookiewrite.php:
PHP:
<?php 
$nick = $_POST['nick']; 
$passwort = $_POST['passwort']; 
$vars = $nick . "#" . $passwort;    
setcookie("planetenkampf", $vars, time()+3600);      
$cookievar = preg_split("/#/", $_COOKIE['planetenkampf']); 
$nick = $cookievar[0];
$passwort = $cookievar[1]; 

// Ausgabe der Daten und Weiterleitung
echo "Login war erfolgreich, du hast dich mit folgenden Daten eingeloggt:<p>";
echo "Nick: ";
echo $nick . "<br>"; 
echo "Passwort: ";
echo $passwort . "<p>"; 

echo "<a href=playerindex.htm>weiter zum Spiel</a>";

?>

Bis dahin klappt auch alles, die Daten die ich in die Felder eingetragen habe werden auch ordnungsgemäß in den cookie geschrieben und können wieder ausgelesen werden. Nun das Problem: ich habe eine My SQL Datenbank in der der Nick, das Passwort und die Id vor jeder Zeile steht (DB heißt "PK" und Tabelle heißt "member"). Ich möchte das eine MySQL Verbindung geöffnet wird und nachdem man vorher seinen Nick in die login.htm eingegeben hat die DB durchsucht wird und von der Zeile wo dieser Nick drin steht (Nicks sind in der DB auf einmalig gestellt, kommen also nur einmal vor)die ID dieser Zeile mit in den Cookie geschrieben wird. Ich hab's schon paar mal versucht aber bei mir funktioniert das nicht, könnt ihr mir bitte helfen?
 
Ich würd's mal so probieren:
PHP:
$query = mysql_query("SELECT id FROM member WHERE nickname = '" . $nickname . "'");
while ($array = mysql_fetch_array($query)) {
$id = $array["id"];
}
Und dann könntest du das z. B. so machen:
PHP:
$vars = $id . "#" . $nick . "#" . $passwort;
setcookie("planetenkampf", $vars, time()+3600);
Allerdings seh ich den Nutzen dahinter nicht ganz. Wenn ich du wäre, würde ich nur die id und das Passwort speichern, dieses allerdings noch mit [phpf]md5[/phpf] verschlüsseln lassen.
 
Code:
# Verbindung zur DB
mysql_select_db("PK") or die("Datenbank nicht vorhanden");
$sql = "SELECT id FROM member WHERE nick = '$nick'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
Dann hast du in $row['id'] die ID und kannst sie in dein Cookie schreiben.

Gruß Marvin.

Edit: Mist zu spät :D
Aber wieso machst du eine While SilentWarrior? Der Nick kann doch nur einmal vorkommen.
 
Zuletzt bearbeitet:
PHP:
$getIDbynick = mysql_query("SELECT ID FROM PK WHERE nick=".$_POST['nick']."");


Und dann einfach $getIDbynick (oder wie auch immer, is n' Variablenname) mit in den Keks schreiben.

EDIT: @Marvin:
Gibt das Query nicht gleich die entsprechende Variable raus, wenn man nur einen Datensatz raussucht?
 
Zuletzt bearbeitet:
Original geschrieben von honeyboy
PHP:
$getIDbynick = mysql_query("SELECT ID FROM PK WHERE nick=".$_POST['nick']."");



Und dann einfach $getIDbynick (oder wie auch immer, is n' Variablenname) mit in den Keks schreiben.

EDIT: @Marvin:
Gibt das Query nicht gleich die entsprechende Variable raus, wenn man nur einen Datensatz raussucht?

Wäre mir neu, soweit ich weiß liefert mysql_query immer die Ergebnis-Kennung/Ressourcen-Kennung, mit der man dann das Ergebnis abrufen kann.

Bei mir liefert das, bei einem Table mit, als UNIQUE deklarierte, Spalte "nick" folgendes:

Müsste dein Query nicht eigentlich wiefolgt aussehen:
PHP:
mysql_query("SELECT ID FROM PK WHERE nick='".$_POST['nick']."'");
Weil die Spalte "nick" ja höchstwahrscheinlich als (VAR)CHAR definiert ist.

Gruß
Marvin
 
Geht nich

Also ich hab's jetzt mal so probiert aber das geht nicht, woran liegt das?

PHP:
<?php 

#Variablen:
$nick = $_POST['nick']; 
$passwort = $_POST['passwort'];
$vars = $nick . "#" . $passwort . "#" . $id; 

# DB Verbindung:
$connectionid  = mysql_connect ("localhost", "root", ""); 
if (!mysql_select_db ("planetenkampf", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

# ID die ausgelesen werden soll
$id = mysql_query("SELECT ID FROM Planetenkampf WHERE nick='".$_POST['nick']."'");
	  




    
setcookie("planetenkampf", $vars, time()+3600);       
$cookievar = preg_split("/#/", $_COOKIE['planetenkampf']); 
$nick = $cookievar[0]; 
$passwort = $cookievar[1]; 
$id = $cookievar[2]; 

# Ausgabe der Daten und Weiterleitung 
echo "Login war erfolgreich, du hast dich mit folgenden Daten eingeloggt:<p>"; 
echo "Nick: "; 
echo $nick . "<br>"; 
echo "Passwort: "; 
echo $passwort . "<br>"; 
echo "ID: ";
echo $id . "<p>";

echo "<a href=playerindex.htm>weiter zum Spiel</a>"; 

?>
 
Hi,
1. Du benutzt $id, bevor du sie ermittelt hast.
2. mysql_query liefert die Ergebnis-Kennung, nicht die ID (siehe weiter oben in diesem Thread).
3. "or" benutzen. ;)

PHP:
#Variablen: 
$nick = $_POST['nick']; 
$passwort = $_POST['passwort']; 

# DB Verbindung: 
$connectionid  = mysql_connect ("localhost", "root", ""); 
mysql_select_db ("planetenkampf", $connectionid)) or die ("Keine Verbindung zur Datenbank");

# ID die ausgelesen werden soll
$sql = "SELECT ID FROM Planetenkampf WHERE nick = '$nick'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result); 

$vars = $nick . "#" . $passwort . "#" . $row['ID']; 

setcookie("planetenkampf", $vars, time()+3600);        
$cookievar = preg_split("/#/", $_COOKIE['planetenkampf']); 
$nick = $cookievar[0]; 
$passwort = $cookievar[1]; 
$id = $cookievar[2]; 

# Ausgabe der Daten und Weiterleitung 
echo "Login war erfolgreich, du hast dich mit folgenden Daten eingeloggt:<p>"; 
echo "Nick: "; 
echo $nick . "<br>"; 
echo "Passwort: "; 
echo $passwort . "<br>"; 
echo "ID: "; 
echo $id . "<p>"; 

echo "<a href=playerindex.htm>weiter zum Spiel</a>";

Gruß
Marvin.
 
Zurück