login  Naam:   Wachtwoord: 
Registreer je!
 Forum

if ("" != "" || "" != "") Werkt niet!

Offline Skatelow - 26/08/2011 11:23 (laatste wijziging 26/08/2011 11:25)
Avatar van SkatelowLid Ik ben aan het werken aan een script waarin enkel leden met een bepaalde class toegang krijgen tot een pagina.
Dit lukte mij als ik zei:
  1. function SecureAdmin(){
  2. include_once('config.php');
  3. if(!isset($_SESSION['gebruiker'])) { //Aangemeld? (functie Beveiliging())
  4. header("Location: Start.html");
  5. }
  6. $sql = "SELECT class FROM `leden` WHERE gebruikersnaam='$_SESSION[gebruiker]'"; //functie ClassOproepen()
  7.  
  8. $resultaat = mysql_query($sql);
  9. if(mysql_num_rows($resultaat) == 1) { //Als er maar 1 resultaat is
  10. while ($rij = mysql_fetch_array($resultaat)){
  11.  
  12. if($rij['class'] != 'admin') { //is de class van lid niet gelijk aan admin?
  13. header("Location: onbevoegd.html"); //Redirect
  14. }
  15. }
  16. }
  17. }

'config.php' bevat connectie met database en sessie

Maar ik wou een 2de pagina maken die toegankelijk is voor mensen met de class 'admin' of 'film'.
Dus zet ik:
(ingekort)
  1. if($rij['class'] != 'admin' || $rij['class'] != 'film') { //is de class van lid niet gelijk aan admin/film?
  2. header("Location: onbevoegd.html"); //Redirect
  3. }

En dit werkt niet meer... 
Ik heb al nagekeken of php de juiste class krijgt uit de database, dit is het geval.
Ook al geprobeerd 2x if te gebruiken, werkt niet.

Heel raar probleem, ik hoop dat iemand me kan helpen.
Alvast bedankt,
-Skatelow

9 antwoorden

Gesponsorde links
Offline Elmar85 - 26/08/2011 11:53 (laatste wijziging 26/08/2011 11:54)
Avatar van Elmar85 Lid wat zit er in $rij['class'] als je deze echo-ed ?
en maak je altijd gebruik van dit soort if constructies? plaats is een else ;)

Daarnaast, moet je de functie niet aanroepen? ik snap het nut er niet helemaal van.....
Offline Skatelow - 26/08/2011 12:17
Avatar van Skatelow Lid in $rij['class'] zit de class van de gebruiker, in mijn geval: admin.
wat bedoel je met dit soort constructies en waar zou ik een else moeten zetten?
En ja, ik gebruik deze functie op de pagina die ik wil gebruiken 
Offline ArieMedia - 26/08/2011 12:19
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
  1. $sql = "SELECT class FROM `leden` WHERE gebruikersnaam='$_SESSION[gebruiker]';


  1. $sql = 'SELECT class FROM leden WHERE gebruikersnaam = '.$_SESSION['gebruiker'];


En daarom is het gebruik van enkel en single-quote zo belangrijk, neem de moeite om variabelen buiten de ""-quote's Zo ontloop je zulke fouten en vind je sneller je variabelen.
Bedankt door: Skatelow
Offline Skatelow - 26/08/2011 12:34 (laatste wijziging 26/08/2011 12:50)
Avatar van Skatelow Lid
dankje, ArieMedia!
daarmee is dat opgelost:D
Nu geeft hij wel de error:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...../functies.php on line 69
Offline Maarten - 26/08/2011 13:51
Avatar van Maarten Erelid Logisch...
  1. $sql = "SELECT class FROM leden WHERE gebruikersnaam = '" . $_SESSION['gebruiker'] . "'";
Bedankt door: Skatelow
Offline Wave6 - 26/08/2011 14:32 (laatste wijziging 26/08/2011 14:34)
Avatar van Wave6 PHP beginner je kan het ook in een variabele zetten zonder quotes $sName = $_POST['name']
mocht je het overzicht verliezen...
Offline Skatelow - 26/08/2011 16:57 (laatste wijziging 26/08/2011 17:52)
Avatar van Skatelow Lid Maarten, met die code heb ik hetzelfde probleem als vooraf :/
En de code van ArieMedia werkt toch niet, zo blijkt.
Dan werkt heel het script gewoon niet...

-----------------------------------------------

Als ik de class echo, krijg ik admin zonder spaties of iets.
Als ik probeer
  1. if ($class != 'film')

werkt het. En als ik film vervang door admin ook.
Enkel en alleen als ik zeg
  1. if ($class != 'film' || $class != 'admin')

werkt het niet...
Zeer vreemd 

Ik heb zelfs dit geprobeerd:
  1. if ($class != 'film') {
  2. header("Location: onbevoegd.html");
  3. }
  4. elseif ($class != 'admin') {
  5. header("Location: onbevoegd.html");
  6. }

En zelfs dat werkt niet 
Hoe kan dit  
Offline Dlol - 26/08/2011 18:20 (laatste wijziging 26/08/2011 18:22)
Avatar van Dlol Lid Volgens mij is het een logica-fout die je maakt. Moet het niet zijn:

  1. if (!($class == 'film' || $class == 'admin')) {
  2. header("location: onbevoegd.html");
  3. }


(wat gelijk is aan:)
  1. if ($class != 'film' && $class != 'admin') {
  2. header("location: onbevoegd.html");
  3. }
Bedankt door: Skatelow
Offline Skatelow - 26/08/2011 18:24
Avatar van Skatelow Lid Bedankt Dlol!
Dat is idd de oplossing 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.254s