Paar vraagjes over PhpMyLogon
Sinds kort gebruik ik het inlogsysteem PhpMyLogon en loop ik tegen wat probleempjes aan..
Ik weet dat het mij niet geadviseerd wordt om dit script te gebruiken, maar omdat ik beginner in PHP ben is het handig om ergens te beginnen!
Vragen;
1. Hoe maak ik een menu dat ervoor zorgt dat als de gebruiker is ingelogd hij een andere indeling ziet dan een gebruiker die is uitgelogd?*
2. Hoe zorg ik ervoor dat een menu-item alleen zichtbaar is voor een ingelogde gebruiker?
Alvast bedankt,
Rainier
*Dit heb ik al voor het 'logged-in-menu'-script;
Quote:
<div id="infodiv">
</div>
<div id="infodiv">
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
include_once("secured/config.php");
$sql = "SELECT naam FROM gebruikers WHERE id='".$_SESSION['id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$naam = htmlspecialchars($row->username);
?>
include_once("secured/config.php");
$sql = "SELECT naam FROM gebruikers WHERE id='".$_SESSION['id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$naam = htmlspecialchars($row->username);
?>
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
</div>
In de config heb ik de verbinding met de database etc. staan!
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
include_once("secured/config.php");
$sql = "SELECT naam FROM gebruikers WHERE id='".$_SESSION['id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$naam = htmlspecialchars($row->username);
?>
include_once("secured/config.php");
$sql = "SELECT naam FROM gebruikers WHERE id='".$_SESSION['id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$naam = htmlspecialchars($row->username);
?>
Als je de naam van degene die is ingelogd wilt tonen, zul je die ergens vandaan moeten halen.
Tip: gebruik binnen HTML " en in PHP zoveel mogelijk '.
En zet variabelen buiten quotes.
Code (php)
1
2
3
2
3
<?php echo '<br>Welkom '. $naam .'! |
<b><a href="/secured/useroptions.php">Profiel</a></b> |
';?>
<b><a href="/secured/useroptions.php">Profiel</a></b> |
';?>
Jens erd op 10/04/2012 14:57:18:
Zelfs met jou code werkt het niet..
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
include("secured/config.php");?>
<div id="infodiv">
<?
if(isset($_SESSION['user-id']))
echo "
<?php echo '<br>Welkom '. $naam .'! |
<b><a href=\"/secured/useroptions.php\">Profiel</a></b> |';
<b><a href=\"/coshaco/secured/logout.php\">Uitloggen</a></b> |
";
else
echo "
<br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> |
";
?>
Designed by <a href=\"http://rainiervanes.com/\">Rainier van Es</a> |
<b><a href=\"/coshaco/contactenbeheer/\">Contact en beheer</a></b>
</div>
[size=xsmall][i]Toevoeging op 11/04/2012 19:33:22:[/i][/size]
[quote="Rainier van Es op 11/04/2012 19:32:51"]
Ik heb nu momenteel deze code, maar nog steeds is het niet werkende.. Iemand?
<?php
include("secured/config.php");?>
<div id="infodiv">
<?
if(isset($_SESSION['user-id']))
echo "
<?php echo '<br>Welkom '. $naam .'! |
<b><a href=\"/secured/useroptions.php\">Profiel</a></b> |';
<b><a href=\"/coshaco/secured/logout.php\">Uitloggen</a></b> |
";
else
echo "
<br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> |
";
?>
</div>
[/quote]
include("secured/config.php");?>
<div id="infodiv">
<?
if(isset($_SESSION['user-id']))
echo "
<?php echo '<br>Welkom '. $naam .'! |
<b><a href=\"/secured/useroptions.php\">Profiel</a></b> |';
<b><a href=\"/coshaco/secured/logout.php\">Uitloggen</a></b> |
";
else
echo "
<br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> |
";
?>
Designed by <a href=\"http://rainiervanes.com/\">Rainier van Es</a> |
<b><a href=\"/coshaco/contactenbeheer/\">Contact en beheer</a></b>
</div>
[size=xsmall][i]Toevoeging op 11/04/2012 19:33:22:[/i][/size]
[quote="Rainier van Es op 11/04/2012 19:32:51"]
Ik heb nu momenteel deze code, maar nog steeds is het niet werkende.. Iemand?
<?php
include("secured/config.php");?>
<div id="infodiv">
<?
if(isset($_SESSION['user-id']))
echo "
<?php echo '<br>Welkom '. $naam .'! |
<b><a href=\"/secured/useroptions.php\">Profiel</a></b> |';
<b><a href=\"/coshaco/secured/logout.php\">Uitloggen</a></b> |
";
else
echo "
<br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> |
";
?>
</div>
[/quote]
Wat gebeurt er?
In beide situaties - als ik ingelogd ben en als ik uitgelogd ben - krijg ik alleen maar 'Inloggen' te zien.
Dit gaat volgens mij niet goed komen.
Obelix en Idefix op 10/04/2012 16:11:59:
Tip: gebruik binnen HTML " en in PHP zoveel mogelijk '.
Geen shorttags gebruiken.
Bij een if/else gebruik je meestal { }
Waar komt $_SESSION['user-id'] vandaan?
Gewijzigd op 11/04/2012 20:25:19 door Obelix Idefix
Verder heb ik de code een beetje aangepast naar jou verbeterpunten;
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
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
<?php
include("secured/config.php");?>
<div id="infodiv">
<?php
if(isset($_SESSION['user-id'])) {
echo '
<br>Welkom '. $naam .'! |
<b><a href="/secured/useroptions.php">Profiel</a></b> |;
<b><a href="/coshaco/secured/logout.php">Uitloggen</a></b> |
';
} else {
echo '
<br><b><a href="/coshaco/secured/login.php">Inloggen</a></b> |
'; }
?>
</div>
include("secured/config.php");?>
<div id="infodiv">
<?php
if(isset($_SESSION['user-id'])) {
echo '
<br>Welkom '. $naam .'! |
<b><a href="/secured/useroptions.php">Profiel</a></b> |;
<b><a href="/coshaco/secured/logout.php">Uitloggen</a></b> |
';
} else {
echo '
<br><b><a href="/coshaco/secured/login.php">Inloggen</a></b> |
'; }
?>
</div>
Maar nog steeds gebeurt er niet wat ik wil..
Toevoeging op 12/04/2012 17:20:21:
Zet dit bovenin je script:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
Rainier van Es op 12/04/2012 18:40:52:
Als ik beiden toevoeg krijg ik deze foutmelding:
Quote:
Notice: A session had already been started - ignoring session_start() in /var/www/vhosts/mijnsite.com/httpdocs/coshaco/secured/config.php on line 5
En dat klopt ook nog; want ik 'include' mijn 'config.php' bestand waarin al een sessie wordt gestart;
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// This config-file is created by the setup-script from PhpMyLogon
// (c) 2006 Jorik Berkepas; under the GNU GPL license
session_start();
ob_start();
// MySQL settings
// Settings
?>
// This config-file is created by the setup-script from PhpMyLogon
// (c) 2006 Jorik Berkepas; under the GNU GPL license
session_start();
ob_start();
// MySQL settings
// Settings
?>
Waarom start u dan al een sessie in config.php ? !
In config.php staan de database gegevens.. Moet ik die dan niet includen?
Gewijzigd op 12/04/2012 18:56:16 door dave schaafsma
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
// This config-file is created by the setup-script from PhpMyLogon
// (c) 2006 Jorik Berkepas; under the GNU GPL license
session_start();
ob_start();
// MySQL settings
// Settings
?>
// This config-file is created by the setup-script from PhpMyLogon
// (c) 2006 Jorik Berkepas; under the GNU GPL license
session_start();
ob_start();
// MySQL settings
// Settings
?>
That's it.
Rainier van Es op 12/04/2012 17:17:01:
$_SESSION['user-id'] controleert of de gebruiker een sessie heeft aangemaakt.
Waar wordt die $_SESSION aangemaakt dan?
Je config:
Daarin staat alleen session_start() en ob_start()?
Waarom ob_start()?
En die session_start kun je toch net zo goed bovenaan elke pagina zetten? Of je nu een regel met include doet of gewoon die ene regel in het script zelf zet.
Gewijzigd op 12/04/2012 21:03:59 door Obelix Idefix
Ik zal de regel er gewoon boven zetten en het includen van de pagina achterwege laten, maar dan nog doet ie het niet..
Obelix en Idefix op 12/04/2012 20:57:31:
Waar wordt die $_SESSION aangemaakt dan?
Als iemand inlogd?
Ik neem overigens aan niet op het moment van inloggen, maar als iemand juist heeft ingelogd. Maar waar is die code? Ergens zal toch een waarde moeten worden toegekend aan $_SESSION['user_id']. Dat gebeurt niet vanzelf.