Cookie | Array Problem

2Pac

Erfahrenes Mitglied
Hallo Leute!
Ich habe mich hier auf der Seite in bestimmte Themen mit dem Problem Cookie gelesen aber nichts passendes gefunden zum Thema...Darum hier mal kurz mein 1.Problem mit den Cookies:

Login.php:

<script language="php">
session_start(login);
</script>
<script language="php">
$host = "daten";
$user = "daten";
$pass = "daten";
$db = mysql_connect($host, $user, $pass);
$get_user = mysql_db_query("daten", "SELECT id, passwort, nickname FROM damembers WHERE passwort = '$passwort'");
$num = mysql_num_rows($get_user);
if ($num > 0)
{
$datenrichtig = true;
$nn_username = mysql_result($get_user, 0, "nickname");
$nn_userid = mysql_result($get_user, 0, "id");
$nn_userpass = mysql_result($get_user, 0, "passwort");
$user_eingeloggt = true;
mysql_close($db);
}
else
{
$datenrichtig = false;
$user_eingeloggt = false;
}
if ($datenrichtig)
{
session_register("user_eingeloggt","nn_username","nn_userid","nn_userpass");
setcookie("user_eingeloggt", "user_eingeloggt", time()+(3600*24*600000));
setcookie("nn_userid", "nn_userid", time()+(3600*24*600000));
setcookie("nn_username", "nn_username", time()+(3600*24*600000));
setcookie("nn_userpass", "nn_userpass", time()+(3600*24*600000));
echo "<script content='3'>location='index.php?user=$nn_username'</script>";

}
else
{
echo "<script content='3'>location='index.php</script>";
}
</script>

Wobei hier die Variable $passwort durch das Formular zum einloggen weitergegeben wird.

Überprüfen ob eingeloggt:

<script language="php">
session_start(login);
</script>
<script language="php">
if (@$_COOKIE["nn_userpass"])
{
session_register("user_eingeloggt","nn_userid","nn_userpass","nn_username","user_eingeloggt");
$_SESSION["nn_username"] = $_COOKIE["nn_username"];
$_SESSION["nn_userpass"] = $_COOKIE["nn_userpass"];
$_SESSION["nn_userid"] = $_COOKIE["nn_userid"];
$_SESSION["user_eingeloggt"] = $_COOKIE["user_eingeloggt"];
}
if ((session_is_registered("user_eingeloggt")) AND (user_eingeloggt))
{
echo "Herzlich willkommen $nn_username";
echo "<form action='ausgeloggt.php' method='Post'>
<p align='center'>
<input type='submit' value='Logout'>
</p>
</form>";
}
else
{
echo "<form action='eingeloggt.php' method='Post'>
<p align='center'>
<input name='passwort' size='19' value='Passwort eingeben'>&nbsp;
<p align='center'>
<input type='submit' value='Login'>
</p>
</form>";
}
</script>

Ausloggen.php:

<script language="php">
session_destroy(login);
setcookie("user_eingeloggt");
setcookie("nn_userid");
setcookie("nn_userpass");
</script>
<script language="JavaScript">
window.location.href = "index.php";
</script>

