ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
210
210
EMPFEHLEN
-
27.04.07 12:53 #1
Hallo zusammen,
ich habe mir ein kleines Script zur Aktivierung von Accounts erstellt. Nachdem der Account aktiviert worden ist muss der benutzer ein Kennwort eingeben. Nach klick auf "Speichern" im Formular wird das Kennwort gespeichert. Allerdings verliere ich die SESSION-Variable "userid". Woran kann das liegen? Das Script wird per include() in mein "HTML Template" (kein wirkliches Template) geladen, wo auch session_start() gesetzt ist. Ich verstehe das einfach nicht! Ich hoffe ihr könnt mir helfen. Wer das live sehen will kann mir eine PN schicken.
Hier mal das Script:
PHP-Code:<?php
$errormessages = array();
$i = 0;
$error = false;
function check_passwordlength($password)
{
if(strlen($password) >= 5)
{
return true;
}
else
{
return false;
}
}
function randString( $length=12, $charset='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' )
{
$retVal = '';
$cardinality = strlen($charset);
for( $i=0; $i<$length; $i++ )
{
$retVal .= $charset{mt_rand()%$cardinality};
}
return $retVal;
}
if(isset($_POST["submit"]))
{
$password = strip_tags($_POST["password"]);
$password2 = strip_tags($_POST["password2"]);
if($password == "")
{
$error = true;
$errormessages[$i] = "Bitte geben sie ein Passwort ein<br />";
$i++;
}
else
{
if(!check_passwordlength($password))
{
$error = true;
$errormessages[$i] = "Das Passwort ist zu kurz. Passwörter müssen mindestens 5 Zeichen enthalten!<br />";
$i++;
}
}
if($password != $password2)
{
$error = true;
$errormessages[$i] = "Die Passwörter stimmen nicht überein!<br />";
$i++;
}
if(!$error)
{
print_r($_SESSION);
$offset = randString();
$password .= $offset;
$sql = "UPDATE nk_users SET offset = '".mysql_real_escape_string($offset)."', password = '".mysql_real_escape_string(hash("md5",$password))."' WHERE userid = ".mysql_real_escape_string($_SESSION["userid"]);
echo "<br />".$sql."<br />";
mysql_query($sql) or die ("Error: ".mysql_error());
//header("Location: http://www.codegroup.de/Privat/Radhad/netkicker/pwchanged");
}
}
if(isset($_GET["key"]) && $_GET["key"] != "")
{
$sql = "SELECT userid FROM nk_users WHERE activationkey = '".mysql_real_escape_string($_GET["key"])."'";
$ressource = mysql_query($sql) or die ("Error: ".mysql_error());
$user = mysql_fetch_assoc($ressource);
$_SESSION["userid"] = $user["userid"];
print_r($_SESSION);
$sql = "UPDATE nk_users SET activationkey = NULL WHERE activationkey = '".mysql_real_escape_string($_GET["key"])."'";
$ressource = mysql_query($sql) or die ("Error: ".mysql_error());
if(mysql_affected_rows() == 1)
{
echo '<h1>Account aktiviert</h1>
<p>Ihr Account wurde erfolgreich aktiviert.</p>';
}
echo '<h1>Passwort eintragen</h1>
<p>Trage nun dein Passwort ein. Dies muss sofort gemacht werden da du sonst deinen Account nicht nutzen kannst!</p>';
if(count($errormessages) > 0)
{
echo '<p class="errormessages">';
foreach($errormessages as $errormessage)
{
echo $errormessage;
}
echo "</p>";
}
}
?>
<form action="activate" method="post">
<fieldset>
<p>Passwort:</p><input type="password" name="password" />
<p>Passwort wiederholen:</p><input type="password" name="password2" />
<p> </p>
<input class="FormButton" type="submit" value="Speichern" name="submit" />
</fieldset>
</form>Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x
-
Bist du dir sicher, dass die Sitzung gestartet wird? Wird die Sitzungs-ID korrekt übergeben und so die vorhandene Sitzung wieder aufgenommen? Kommt es überhaupt dazu, dass der Wert gesetzt wird?
Markus Wulftange
-
27.04.07 16:34 #3
also der Wert wird gesetzt, und die Session wird auch gestartet, denn wenn ich in diesem Script oben session_start() verwende, kommt die Meldung von wegen "Notice: a session has been started before" oder so ähnlich. Ich geb jetzt nochmal die Session selbst aus, aber das dürfte ja eigentlich nichts ändern!
[EDIT]
Hmm... ich habe 2 Cookies namens PHPSSID zu der Domain, eigenartig
Geändert von Radhad (27.04.07 um 16:40 Uhr)
Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x
-
Markus Wulftange
-
29.04.07 23:44 #5
Ne, leider nicht
Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x
Ähnliche Themen
-
Problem mit Session
Von Sessionnase im Forum PHPAntworten: 5Letzter Beitrag: 07.07.10, 07:47 -
apache->VHOST - php session problem - immer neue session id
Von bjt im Forum Hosting & WebserverAntworten: 2Letzter Beitrag: 20.10.09, 12:35 -
Session Problem? Session startet nicht!?
Von Kumaro im Forum PHPAntworten: 8Letzter Beitrag: 29.01.09, 01:38 -
Session problem!
Von proloser im Forum PHPAntworten: 10Letzter Beitrag: 10.11.06, 18:48 -
Session Problem
Von DarkSummer im Forum PHPAntworten: 4Letzter Beitrag: 17.04.02, 20:55





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren