Résultat de fonction en fonction de session

Steiner62 -  
Xil Messages postés 351 Statut Membre -
Bonjour,

Voici mon problème, je crée une base de donnée pour mon boulot avec les infos d'installation des diverses logiciel que l'on fournie mais j'ai un soucis avec l'affichage du résultat en fonction de la session utilisé car chaque personne aura son code d'accès mais n'aurons pas tous les même possibilité certain pourront seulement voir d'autre modifier et enregistrer.

Là est tout le problème car tous pourront faire des recherches et au niveau de cette fonction 2 colonnes ne devrons pas être visible par les personne ne pouvant que consulter.

voici le code dans ma page de Fonction.php :

function RechercheC($ver)
{	 //Affichage du résultat par Version 
	 $sql = "SELECT `id`,`NOM`,`TYPE`,`CLE_CPTA`, `SERIAL_CPTA`, `NUMEROS`,`VERSION` FROM `listec` WHERE VERSION like '$ver%' order by `Nom`";
	 $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	 $tbl = "listec";
	
	 // on fait une boucle qui va faire un tour pour chaque enregistrement
	 while($data = mysql_fetch_array($req))  
    {  echo '<tr>
	<td width="20" align="center"><div align="CENTER" class="result2"> </div></td>

//les deux ligne suivant ne doivent pas être visible par les utilisateurs avec un statut inférieur à 8
	<?php if($_SESSION['statut']>"1") { ?>
	<td width="20" align="center"><div align="CENTER" class="result2"><a href="delete.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/supp.png" border="0"></div></td>
	<td width="20" align="center"><div align="CENTER" class="result2"><a href="EnregGGE.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/edit.png" border="0"></a></div></td>
	<?php } ?>
//Fin des lignes caché

                     <td width="150" align="center"><div align="CENTER" class="result2"><b> '.$data['NOM'].'</b></div></td>
	<td width="90" align="center"><div align="center" class="result2"> '.$data['TYPE'].'</div></td>
	<td width="280" align="center"><div align="center" class="result2"> '.$data['CLE_CPTA'].'</div></td>
	<td width="170" align="center"><div align="center" class="result2"> '.$data['SERIAL_CPTA'].'</div></td>
	<td width="90" align="center"><div align="center" class="result2"> '.$data['NUMEROS'].'</div></td>
	<td width="60" align="center"><div align="center" class="result2"> '.$data['VERSION'].'</div></td>
	</tr>';}
}


Hors j'ai essayé pas mal de chose mais sans le bon résultat souhaité.

Pourriez vous m'aider SVP ?
A voir également:

10 réponses

Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

que se passe-t-il exactement ?
une erreur ou pas ? si ou, laquelle…

as-tu essayé de tester sur un entier plutôt que sur une chaîne ?
if( $_SESSION['statut'] > 1 )
0
steiner62
 
Le problème est que même avec une session de niveau 1 (qui ne doit pas avoir accès à ces lignes) ont voit les deux lignes que je veux caché j'ai essayé pas mal de possibilité mais je ne sais plus si j'ai tester cette syntaxe ^^

et je n'ai aucun message d'erreur juste l'affichage qui ce fait alors qu'il ne devrai pas
0
abfrede
 
salut moi je pense qu il faut creer une page qui apelle d autre donc si tu as le statut 1 on affiche les parrametre de statu1b etc
0
steiner62
 
@ abfrede :

Je me voit mal faire ça car j'ai plus d'une bonne vingtaine de fonction avec ce type de condition ce qui voudrai dire que je doit recréé tout en double je suis pas sorti de l'auberge ^^

@ Dalida :

Avec la synthase que tu m'as donné j'ai le message suivant :
Parse error: parse error, expecting `','' or `';'' in c:\ephp\www\Fonction.php on line 24 le problème vient des ' qui casse les pieds.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

regarde à la ligne 23 tu as dû oublier le point-virgule à la fin.
0
steiner62
 
Désolé Dalida mais le point virgule n'est pas la cause j'ai essayer de passer :

$_SESSION['statut'] > 1 en fonction sous le nom $statut

ce qui donne :

function RechercheC($ver)
{ //Affichage du résultat par Version
$sql = "SELECT `id`,`NOM`,`TYPE`,`CLE_CPTA`, `SERIAL_CPTA`, `NUMEROS`,`VERSION` FROM `listec` WHERE VERSION like '$ver%' order by `Nom`";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$tbl = "listec";
$stat =($_SESSION['statut']>"1");
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req))
{ echo '<tr>
<td width="20" align="center"><div align="CENTER" class="result2"> </div></td>
<?php if '.$stat.'{ ?>
<td width="20" align="center"><div align="CENTER" class="result2"><a href="delete.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/supp.png" border="0"> </div></td>
<td width="20" align="center"><div align="CENTER" class="result2"><a href="EnregGGE.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/edit.png" border="0"></a></div></td>
<?php } ?>

mais rien y fait ces deux satané ligne reste apparante .
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
c'est un peu méli-mélo !
-;o)

essaie avec ça :
function RechercheC( $ver )
{ 
	$sql = "SELECT `id`,`NOM`,`TYPE`,`CLE_CPTA`, `SERIAL_CPTA`, `NUMEROS`,`VERSION` FROM `listec` WHERE VERSION like '$ver%' order by `Nom`";
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	$tbl = "listec";
	$stat =( $_SESSION['statut'] > "1" );

	while( $data = mysql_fetch_array( $req ) )
	{
		echo ( '<tr><td width="20" align="center"><div align="CENTER" class="result2"> </div></td>' );
		if ( $stat )
		{
			echo ( '<td width="20" align="center"><div align="CENTER" class="result2"><a href="delete.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/supp.png" border="0"> </div></td>' );
			echo ( '<td width="20" align="center"><div align="CENTER" class="result2"><a href="EnregGGE.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/edit.png" border="0"></a></div></td>' );
		}
	} 
}
0
steiner62
 
Je n'est pas de chance mais ça ne marche toujours pas je déprime :(
0
steiner62
 
Et voila j'ai trouver ma solution :)

function RechercheC($ver)
{ //Affichage du résultat par Version
$sql = "SELECT `id`,`NOM`,`TYPE`,`CLE_CPTA`, `SERIAL_CPTA`, `NUMEROS`,`VERSION` FROM `listec` WHERE VERSION like '$ver%' order by `Nom`";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$tbl = "listec";
$stat = $_SESSION['statut'] > "1";
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req))
if ($_SESSION['statut'] > "1")
{ echo '<tr>
<td width="10" align="center"><div align="CENTER" class="result2"> </div></td>
<td width="20" align="center"><div align="CENTER" class="result2"><a href="delete.php?id='.$data['id'].'"><img src="im/supp.png" border="0"></a></div></td>
<td width="20" align="center"><div align="CENTER" class="result2"><a href="EnregLog.php?id='.$data['id'].'& tbl='.$tbl.'"><img src="im/edit.png" border="0"></a></div></td>
<td width="140" align="center"><div align="CENTER" class="result2"><b> '.$data['NOM'].'</b></div></td>
<td width="90" align="center"><div align="center" class="result2"> '.$data['TYPE'].'</div></td>
<td width="260" align="center"><div align="center" class="result2"> '.$data['CLE_CPTA'].'</div></td>
<td width="190" align="center"><div align="center" class="result2"> '.$data['SERIAL_CPTA'].'</div></td>
<td width="80" align="center"><div align="center" class="result2"> '.$data['NUMEROS'].'</div></td>
<td width="70" align="center"><div align="center" class="result2"> '.$data['VERSION'].'</div></td>
</tr>';}
else
{ echo '
<td width="10" align="center"><div align="CENTER" class="result2"> </div></td>
<td width="140" align="center"><div align="CENTER" class="result2"><b> '.$data['NOM'].'</b></div></td>
<td width="90" align="center"><div align="center" class="result2"> '.$data['TYPE'].'</div></td>
<td width="260" align="center"><div align="center" class="result2"> '.$data['CLE_CPTA'].'</div></td>
<td width="190" align="center"><div align="center" class="result2"> '.$data['SERIAL_CPTA'].'</div></td>
<td width="80" align="center"><div align="center" class="result2"> '.$data['NUMEROS'].'</div></td>
<td width="70" align="center"><div align="center" class="result2"> '.$data['VERSION'].'</div></td>
</tr>';}
}

et là ça marche bien et dire que je chercher compliquer pour rien ^^
0
Xil Messages postés 351 Statut Membre 257
 
echo '<tr>
	<td width="20" align="center"><div align="CENTER" class="result2"> </div></td>
	<?php if($_SESSION['statut']>"1") { ?>
	<td width[...]</td>
	<?php } ?>
           <td width="150" [...]';


Ceci ne risque effectivement pas de marcher :)
Pour plusieurs raisons:
- On ne réouvre pas de balise <?php ?> à l'intérieur d'autres balises php.
- On n'inclu pas de structure de controle (while, for, if-else, switch,...) dans un echo.
- La seule structure acceptée est un opérateur tertiaire : echo 'bla' . ($var = $value ? 'bla aussi' : 'pas bla') . 'bla restant';

Le code correct pour ceci est le suivant:
echo 'début';
if(($_SESSION['statut']> 1 ){
   echo 'contenu conditionnel';
}
echo 'fin';
0