So jetzt hab ich das Problem das er beim Ausloggen das erst macht wenn der Browser neugestartet wird. Ausserdem gibt er wenn man eingeloggt ist nicht den Benutzername aus da steht dann immer Herzlich Willkommen 80.136.75.536|284746828 oder sowas in der art...Ausserdem ist man nur einmalig eingeloggt d.h. wenn ich nochmal auf die seite komme dann loggt er sich nicht wieder ein :(
Und noch eine Frage wie kann ich später immer darauf zugreifen auf dem was im Cookie steht?

So nun zum 2. Problem Array:
Ich habe ein Formular erstellt in dem man erst auswählen kann wieviel Spiele man hatte dann kommt man auf eine Seite dort werden soviele Spiele generiert wie man ausgewählt hat durch eine for schleife. Ein Spiel sieht im folgenden so aus das man ein dropdownmenü hat in diesem liest er aus einer datenbank die Spieler ein. Dann ein Textfeld in das man den Gegner schreiben kann und dann noch 2 dropdownmenüs für das ergebnis (also heimtore und auswärtstore). Diese werte übergebe ich mit:
'spieler$k' 'gegner$k' 'e1$k' 'e2$k' als value. So das ich also massig variablen hab. Nun wollte ich diese daten in ne tabelle schreiben als cws praktisch. Und dazu noch von jedem Spieler die Statistiken anfertigen. Das Script sieht dann wie folgt aus:

<script language="php">
$host = "daten";
$user = "daten";
$pass = "daten";
$db = mysql_connect($host, $user, $pass);
$hust = $spiele+1;
for ($p=1; $p<$hust; $p++)
{
$a = "spieler";
$sqlab = "select * from statistiken where";
$sqlab .= " nickname='$($a)[$p]'";
$res = mysql_db_query("nb2327_akcwelt", $sqlab);
$s = mysql_result($res, $p, "siege");
$n = mysql_result($res, $p, "niederlagen");
$u = mysql_result($res, $p, "unentschieden");
$t = mysql_result($res, $p, "tore");
$gt = mysql_result($res, $p, "gegentore");
}
</script>
$spiele wird übergeben dadurch wieviel spiele man auswählt...

Kann mir jemand bei diesen 2 Problemen helfen?
 
Zuletzt bearbeitet:
[.php] ... [./php] waere nicht schlecht gewesen :)

..okay also mit echo $_COOKIE[variable]; kannste das ausgeben, was Du im Cookie speicherst.

dann werde ich aus folgendem nicht schlau:
PHP:
session_register("user_eingeloggt","nn_userid","nn_userpass","nn_username","user_eingeloggt"); 
$_SESSION["nn_username"] = $_COOKIE["nn_username"]; 
$_SESSION["nn_userpass"] = $_COOKIE["nn_userpass"]; 
$_SESSION["nn_userid"] = $_COOKIE["nn_userid"]; 
$_SESSION["user_eingeloggt"] = $_COOKIE["user_eingeloggt"]; 
} 
if ((session_is_registered("user_eingeloggt")) AND (user_eingeloggt)) 
{

Du machst praktisch 2mal ein Session register .. Du solltest Dich auch auf eine Variante einigen, da Du einmal nach der 'alten' art die session daten setzt und spaeter nach der neuen. Ferner weiss ich nicht genau warum Du erst COOKIES setzt und dann nochmals eine Session brauchst?!...

PHP:
$_SESSION["nn_username"] = $_COOKIE["nn_username"]; 
$_SESSION["nn_userpass"] = $_COOKIE["nn_userpass"]; 
$_SESSION["nn_userid"] = $_COOKIE["nn_userid"]; 
$_SESSION["user_eingeloggt"] = $_COOKIE["user_eingeloggt"]; 
} 
if (isset($_SESSION["user_eingeloggt"]))   { 
     ausgabe...
   }

das mit dem session_destroy() ... oder besser unset($_SESSION..); ist nunmal so.. die sess_id wird standartmaessig (config) nach ca 20 minuten inaktivitaet automatisch geloescht..

so.. ich glaub da sind noch etliche fehler in deinem source (zumindestens muessten sehr viele parts optimiert werden, traffic sparen ist die devise .. ;)), aber ich will jetzt erstmal das schoene wetter geniessen... :-)
 
Zuletzt bearbeitet:
könntest du es mir optimiert hier schreiben wenn du das schöne wetter genossen hast?;) :-)
Naja und zu den Fehlern sorry aber ich hab das 1. mal mit Cookies gearbeitet und hatte echt fast kein Plan deswegen siehts auch bissel naja luschdig für pros aus würd ich sagen. Wäre also sehr nett wenn du mir da später helfen könntest. Cool wäre auch wenn du dich mit arrays auskennst und mir da auch das problem lösen könntest bzw. bei der Lösung helfen könntest :D
 
Zurück