condition admin id unique bonne mais pas le numéro des droit

Eléphanteau du PHP | 28 Messages

09 févr. 2011, 05:07

bonjour,

alors voilà j'ai mon code qui est créer,problème pour les id unique il à pas de soucis mais pour le numero d'accès,par exemple 1 2 ou 3,ben ça ne va pas même si j'ai le numéro 1 j'ai accès à la page j'arrive pas du tout a réglé le problème,je devrai avoir obligatoirement le numéro 2 pour y avoir accès merci de m'aidé voici mon code :
<fieldset>
<?php

// je me connecte sous mysql.
require('include/mysql.php');

			  // je déclare la variable que je vais me servir dans le champ droit de mysql.
			  $droit = '2';
			  
			  // je crée la requête qui va regarder que la personne à bien les doit require pour accéder à la page.
			  $verifdroit = $bdd->prepare('SELECT id FROM menbre WHERE droit = 2 AND id');
			  $verifdroit->execute(array('droit' => $droit,
										 'id' => $_SESSION['id']));
			  $verification = $verifdroit->fetch();

			  
// je vérifie que la personne est bien connecté	et que il à les droit require.		  
if(!isset($_SESSION['login'])) {
	echo '<center><h3><font color="#ff0000"><< Vous devez être connecté pour voir cette page. >></font></h3></center>';
			// je fait la condition pour vérifier que la personne à les droit require. et je vérifie sont id unique.
			} elseif ($verification && isset($_SESSION["id"]) && ($_SESSION["id"] == "4") || ($_SESSION["id"] == "6")) { 
?>

<br />
<br />
<h2><a href="index.php?page=add-news">Ajouter une news</a></h2>
<table border="2" cellspacing="5" ><tr>
<th>Modifier&nbsp;&nbsp;</th>
<th>Supprimer&nbsp;&nbsp;</th>
<th>Titre :&nbsp;&nbsp;</th>
<th>Date :&nbsp;&nbsp;</th>
</tr>
<?php

$req = $bdd->query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = $req->fetch())
{
sscanf($donnees['date'], "%4s-%2s-%2s %2s:%2s:%2s",  $an, $mois, $jour, $heure, $min, $sec);
?>
<tr border="2">
<td><?php echo '<a href="index.php?page=add-news&update-news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="index.php?page=delete-news&supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo $donnees['date']; ?></td>
</tr>
<?php
	}
?>
</table>
<br />
<br />
<?php
        // si il à pas les droit require pour accéder à cette page j'affiche cette erreur.
		} else {
	echo '<center><h3><font color="#ff0000"><< Vous avez pas les droit require pour accéder à cette page ! >></font></h3></center>';
	}
?>
</fieldset>

ViPHP
xTG
ViPHP | 7331 Messages

09 févr. 2011, 10:26

Il serait bon de relire le fonctionnement des fonctions PDO que tu utilises.
$verifdroit = $bdd->prepare('SELECT id FROM menbre WHERE droit = 2 AND id');
                          $verifdroit->execute(array('droit' => $droit,
                                                                                 'id' => $_SESSION['id']));
La seconde fonction comporte des paramètres qui ne peuvent être remplacés dans la requête...
D'autre part, ta requête est incorrecte et devrait te générer une erreur sur "AND id".

Eléphanteau du PHP | 28 Messages

09 févr. 2011, 19:10

non aucune erreur ^^ mais je veut juste essayer de réglé se problème mais j'arrive pas je peut avoir de l'aide s'il vous plait?

ViPHP
xTG
ViPHP | 7331 Messages

09 févr. 2011, 19:34

Comme je te l'avais dit dans le dernier topic le soucis vient de ton utilisation des fonctions PDO que tu ne sembles pas du tout comprendre.
PDOStatement->fetch()

Et si tu veux te rendre compte de ton erreur :
print_r($verification);

Eléphanteau du PHP | 28 Messages

10 févr. 2011, 07:04

j'ai rien compris à l'erreur :
Array ( [id] => 6 [0] => 6 ) 

ViPHP
xTG
ViPHP | 7331 Messages

10 févr. 2011, 08:57

Voilà ce que tu as programmé comme condition :
if( Array && ....)
Cela ne veut rien dire.

Dans une condition il faut comparer à une valeur, ou alors utiliser une variable booléenne, tu n'utilises aucun des deux.