Login/Sessie's probleem
Ik gebruik de zelfde toepassing als Jan ook doet dus precies het zelfde
maar hij haalt sessie's door elkaar denk ik.
Als ik ingelogd ben en iemand anders logt in komt die op mijn account.
Het is exact hetzelfde behalve wat er gebeurt na het inloggen.
Ik laat hierna een query uitvoeren met het ID uit de session.
Tutorial :
http://www.phphulp.nl/php/tutorials/10/415/
Dit doe ik na het aanmaken van de sessie:
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
$id2 = $_SESSION['id'];
$query2 = mysql_query("SELECT * FROM members WHERE id='$id2'");
while ($row2 = mysql_fetch_assoc($query2))
{
$id = $row2['id'];
$email = $row2['email'];
$ras = $row2['type'];
$level = $row2['level'];
}
$query = mysql_query("SELECT * FROM characters WHERE currentchar='Yes' AND memberid='$id2'");
$num = mysql_num_rows($query);
if($num != 0)
{
$char = 1;
}
else
{
$char = 0;
}
if($char == 1)
{
$row = mysql_fetch_assoc($query);
$id = $row['id'];
$name = $row['name'];
$memberid = $row['memberid'];
$health = $row['health'];
$army = $row['army'];
$rank = $row['rank'];
$money = $row['money'];
$secure_level = $row['secure_level'];
$stay = $row['place'];
}
$actual_date = date("F j, Y, g:i a");
$actual_time = time();
mysql_query("UPDATE characters SET online='$actual_time' WHERE name='$name'");
?>
$id2 = $_SESSION['id'];
$query2 = mysql_query("SELECT * FROM members WHERE id='$id2'");
while ($row2 = mysql_fetch_assoc($query2))
{
$id = $row2['id'];
$email = $row2['email'];
$ras = $row2['type'];
$level = $row2['level'];
}
$query = mysql_query("SELECT * FROM characters WHERE currentchar='Yes' AND memberid='$id2'");
$num = mysql_num_rows($query);
if($num != 0)
{
$char = 1;
}
else
{
$char = 0;
}
if($char == 1)
{
$row = mysql_fetch_assoc($query);
$id = $row['id'];
$name = $row['name'];
$memberid = $row['memberid'];
$health = $row['health'];
$army = $row['army'];
$rank = $row['rank'];
$money = $row['money'];
$secure_level = $row['secure_level'];
$stay = $row['place'];
}
$actual_date = date("F j, Y, g:i a");
$actual_time = time();
mysql_query("UPDATE characters SET online='$actual_time' WHERE name='$name'");
?>
weet iemand het probleem of zou mij kunnen helpen
mvg
Chango911.
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
Heb jeje database wel goed ingesteld? Misschien krijgt id overal hetzelfde getal dus is elke member hetzelfde id nummer het kan dat zijn maar ik betwijfel het :)
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
Edit:
ik heb geleerd van dat $ dingetjes zoveel mogenlijk buiten die ' dingetjes moete dus probeer ook eens om dit
Geen idee of dit werkt maar het valt te proberen
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
"SELECT * FROM members WHERE id='$id2'"
// te veranderen naar
$sql = "SELECT * FROM members WHERE id='".$_SESSION[id2]."'";
$query2 = mysql_query($sql) or die (mysql_error());
?>
"SELECT * FROM members WHERE id='$id2'"
// te veranderen naar
$sql = "SELECT * FROM members WHERE id='".$_SESSION[id2]."'";
$query2 = mysql_query($sql) or die (mysql_error());
?>
Geen idee of dit werkt maar het valt te proberen
Gewijzigd op 01/01/1970 01:00:00 door Martiveen -
EDIT :
hier de functie waarin de session's worden geplaatst als het ene fout is zou die hierin meoten staan denk ik maar ik zie hem niet :O
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function check_login ($email, $password) {
$sql = "SELECT id FROM members WHERE email = '$email' AND password = '$password'";
if ($res = mysql_query ($sql)) {
if (mysql_num_rows ($res) == 1) {
// de query is gelukt en we hebben 1 resultaat
$row = mysql_fetch_assoc ($res);
$_SESSION['id'] = $row['id'];
$_SESSION['logged_in'] = true;
}
else {
to_login ();
}
}
else {
to_login ();
}
}
?>
function check_login ($email, $password) {
$sql = "SELECT id FROM members WHERE email = '$email' AND password = '$password'";
if ($res = mysql_query ($sql)) {
if (mysql_num_rows ($res) == 1) {
// de query is gelukt en we hebben 1 resultaat
$row = mysql_fetch_assoc ($res);
$_SESSION['id'] = $row['id'];
$_SESSION['logged_in'] = true;
}
else {
to_login ();
}
}
else {
to_login ();
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
Ik weet het niet meer :$ ik denk dat een 'pro' hier maar naar moeten kijke :p
EDIT:
maar dit komt vast omdat de session logged_in nog bestaat :(
hij controleert of die nog bestaat :( en zojah dan voert hij niks uit dus ik meot zorgen dat hij ook controleert op een andere session nog :)
ik denk eentje met het email erin ofzo
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
Kunnen mensen dezelfde email adress in de database toevoegen? Of dezelfde passwoorden als mensen dat kunnnen, kunnen ze gewoon jou email adres en paswoord invoegen in zijn ze binnen onder jou id?
maar ik heb het nu zo gedaan :) als je het loginformulier verstuurd maar session logged_in bestaat al :) worden sessie's verwijderd dus session['id'] en die wordt opneiuw gemaakt met de nieuwe login info
EDIT :
werkt nog steeds niet :(
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
En werkt het dan wel?
nee het werkt nog niet jammer genoeg :(
alleen ik heb 2 files die het chekcen 1 file die checkt het als je op de main stie zit (1 niveau hoger in een anere map)
en 1 op het niveau van eht login formulier zelf
martijn bedankt voor hulp :)
:( EDIT :
probleem nog niet opgelost lokaal werkt het nu maar een vriend van me logt nu in die komt op mijn account :(
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
Lol heb ik geholpen dan :p
het probleem is nog niet opgelost lokaal werkt het nu maar een vriend van me logt nu in die komt op mijn account
Code (php)
ik heb dit toegevoegd als je al ingelogd bent op een ander account en je logt weer in op een nieuwe verwijdert hij de sessiont van de oude als het goed is
Gewijzigd op 01/01/1970 01:00:00 door Yordi B
de 2 $_POST's weghalen?
nee want dan :) verwijdert hij je sessions direct na het inloggen xD
niemand anders die het probleem weet ?