Ik heb de volgende code gemaakt voor mijn website. Heb niet veel verstand van php, dus bij deze de vraag of dit goed is. Het werkt volgens mij wel. Het is de bedoeling dat als je bent inlogd de status "Admin" of "Mod" ziet als je dat bent + "account" + "uitloggen" ziet.
Als je niet bent ingelogd moet je dit zien: "Inloggen | Nieuw? Meld je aan!"
Het gaat er even om of ik "if" en "elseif" enzo goed heb gebruikt.
Code:<?PHP if(empty($_SESSION['ingelogd'])) { echo '<a href="'. $siteurl .'/login">Inloggen</a> | Nieuw? <a href="'. $siteurl .'/register">Meld je aan!</a>'; } elseif($huidig['rank'] == 'Admin') { echo '<a href="/admin">Admin</a> | <a href="<?= $siteurl ?>/account">Account</a> | <a href="'. $siteurl .'/logout">Uitloggen</a>'; } elseif($huidig['rank'] == "Moderator") { echo '<a href="/mod">Moderator</a> | <a href="<?= $siteurl ?>/account">Account</a> | <a href="'. $siteurl .'/logout">Uitloggen</a>'; } ?>
- Deze php code goed?
-
27-08-2009, 16:38 #1
- Berichten
- 576
- Lid sinds
- 18 Jaar
Deze php code goed?
-
-
27-08-2009, 16:43 #2
- Berichten
- 263
- Lid sinds
- 18 Jaar
else if (moet een spatie tussen)
en ik zou van $huidig['rank'] ook een sessie variable maken
trouwens omdat je blijkbaar een soort van CMS aan het maken bent zou ik je output (echo) ook in een variable zetten en op het eind echo $variable; doen. Op een of andere manier werkt dat vooral bij grotere functies prettiger.
-
27-08-2009, 16:48 #3
- Berichten
- 576
- Lid sinds
- 18 Jaar
Zou je de code kunnen posten die uiteindelijk goed zou moeten zijn? Snap niet precies hoe ik dat zou moeten doen.
-
27-08-2009, 16:57 #4
- Berichten
- 157
- Lid sinds
- 16 Jaar
Er hoeft niet per se een spatie tussen else if, hoewel ik het wel beter leesbaar vind.
Zie http://nl.php.net/elseif.
Aanvullend bericht:
Ik zie ook dat je een variabele $siteurl gebruikt om voor url's te plakken.
Het is ook mogelijk, en wellicht handiger, om een <base> tag in de <head> van je pagina te gebruiken.
Meer info daar over vind je hier: http://www.w3schools.com/TAGS/tag_base.aspLaatst aangepast door Job van S. : 27-08-2009 om 16:59 Reden: Automatisch samengevoegd.
-
27-08-2009, 17:11 #5
- Berichten
- 576
- Lid sinds
- 18 Jaar
Als ik mijn bovenstaande code gebruik en inlog met een gewone account (dus zonder admin of mod rank) dan zie ik helemaal niets. Hoe kan dit?
Aanvullend bericht:
Ik heb nu de volgende code gebruikt en dit lijkt te werken, thnx voor de tips.
Code:<a href="<?= $siteurl ?>/account">Account</a> | <?PHP if(empty($_SESSION['ingelogd'])) { echo '<a href="'. $siteurl .'/login">Inloggen</a> | Nieuw? <a href="'. $siteurl .'/register">Meld je aan!</a>'; } else { echo '<a href="'. $siteurl .'/logout">Uitloggen</a>'; } ?> <?PHP if(isset($_SESSION['ingelogd'])) { if($huidig['rank'] == 'Admin') { echo '<a href="/admin">Admin</a>'; } elseif($huidig['rank'] == "Moderator") { echo '<a href="/mod">Moderator</a>'; } } ?>
Is dit een nette code?Laatst aangepast door Edo W : 27-08-2009 om 17:18 Reden: Automatisch samengevoegd.
-
27-08-2009, 17:23 #6
- Berichten
- 751
- Lid sinds
- 15 Jaar
PHP Code:<a href="<?= $siteurl ?>/account">Account</a> |
<?PHP
if(empty($_SESSION['ingelogd'])) {
echo '<a href="'. $siteurl .'/login">Inloggen</a> | Nieuw? <a href="'. $siteurl .'/register">Meld je aan!</a>';
}
else {
if($huidig['rank'] == 'Admin') {
echo '<a href="/admin">Admin</a>';
}
elseif($huidig['rank'] == "Moderator") {
echo '<a href="/mod">Moderator</a>';
}
echo '<a href="'. $siteurl .'/logout">Uitloggen</a>';
}
?>Laatst aangepast door gast17649 : 27-08-2009 om 17:46
-
27-08-2009, 17:31 #7
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
@Huso
Vind je? Het kan nog beter (ook inhoudelijk, was veel fout hoor) :-)
PHP Code:<?php
echo '<a href="'.$siteurl.'/account">Account</a>';
// Controleer of $_SESSION['ingelogd'] NIET bestaat OF $_SESSION['ingelogd'] leeg is
if(!isset($_SESSION['ingelogd']) || empty($_SESSION['ingelogd']))
{
echo '<a href="'.$siteurl.'/login">Inloggen</a> | Nieuw? <a href="'. $siteurl .'/register">Meld je aan!</a>';
// Controleren of $_SESSION['ingelogd'] bestaat EN $_SESSION['ingelogd'] NIET leeg is
} else if(isset($_SESSION['ingelogd']) && !empty($_SESSION['ingelogd'])){
// Controleren of $huidig['rank'] 'admin' is.
if(strtolower($huidig['rank']) == 'admin')
{
echo '<a href="/admin">Admin</a>';
// Controleren of $huidig['rank'] 'moderator' is.
} else if(strtolower($huidig['rank']) == 'moderator')
{
echo '<a href="/mod">Moderator</a>';
}
echo '<a href="'. $siteurl .'/logout">Uitloggen</a>';
}
?>
Daarnaast wil ik even opmerken dat je ranken beter als digit kan opslaan. PHP is hoofdletter gevoelig, geef elke rank een ID / nummer die je aanhoudt in het script.Laatst aangepast door Arek van Schaijk : 27-08-2009 om 17:35 Reden: Automatisch samengevoegd.
-
27-08-2009, 17:40 #8
- Berichten
- 751
- Lid sinds
- 15 Jaar
@ A Van Schayk,
Klopt dit zag ik ook al, maar het ging me puur om omdat hij twee keer <?PHP stukjes gebruikte, terwijl die if en else hetzelfde waren.
Btw, hoe krijg je die highlighting bij je code (@ Sitedeals)?
-
27-08-2009, 17:44 #9
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
[ php ]
code here
[ /php ]
-
27-08-2009, 17:54 #10
- Berichten
- 576
- Lid sinds
- 18 Jaar
Bedankt, dit werkt perfect. Ranken als digit opslaan wordt lastig, bijna al het php-werk van mijn site is voor me gemaakt. Voor nu werkt dit voor me.
@Huso
Vind je? Het kan nog beter (ook inhoudelijk, was veel fout hoor) :-)
PHP Code:<?php
echo '<a href="'.$siteurl.'/account">Account</a>';
// Controleer of $_SESSION['ingelogd'] NIET bestaat OF $_SESSION['ingelogd'] leeg is
if(!isset($_SESSION['ingelogd']) || empty($_SESSION['ingelogd']))
{
echo '<a href="'.$siteurl.'/login">Inloggen</a> | Nieuw? <a href="'. $siteurl .'/register">Meld je aan!</a>';
// Controleren of $_SESSION['ingelogd'] bestaat EN $_SESSION['ingelogd'] NIET leeg is
} else if(isset($_SESSION['ingelogd']) && !empty($_SESSION['ingelogd'])){
// Controleren of $huidig['rank'] 'admin' is.
if(strtolower($huidig['rank']) == 'admin')
{
echo '<a href="/admin">Admin</a>';
// Controleren of $huidig['rank'] 'moderator' is.
} else if(strtolower($huidig['rank']) == 'moderator')
{
echo '<a href="/mod">Moderator</a>';
}
echo '<a href="'. $siteurl .'/logout">Uitloggen</a>';
}
?>
Daarnaast wil ik even opmerken dat je ranken beter als digit kan opslaan. PHP is hoofdletter gevoelig, geef elke rank een ID / nummer die je aanhoudt in het script.
-
31-08-2009, 11:06 #11
- Berichten
- 23
- Lid sinds
- 16 Jaar
Voor van die sessie dingen gebruik ik nog altijd 'isset' erbij.
PHP Code:<?php
// Uitgelogd
if(!isset($_SESSION["sessienaam"]) || empty($_SESSION["sessienaam"])) {
// Ingelogd
} else {
}
?>
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic