Account aanvullen systeem
ik zou een systeem willen maken waarbij spelers na het registreren bij de eerste maal dat ze inloggen hun account verder moeten aanvullen, echter geeft mijn browser dat ik een oneindige lus maak, hoewel ik dit voorkom met een varriabele i die ik 1 of 2 maak op de desbetreffende pagina's.
De code waar het probleem in zit:
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
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
$user_id = $_SESSION['user_id'];
$sql = 'SELECT eerstehond FROM memberinfo WHERE user_id="'.$user_id.'"';
$result = mysqli_query($mysqli, $sql) OR die('Er liep iets mis, probeer later opnieuw!');
if(mysqli_num_rows($result) == 0 && $i |= 1)
{
header('Location: account.php');
}
elseif($i == 1)
{
header('Location: index.php');
}
else
{
while($row = mysqli_fetch_assoc($result))
{
if($row['eerstehond'] == 0 && $i |= 2)
{
header('Location: firstdog.php');
}
elseif($i == 2)
{
header('Location: index.php');
}
}
}
$sql = 'SELECT eerstehond FROM memberinfo WHERE user_id="'.$user_id.'"';
$result = mysqli_query($mysqli, $sql) OR die('Er liep iets mis, probeer later opnieuw!');
if(mysqli_num_rows($result) == 0 && $i |= 1)
{
header('Location: account.php');
}
elseif($i == 1)
{
header('Location: index.php');
}
else
{
while($row = mysqli_fetch_assoc($result))
{
if($row['eerstehond'] == 0 && $i |= 2)
{
header('Location: firstdog.php');
}
elseif($i == 2)
{
header('Location: index.php');
}
}
}
Dus, op de pagina account.php zet ik voor de include $i = 1; en op de pagina forstdog.php zet ik voor de include $i = 2, op alle andere paginas zet ik $i = 0;
Waarom ziet de browser dit toch als een omleidingslus en hoe kan ik dit oplossen?
moet dit niet zijn? Verder is het handig om na een header[location] een exit() te plaatsen. Dit zorgt ervoor dat de rest van de code niet uitgevoerd wordt.
Ik zie zowieso een Na de header location code moet volgens u dus gewoon exit(); ?
Ik pas het aan en geef weer of het helpt ;)
Toevoeging op 16/06/2014 15:08:36:
Kristof Hendrickx op 16/06/2014 15:05:52:
ik dacht dat php geen verschil miek in | of !, maar zal de aanpassing doen.
Na de header location code moet volgens u dus gewoon exit(); ?
Ik pas het aan en geef weer of het helpt ;)
Na de header location code moet volgens u dus gewoon exit(); ?
Ik pas het aan en geef weer of het helpt ;)
Nu is de code volgende:
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
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
$user_id = $_SESSION['user_id'];
$sql = 'SELECT eerstehond FROM memberinfo WHERE user_id="'.$user_id.'"';
$result = mysqli_query($mysqli, $sql) OR die('Er liep iets mis, probeer later opnieuw!');
if(mysqli_num_rows($result) == 0 && $i != 1)
{
header('Location: account.php');
exit();
}
elseif($i == 1)
{
header('Location: index.php');
exit();
}
else
{
while($row = mysqli_fetch_assoc($result))
{
if($row['eerstehond'] == 0 && $i != 2)
{
header('Location: firstdog.php');
exit();
}
elseif($i == 2)
{
header('Location: index.php');
exit();
}
}
}
$sql = 'SELECT eerstehond FROM memberinfo WHERE user_id="'.$user_id.'"';
$result = mysqli_query($mysqli, $sql) OR die('Er liep iets mis, probeer later opnieuw!');
if(mysqli_num_rows($result) == 0 && $i != 1)
{
header('Location: account.php');
exit();
}
elseif($i == 1)
{
header('Location: index.php');
exit();
}
else
{
while($row = mysqli_fetch_assoc($result))
{
if($row['eerstehond'] == 0 && $i != 2)
{
header('Location: firstdog.php');
exit();
}
elseif($i == 2)
{
header('Location: index.php');
exit();
}
}
}
Helaas, het hielp niet.
ps: ik zie wel dat hij de fout pas meld als hij op de pagina account.php komt ($i=1 staat wel degelijk op de pagina)
Zou het kunnen dat de fout in de account.php file zit? Van welke file is de bovenstaande code precies?
Voor de rest staat op deze pagina gewoon een tabel.
Gewijzigd op 16/06/2014 15:10:55 door Kristof Hendrickx
waar moet zijn, elke keer dat je op de pagina komt. Kun je eens kijken in welk blok je code precies terecht komt (de if, de elseif of de else)?
Dit is erg weinig info om mee verder te gaan om eerlijk te zijn. Als hij een oneindige lus maakt op account.php zou dat dus betekenen dat de fout zit in de elseif, daar zeg ik dat als i 1 is hij moet terugkeren naar de indexpagina terwijl hij van de indexpagina komt, hierbij moest de voorwaarde nog mij dat mysqli_num_row niet 0 is