Na inloggen username weergeven
ik heb een werkende login script.
als er ingelogd wordt, komt er netjes te staan van "welkom (gebruikersnaam)".
maar als ik de gebruikersnaam op dezelfde manier op een andere pagina wil weergeven lukt dat niet.
dit is mijn script:
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
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
<?
session_start();
include("config.php");
if ($HTTP_POST_VARS["username"] && $HTTP_POST_VARS["password"])
{
$sql_db = "SELECT id, username, password FROM members WHERE username = '$HTTP_POST_VARS[username]' AND password = '$HTTP_POST_VARS[password]'";
$res_db = mysql_query($sql_db);
if (mysql_num_rows($res_db) >= 1)
{
$row = mysql_fetch_array($res_db);
$sess_id = $row[id];
$sess_loginnaam = $row[loginnaam];
session_register(sess_id);
session_register(sess_loginnaam);
echo "Welkom ".$HTTP_POST_VARS[username].". Klik <a href=home.php>hier</a> om verder te gaan.";
}
else
{
echo "<script>document.location.href=('fout_login.php')</script>\r\n";
exit;
}
}
else
{
echo "<table border=0 cellspacing=0 cellpadding=5>";
echo "<form method=POST action=$PHP_SELF>";
echo "<tr><td>Gebruikersnaam:</td></tr>";
echo "<tr><td><input type=text name=username></td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td>Wachtwoord:</td></tr>";
echo "<tr><td><input type=password name=password></td></tr>";
echo "<tr><td> </td></tr>";
echo "<input type=submit name=submit value=Login>";
echo "</form>";
echo "</table>";
}
?>
session_start();
include("config.php");
if ($HTTP_POST_VARS["username"] && $HTTP_POST_VARS["password"])
{
$sql_db = "SELECT id, username, password FROM members WHERE username = '$HTTP_POST_VARS[username]' AND password = '$HTTP_POST_VARS[password]'";
$res_db = mysql_query($sql_db);
if (mysql_num_rows($res_db) >= 1)
{
$row = mysql_fetch_array($res_db);
$sess_id = $row[id];
$sess_loginnaam = $row[loginnaam];
session_register(sess_id);
session_register(sess_loginnaam);
echo "Welkom ".$HTTP_POST_VARS[username].". Klik <a href=home.php>hier</a> om verder te gaan.";
}
else
{
echo "<script>document.location.href=('fout_login.php')</script>\r\n";
exit;
}
}
else
{
echo "<table border=0 cellspacing=0 cellpadding=5>";
echo "<form method=POST action=$PHP_SELF>";
echo "<tr><td>Gebruikersnaam:</td></tr>";
echo "<tr><td><input type=text name=username></td></tr>";
echo "<tr><td> </td></tr>";
echo "<tr><td>Wachtwoord:</td></tr>";
echo "<tr><td><input type=password name=password></td></tr>";
echo "<tr><td> </td></tr>";
echo "<input type=submit name=submit value=Login>";
echo "</form>";
echo "</table>";
}
?>
p.s. hoe oud is dit script? want er worden wel een hele hoop oude dingen gebruikt, die je beter kan vervangen.
$naam = $_SESSION['loginnaam'];
echo $naam;
echter, met de bovenstaande programmeertaal (HTTP_POST_VARS?) zou dat best wel eens anders moeten.
$row['loginnaam'] bestaat niet, dus dat gaat niet werken... $sess_loginnaam = $row[loginnaam]; moet $sess_loginnaam = $row['username']; worden (gebruik ook de quotes, dit is sneller!)
echo $naam;
had ik idd wel geprobeerd, maar dat werkte niet.
ik ga eens proberen wat pim had gezegd.
alvast bedankt voor jullie reacties
Ik doe al mijn programmeerwerk gewoon met error reporting op ALL, leer je meer van.
zorg je er dan ook voor dat alle notices weg zijn ;)
Als je het leuk vind om te kijken moet je mij maar ff aanspreken :)
Gewijzigd op 11/12/2005 20:19:00 door Arjan Kapteijn
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
//btw, gebruik geen $HTTP_POST_VARS maar $_POST. komt op hetzelfde neer maar is korter.
session_start();
$var = $_POST['naam'];
session_register('var');
//hierna komt pas output in HTML, dus geen output voor het registeren van de sessie
//met de echo geef je dus de waarde van de sessie weer
echo $_SESSION['var'];
?>
//btw, gebruik geen $HTTP_POST_VARS maar $_POST. komt op hetzelfde neer maar is korter.
session_start();
$var = $_POST['naam'];
session_register('var');
//hierna komt pas output in HTML, dus geen output voor het registeren van de sessie
//met de echo geef je dus de waarde van de sessie weer
echo $_SESSION['var'];
?>
merk op dat de sessie niet wordt weergegeven. Dit komt omdat de sessie pas wordt gelezen bij de volgende page refresh. Je kunt mogelijk een header gebruiken om de pagina opnieuw te laten laden. zoals
Kijk op http://nl2.php.net/manual/nl/function.session-start.php
voor meer informatie over sessies.
Gewijzigd op 11/12/2005 21:13:00 door Mike de Klerk
@Devoney: session_register() is een stuk antiek die je beter kunt vergeten, het kan zelfs problemen opleveren. Gebruik gewoon $_SESSION[] en klaar ben je.
php > 4.06
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
session_start();
function display_inhoud()
{
echo "<center><table width=\"50%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=tekst>";
echo "<tr><td align=\"center\"><b>Welkom ".$_SESSION['Loginname']."</b><br></tr></td>"
echo "</table><br></center>";
}
display_inhoud();
// Je kan dit dan overal terug laten komen mits de session_start(); erboven staat.
// De functie kan je ook nog includen dan wel de include erboven zetten met de functiepagina dus zo:
// include ("/include/functions.php");
?>
session_start();
function display_inhoud()
{
echo "<center><table width=\"50%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=tekst>";
echo "<tr><td align=\"center\"><b>Welkom ".$_SESSION['Loginname']."</b><br></tr></td>"
echo "</table><br></center>";
}
display_inhoud();
// Je kan dit dan overal terug laten komen mits de session_start(); erboven staat.
// De functie kan je ook nog includen dan wel de include erboven zetten met de functiepagina dus zo:
// include ("/include/functions.php");
?>