Session
ik heb
$_SESSION['username']=$username;
$_SESSION['id'] = $row['id'];
in mijn sessie gezet
maar $row werkt niet terwijl het id wel in database staat en het werkt wel met andere gegevens in de database.
Toevoeging op 13/06/2012 16:09:01:
De username werkt dus wel in de sessie. het zit hem in het id dat niet opgeslagen wordt, hij zegt dat id 0 is terwijl het op auto increment staat en het id 11 zou moeten zijn in dit geval.
misschien eerst even in een variable zetten alvorens erin te zetten ipv direct uit de query?
Kun je een stukje relevante code laten zien? Het is nu glazen bollen werk.
Heb je wel SELECT id, ...
Ik heb alles geselecteerd met een select Query uit de database. bedoel je eerst $userid = $row['id'] en dan $_SESSION['id'] = $userid?
- Mark - op 13/06/2012 16:10:06:
Kun je een stukje relevante code laten zien? Het is nu glazen bollen werk.
Maar ik denk dat ik $row niet moet gebruiken omdat ik dan alle gebruikers selecteer, niet alleen degene die inlogd. maar ik heb geen idee wat ik anders moet gebruiken
Reshad F op 13/06/2012 16:09:11:
misschien eerst even in een variable zetten alvorens erin te zetten ipv direct uit de query?
Onzin.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
$connect = mysql_connect("localhost","root","") or die ("Kan geen verbinding maken met de datebase!");
mysql_select_db("phplogin") or die ("Kan de datebase niet vinden!");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
while ($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username==$dbusername&&md5($password)==$dbpassword)
{
echo "U bent succesvol ingelogd. Klik <a HREF='member.php'>hier</a> om naar de ledenpagina te gaan.";
$userid = $row['id']
$_SESSION['username']=$username;
$_SESSION['id'] = $userid;
mysql_select_db("phplogin") or die ("Kan de datebase niet vinden!");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
while ($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username==$dbusername&&md5($password)==$dbpassword)
{
echo "U bent succesvol ingelogd. Klik <a HREF='member.php'>hier</a> om naar de ledenpagina te gaan.";
$userid = $row['id']
$_SESSION['username']=$username;
$_SESSION['id'] = $userid;
Toevoeging op 13/06/2012 16:29:44:
- SanThe - op 13/06/2012 16:28:09:
Onzin.
Reshad F op 13/06/2012 16:09:11:
misschien eerst even in een variable zetten alvorens erin te zetten ipv direct uit de query?
Onzin.
dat dacht ik ook...
Gewijzigd op 13/06/2012 16:31:38 door Jonathan Jonker
Jonathan Jonker op 13/06/2012 16:27:54:
Maar ik denk dat ik $row niet moet gebruiken omdat ik dan alle gebruikers selecteer, niet alleen degene die inlogd. maar ik heb geen idee wat ik anders moet gebruiken
Je haalt toch, neem ik aan, alléén de gegevens van degene die inlogt op.
die gegevens haal ik op
Toevoeging op 13/06/2012 16:35:20:
Dus alleen de gegevens van de gebruiker die probeert in te loggen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$sql = "SELECT *
FROM users
WHERE username='".$username."'
AND password=MD5('".$password."')
");
$result = mysql_query($sql);
if($result === false)
{
echo 'ERROR';
}
else
{
$row = mysql_fetch_assoc($result);
$_SESSION['username']=$username;
$_SESSION['id'] = $row['id'];
}
?>
$sql = "SELECT *
FROM users
WHERE username='".$username."'
AND password=MD5('".$password."')
");
$result = mysql_query($sql);
if($result === false)
{
echo 'ERROR';
}
else
{
$row = mysql_fetch_assoc($result);
$_SESSION['username']=$username;
$_SESSION['id'] = $row['id'];
}
?>
Gewijzigd op 13/06/2012 16:37:02 door - SanThe -
En wat zijn de kolommen in de tabel? Met een * selecteer je wel alles, maar weten wij natuurlijk nog niet veel.
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
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
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if ($username&&$password)
{
$connect = mysql_connect("localhost","root","") or die ("Kan geen verbinding maken met de datebase!");
mysql_select_db("phplogin") or die ("Kan de datebase niet vinden!");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username==$dbusername&&md5($password)==$dbpassword)
{
echo "U bent succesvol ingelogd. Klik <a HREF='member.php'>hier</a> om naar de ledenpagina te gaan.";
$userid = $row['id']
$_SESSION['username']=$username;
$_SESSION['id'] = $userid;
}
else
echo "Dit wachtwoord is onjuist. Klik <a HREF='index.php'>hier</a> om opnieuw in te loggen." ;
}
else die ("Deze gebruiker is bij ons niet bekend.
<br>Klik <a href='register.php'>hier</a> om een account aan te maken.
<a href='Webshop.php'>Terug</a> naar de homepage.");
}
?>
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if ($username&&$password)
{
$connect = mysql_connect("localhost","root","") or die ("Kan geen verbinding maken met de datebase!");
mysql_select_db("phplogin") or die ("Kan de datebase niet vinden!");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username==$dbusername&&md5($password)==$dbpassword)
{
echo "U bent succesvol ingelogd. Klik <a HREF='member.php'>hier</a> om naar de ledenpagina te gaan.";
$userid = $row['id']
$_SESSION['username']=$username;
$_SESSION['id'] = $userid;
}
else
echo "Dit wachtwoord is onjuist. Klik <a HREF='index.php'>hier</a> om opnieuw in te loggen." ;
}
else die ("Deze gebruiker is bij ons niet bekend.
<br>Klik <a href='register.php'>hier</a> om een account aan te maken.
<a href='Webshop.php'>Terug</a> naar de homepage.");
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
while ($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username==$dbusername&&md5($password)==$dbpassword)
{
echo "U bent succesvol ingelogd. Klik <a HREF='member.php'>hier</a> om naar de ledenpagina te gaan.";
$userid = $row['id']
?>
while ($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username==$dbusername&&md5($password)==$dbpassword)
{
echo "U bent succesvol ingelogd. Klik <a HREF='member.php'>hier</a> om naar de ledenpagina te gaan.";
$userid = $row['id']
?>
Je roept $row['id'] pas NA je while loop op. Maar je while loop gaat door tot $row false is geworden (er geen rijen meer zijn op te halen). Op het moment dat jij dus $row['id'] probeert aan te roepen kan dat al niet meer en krijg je dus niets (of eigenlijk zelfs een foutmelding die je waarschijnlijk onderdrukt).
Doe het binnen de while loop en het zou wel moeten lukken mits 'id' een kolom in je database is.
de kolommen in mijn tabel zijn id, name, username, password, date en id is auto increniment. ik zal even de volgorde veranderen en hoop dat 't werkt!