Modérateur PHPfrance |
2575 Messages
06 mars 2013, 01:29
Salut, il y a des erreurs logiques dans ton code. Voici la correction:
//ouvre la session
session_start();
//
$cpp="";
$cpp.="<br><br><div align='center'>";
if (isset($_SESSION['login']))
{
if($varia=="")
{
//connexion a la bdd
include ("/admin/connectbase.php");
$login=$_SESSION['login'];
//authentification de l'utilisateur
$result = mysql_query("SELECT type_cpt FROM users WHERE login='".$login."'");
//lire le resultat de la requete
if ( $result && $row = mysql_fetch_array($result))
{
//distinguer l'admin ou l'utilisateur avec pouvoir
if ( $row['type_cpt'] == 'admin' or $row['type_cpt'] == 'avec_pouvoir' )
{
$cpp.="<b>Liste des comptes:$login {$row[type_cpt]}</b><br>
<br>
<table width=\"90%\"border=\"1\">
<tr>
<td align=\"center\"";
if ( $row['type_cpt'] == 'admin' )
{
$cpp.="width=\"33%\" ";
}
else
{
$cpp.="width=\"50%\" ";
}
$cpp.="height=\"20\"><b><u>Login</u></b>
</td>
<td align='center' ";
if ( $row['type_cpt'] == 'admin' )
{
$cpp.="width=\"33%\" ";
}
else
{
$cpp.="width=\"50%\" ";
}
$cpp.="height=\"20\"><b><u>Type de compte</u></b>
</td>";
if ( $row['type_cpt'] == 'admin' )
{
$cpp.="<td align=\"center\" width=\"50%\" height=\"20\"><b><u>Modification/Suppression</u></b></td>";
}
$cpp.="</tr>";
$result1 = mysql_query("SELECT * FROM users");
while ($result1 && $donnees = mysql_fetch_array($result1) )
{
$cpp.="<tr>
<td align=\"center\" width=\"50%\" height=\"20\">{$donnees[login]}</td>
<td align=\"center\" width=\"50%\" height=\"20\">{$donnees[type_cpt]}</td>";
if ( $row['type_cpt'] == 'admin' )
{
$cpp.=" <td align=\"center\" width=\"50%\" height=\"10\"><b><u>
<a href=\"?page=list_cpt&dossier=admin&varia=delete&num_log={$donnees[num]}\" title=\"\">
<img src=\"images/delete.jpg\" width=\"20\" height=\"20\" alt=\"\" border=\"0\">
</a>
<a href=\"?page=list_cpt&dossier=admin&varia=modif&num_log={$donnees[num]}\" title=\"\">
<img src=\"images/modif.jpg\" width=\"20\" height=\"20\" alt=\"\" border=\"0\">
</a>
</u></b>
</td>";
}
$cpp.="</tr>";
}
if ( $row['type_cpt'] == 'admin' )
{
$cpp.=" <tr><td align=\"center\" width=\"1000%\" height=\"10\" colspan=\"3\">
<a href=\"?page=list_cpt&dossier=admin&varia=ajout\" title=\"\">
<img src=\"images/add.jpg\" width=\"20\" height=\"20\" alt=\"\" border=\"0\">
</a>
</td></tr>";
}
$cpp.="</table>";
}
}
}
}
$cpp.="</div>";
Les erreurs:
1.
session_start() n'existait pas au début (du moins dans le code fourni) elle est obligatoire!
2.
$result = mysql_query("SELECT type_cpt FROM users WHERE login='".$login."'"); la variable $login doit être entourée entre quottes ( ' )
3.
$cpp.="<b>Liste des comptes:$login $result</b><br> ... L'intégration de variables comme $login doit se faire dans une chaine de caractère mise entre guillemets ( " ) et non entre quottes ( ' )
4.
$cpp.="<b>Liste des comptes:$login $result</b><br> ... La variable $result ne peut pas être affichée car c'est une variable ressource résultat d'un recordset SQL (curseur SQL) donc c'est juste un lien qui mène vers un ensemble d'enregistrements résultat de la requête SQL. Peut-être souhaitais-tu afficher le type du compte de l'utilisateur avec son login et dans ce cas il fallait écrire :
$cpp.="<b>Liste des comptes:$login {$row[type_cpt]}</b><br> ... où la variable {$row[type_cpt]} est intégrée entre accolades { ... } car c'est un champ de tableau et non une variable simple comme $login.
5. Les autres erreurs sont liées à l'intégration du code HTML dans php et notamment l'usage des guillemets et des quottes. En principe pour les valeurs des attributs des balises HTML il faut utiliser les guillemets et non les quottes comme ici par exemple :
$cpp.=" <td align=\"center\" width=\"50%\" height=\"10\"><b><u>
<a href=\"?page=list_cpt&dossier=admin&varia=delete&num_log={$donnees[num]}\" title=\"\">
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène