Hulp nodig met de nieuwe versie van php.
Pagina: « vorige 1 2 3 4 volgende »
$playerinfo['password']
pepijn:
ok bedankt voor de hulp. Alleen staat er dit boven elke pagina:
Allen omdat er op de server de nieuwe versie van php draait werkt dit niet meer. Heeft iemand een idee hoe is dit moet oplossen?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if(!$email || !$password){
error("field");
exit;
}
if($playerinfo[password] != $password){
error("password");
error("field");
exit;
}
if($playerinfo[password] != $password){
error("password");
Allen omdat er op de server de nieuwe versie van php draait werkt dit niet meer. Heeft iemand een idee hoe is dit moet oplossen?
Heb je de variabellen $email en $password opgeslagen in cookies want dan moet je dat stukje code veranderen in:
Code (php)
Ik hoop dat ik geen onzin uitkraam :P
Gewijzigd op 01/01/1970 01:00:00 door remco
ik wil de gegevens in een cookie opslaan maar dat lukt niet.
uitleg op phpnet. Lees dit eens door, ik hoop dat je er dan uit komt. Anders moet je wachten tot een ander je kan helpen.
Ok ga ik doen. Erg bedank voor je hulp alvast.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form action=check.php method=post>
<p>The Eternal Duel is a browser based RPG game with incredible potential. Nearly every day you will see something new and exciting - and its all free. So why not sign up today!
<p><b>Email Address:</b>
<br>
<input type="text" name="email" size="20" style="border: 1px solid white; background-color: #000020; color: white">
<br>
<b>Password:</b>
<br>
<input type="password" name="password" size="20" style="border: 1px solid white; background-color: #000020; color: white">
<br>
<input type="hidden" name="action" value="setcookie">
<?
setcookie('email', $_POST['email']);
setcookie('password', $_POST['password']);
?>
<input type="submit" value="Log In" style="border: 1px solid white; background-color: #000020; color: white">
</form>
<p><form action=index.php method=post><b>Lost your password?</b><br />Just enter your email here to have it sent.<br />
<b>Email:</b> <br />
<input type=text name=email size=20 style="border: 1px solid white; background-color: #000020; color: white"> <br />
<input type=hidden name=action value=password>
<input type=submit value=Send style="border: 1px solid white; background-color: #000020; color: white">
</form>
<p>The Eternal Duel is a browser based RPG game with incredible potential. Nearly every day you will see something new and exciting - and its all free. So why not sign up today!
<p><b>Email Address:</b>
<br>
<input type="text" name="email" size="20" style="border: 1px solid white; background-color: #000020; color: white">
<br>
<b>Password:</b>
<br>
<input type="password" name="password" size="20" style="border: 1px solid white; background-color: #000020; color: white">
<br>
<input type="hidden" name="action" value="setcookie">
<?
setcookie('email', $_POST['email']);
setcookie('password', $_POST['password']);
?>
<input type="submit" value="Log In" style="border: 1px solid white; background-color: #000020; color: white">
</form>
<p><form action=index.php method=post><b>Lost your password?</b><br />Just enter your email here to have it sent.<br />
<b>Email:</b> <br />
<input type=text name=email size=20 style="border: 1px solid white; background-color: #000020; color: white"> <br />
<input type=hidden name=action value=password>
<input type=submit value=Send style="border: 1px solid white; background-color: #000020; color: white">
</form>
$_SESSION["email"] = "$_POST['email']";
$_SESSION["password"] = "$_POST['password']";
En hoe haal ik heb dan weer op?
omdat het formulier hier nog niet is gepost ;-)
ok. Maar ik doe het maar via session omdat sommige mensen cookies uit hebben staan. Maar kan ik dat doen zoals hierboven?
ophalen doe je gewoon door $_SESSION["email"] te gebruiken.
setten is dus:
oproepen doe je zo:
Let wel op dat er op iedere pagina waar je sessies gebruikt, helemaal bovenaan de pagina session_start(); moet staan.
Succes.
Btw, ook sessies zijn afhankelijk van cookies, dus dat probleem los je er niet mee op
Ok dank je wel. Ik hoop dat het nu gaat lukken :)
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
session_start();
$_SESSION["email"] = "$_POST['email'].";
$_SESSION["password"] = "$_POST['password']";
[/code]
session_start();
$_SESSION["email"] = "$_POST['email'].";
$_SESSION["password"] = "$_POST['password']";
[/code]
Gewijzigd op 01/01/1970 01:00:00 door pepijn van gastel
moet zijn
$_SESSION["email"] = $_POST['email'];
er staat een '.' [punt] die er niet thuis hoort, en variabelen binnen de quotes.
Ditzelfde geld voor het password.
Alleen is het onveilig om het wachtwoord en e-mail adres in een sessie te zetten, en dit hebj e volgens mij verder ook niet meer nodig.
Ik denk dat je beter een sessie ingelogd aan kunt maken, en deze op ja zetten.
Eventueel zet je er het ip in, md5 gehashed, zodat je dat later nog kunt controleren.
Dus als iemand succesvol is ingelogd doe je:
en op een beveiligde pagina doe je:
Code (php)
Eventueel zet je die sessie check, en sessie inhoud check apart zodat je een gedetaileerde error kunt geven.
Succes
Het probleem is alleen dat ik het email en wachtwoord nog wel ndig hebt. Maar de enige die bij die session kan is toch de gene dioe ook heeft ingelocht?
Maar waarom heb je het e-mail adres en wachtwoord later nog nodig dan?
Het is namelijk niet echt veilig om deze waarden ongecodeerd in een sessie te zetten
Maar nog even een fout. Wat klopt hier niet aan:
variabelen horen buiten de quotes, en waarom heb je het e-mail adres nog nodig.
Misschien kunnen we daar een andere manier voor verzinnen
Wie weet. Is het mischien handig als ik jou het script stuur of hoe zullen we het doen?
post hier maar, dan leert iedereen er van :-)