Paar vraagjes over PhpMyLogon

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

10/04/2012 14:52:29
Quote Anchor link
Hallo forummers,

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php session_start() ?>


<div id="infodiv">

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
 
 ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 if(isset($_SESSION['login']) == 'loggedin')
 
 echo "
 
<br>Welkom $naam! &#124;
<b><a href=\"/secured/useroptions.php\">Profiel</a></b> &#124;
<b><a href=\"/secured/logout.php\">Uitloggen</a></b> &#124;
 
 "
;
 
 else
 
 echo "
 
<br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> &#124;
 
 "
;
 
 ?>


</div>


In de config heb ik de verbinding met de database etc. staan!
 
PHP hulp

PHP hulp

19/01/2022 09:29:22
 
Jens erd

Jens erd

10/04/2012 14:57:18
Quote Anchor link
Als een gebruiker ingelogd is bestaat $_SESSION['id'], je hoeft dus eigenlijk alleen te checken of die bestaat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_SESSION['id'])) {
echo "Menu als gebruik ingelogd is";
}
else {
echo "Menu voor niet ingelogde gebruikers";
}

?>
 

10/04/2012 15:36:56
Quote Anchor link
Oké, maar kan ik dan dit stukje weghalen?
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
 
 ?>
 
Obelix Idefix

Obelix Idefix

10/04/2012 16:11:59
Quote Anchor link
Dat ligt er aan waarvoor je dat gebruikt.
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php echo '<br>Welkom '. $naam .'! &#124;
<b><a href="/secured/useroptions.php">Profiel</a></b> &#124;
'
;?>
 

10/04/2012 16:27:40
Quote Anchor link
Jens erd op 10/04/2012 14:57:18:
Als een gebruiker ingelogd is bestaat $_SESSION['id'], je hoeft dus eigenlijk alleen te checken of die bestaat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_SESSION['id'])) {
echo "Menu als gebruik ingelogd is";
}
else {
echo "Menu voor niet ingelogde gebruikers";
}

?>


Zelfs met jou code werkt het niet..
 

11/04/2012 19:32:51
Quote Anchor link
Ik heb nu momenteel deze code, maar nog steeds is het niet werkende.. Iemand?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
include("secured/config.php");?>


<div id="infodiv">

<?
if(isset($_SESSION['user-id']))
 
 echo "
 
<?php echo '<br>Welkom '. $naam .'! &#124;
<b><a href=\"/secured/useroptions.php\">Profiel</a></b> &#124;';
<b><a href=\"/coshaco/secured/logout.php\">Uitloggen</a></b> &#124;
 
 "
;
 
 else
 
 echo "
 
<br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> &#124;
 
 "
;
 
 ?>

 
 Designed by <a href=\"http://rainiervanes.com/\">Rainier van Es</a> &#124;
 <b><a href=\"/coshaco/contactenbeheer/\">Contact en beheer</a></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
 </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 .'! &#124;
<b><a href=\"/secured/useroptions.php\">Profiel</a></b> &#124;';
<b><a href=\"/coshaco/secured/logout.php\">Uitloggen</a></b> &#124;
 
 "
;
 
 else
 
 echo "
 
<br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> &#124;
 
 "
;
 
 ?>

 
 </div>


[/quote]
 
- Ariën -
Beheerder

- Ariën -

11/04/2012 19:34:01
Quote Anchor link
Wat gebeurt er?
 

11/04/2012 19:40:47
Quote Anchor link
In beide situaties - als ik ingelogd ben en als ik uitgelogd ben - krijg ik alleen maar 'Inloggen' te zien.
 
Obelix Idefix

Obelix Idefix

11/04/2012 20:23:32
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
echo "
 <br><b><a href=\"/coshaco/secured/login.php\">Inloggen</a></b> &#124;
 
 ";

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
 

12/04/2012 17:17:01
Quote Anchor link
$_SESSION['user-id'] controleert of de gebruiker een sessie heeft aangemaakt.
Verder heb ik de code een beetje aangepast naar jou verbeterpunten;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
include("secured/config.php");?>


<div id="infodiv">

<?php
if(isset($_SESSION['user-id'])) {
 
 echo '
 
<br>Welkom '
. $naam .'! &#124;
<b><a href="/secured/useroptions.php">Profiel</a></b> &#124;;
<b><a href="/coshaco/secured/logout.php">Uitloggen</a></b> &#124;
 
 '
;
 
 }
else {
 
 echo '
 
<br><b><a href="/coshaco/secured/login.php">Inloggen</a></b> &#124;
 
 '
; }
 
 
 ?>

 
 </div>


Maar nog steeds gebeurt er niet wat ik wil..
 
- SanThe -

- SanThe -

12/04/2012 17:18:37
Quote Anchor link
Ik mis session_start().

Toevoeging op 12/04/2012 17:20:21:

Zet dit bovenin je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>
 

12/04/2012 18:40:52
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
1
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

?>
Gewijzigd op 12/04/2012 18:44:31 door
 
Dave schaafsma

dave schaafsma

12/04/2012 18:53:40
Quote Anchor link
Waarom start u dan al een sessie in config.php ? !
 

12/04/2012 18:54:33
Quote Anchor link
In config.php staan de database gegevens.. Moet ik die dan niet includen?
 
Dave schaafsma

dave schaafsma

12/04/2012 18:55:40
Quote Anchor link
post uw config eens zonder de database gegevens , mischien staat daar een foute regel.
Gewijzigd op 12/04/2012 18:56:16 door dave schaafsma
 

12/04/2012 18:56:52
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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

?>


That's it.
 
Obelix Idefix

Obelix Idefix

12/04/2012 20:57:31
Quote Anchor link
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
 

12/04/2012 21:19:16
Quote Anchor link
Nu snap ik het zelf ook niet meer..
Ik zal de regel er gewoon boven zetten en het includen van de pagina achterwege laten, maar dan nog doet ie het niet..
 
Obelix Idefix

Obelix Idefix

12/04/2012 22:11:21
Quote Anchor link
Nog een keer:

Obelix en Idefix op 12/04/2012 20:57:31:
Waar wordt die $_SESSION aangemaakt dan?
 

13/04/2012 07:21:31
Quote Anchor link
Als iemand inlogd?
 
Obelix Idefix

Obelix Idefix

13/04/2012 08:00:39
Quote Anchor link
Jij hebt het script, jij weet dus waar je een waarde toekent aan die $_SESSION.

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.
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.