besoin de conseil sur login et liste

Eléphanteau du PHP | 27 Messages

15 avr. 2008, 16:30

tu as bien fait la récupération de l'id de l'utilisateur qui vient de se logger?

vérifier bien les noms des tables et champs ..

si ce n'est pas cela et qu'il t'affiche 'Désolé, vous n\'avez pas accès au tableau. Vous devez vous logguer en tant que chef d\'établissement' alors fait un echo de ta requete et de ton résultat afin de voir si chacun est exact.

quand à l'affichage j'avais omis la seconde requête à savoir:
$rqt_affich_agent = "select * from api where fonct = 'agent'';
$res_affich_agent = mysql_query($rqt_affich_agent );

// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. 
while($row = mysql_fetch_array($res_affich_agent )) { 

Eléphant du PHP | 258 Messages

16 avr. 2008, 10:06

je ne comprend pas bien ci-dessous
tu as bien fait la récupération de l'id de l'utilisateur qui vient de se logger?
alors fait un echo de ta requete et de ton résultat afin de voir si chacun est exact.
un echo de ma requete? c'est celui-là(ci dessous):
<?
// requete pour la fonction 'chef d'établissment"
$reqchef =  "SELECT table1.nom AS nom_agent, table2.nom AS nom_etab, prenom, login_ldap, table1.tel AS tel_agent, etab, fonct, table1.mail AS mail_agent, table1.adresse AS adresse_agent, table1.ville AS ville_agent, table1.cp AS cp_agent, type_acces, id_type_client, os, av, date_prev,table1.date_dem AS dem, table2.ville AS ville_etab FROM $dbtable1 AS table1, $dbtable2 AS table2 WHERE fonct ='chef etablissement' ORDER BY table1.nom AND table1.etab = table2.rne";
?>
quand à l'affichage j'avais omis la seconde requête à savoir:

PHP:
$rqt_affich_agent = "select * from api where fonct = 'agent'';
$res_affich_agent = mysql_query($rqt_affich_agent );

// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($res_affich_agent )) {
je la place où?
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Eléphanteau du PHP | 27 Messages

16 avr. 2008, 21:29

Je manque de temps pour te répondre en totalité, j'éditerais mon post demain matin.



je ne comprend pas bien ci-dessous

Citation:tu as bien fait la récupération de l'id de l'utilisateur qui vient de se logger?
Quand un utilisateur va rentrer son loggin et son mot de passe, tu vas tester s'il se trouve dans la base, dans un cas positif, il va donc avoir
un identifiant : `id` int(11) NOT NULL auto_increment
une fonction : `fonct` varchar(50) NOT NULL default ''

donc il faut que tu récupere ces informations pour réaliser ensuite les tests sur cette fonction.

Citation:

alors fait un echo de ta requete et de ton résultat afin de voir si chacun est exact.
Pour tester si une requête est correcte, on affiche cette requete et son résultat.
Ensuite on peut tester la requete afficher dans sa base de données afin de vérifier de la validité de cette dernière.

*Je continue demain :)*

Bonne soirée

EDIT :
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($res_affich_agent )) {
tu colle ma requête juste avant ces lignes...

j'ai été clair?

Eléphant du PHP | 175 Messages

17 avr. 2008, 10:41

qegr c'est bien le probleme de depart, on a pas l'id du user loggué puisque c'est un issu d'un annuaire ldap (on a que son login)...
si c'etait le cas le probleme aurait ete regle depuis le depart.... j'ai meme evoque les optimisations a faire sur les tables pour mieux gere tout ca.

et je n'ai pas de retour sur ma requete proposée plus haut...
j'ai essayé de donner les pistes pour avancer sur le probleme mais je pense que l'on attend plutot de donner la reponse toute faite, la il faudra passer voir quelqu'un d'autre :twisted:

Eléphant du PHP | 258 Messages

17 avr. 2008, 12:18

suite aux différents propositions, je suis maintenant perdu.

alors j'ai refait et bidouillé un peu à ma façon. on va voir si vous êtes d'accord avec moi
je remets tout
je vous remercie bcp
pourriez vous me répondre rapidement?
voici le code PHP
 
<?php
$dbhost="************";
$dblogin="************";
$dbpass="************";
$dbbase="************";
$dbtable1="api";
$dbtable2="etab";

session_start();

//connexion au serveur de la base
mysql_connect($dbhost, $dblogin, $dbpass)
or die("erreur de connexion au serveur $dbhost");

//connexion à la base de données
mysql_select_db($dbbase) or die("erreur de connexion a la base de donnees");

// login du chef
if ($login_ldap = $_POST['login_ldap'] AND $fonct = 'chef etablissement')
{
$req_agent = "select  table1.nom AS nom_agent, table1.id AS id_agent from $dbtable1 AS table1 where fonct != 'chef etablissement'";
$result_agent = mysql_query($req_agent)or die(mysql_error());

// LISTE DES AGENTS selon login du chef
mysql_num_rows($result_agent);

// début du tableau
   		echo '<table bgcolor="#FFFFFF">'."\n";
        // première ligne on affiche les titres dans plusieurs colonnes
        echo '<tr><td colspan="6">Liste des demandeurs API : </td></tr>';
        echo '<tr><td bgcolor="#669999"><u>Nom de l\'agent</u></td>';
        echo '<td bgcolor="#669999"><u>ID</u></td>';
		echo '<td bgcolor="#669999"><u>Fonction</u></td>';
		echo '</tr>'."\n";

// lecture et affichage des résultats sur plusieurs colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result_agent))
{
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC" ><font size="1">'.$row['nom_agent'].'</font></td>';
		echo '<td bgcolor="#CCCCCC"><font size="1">'.$row['id_agent'].'</font></td>';
		echo '<td bgcolor="#CCCCCC"><font size="1">'.$row['fonct'].'</font></td>';
		echo '</tr>'."\n";
}
   		echo '</table>'."\n";

// fin du tableau.
}
else echo 'Désolé, vous n\'avez pas accès au tableau. Vous devez vous logguer en tant que chef d\'établissement';

// on libère le résultat
mysql_free_result($result_agent);
session_destroy();
?>
--
-- Structure de la table `api`
--

CREATE TABLE `api` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(30) NOT NULL default '',
`prenom` varchar(50) NOT NULL default '',
`login_ldap` varchar(50) NOT NULL default '',
`tel` varchar(30) NOT NULL default '',
`mail` varchar(50) NOT NULL default '',
`adresse` varchar(50) NOT NULL default '',
`cp` varchar(7) NOT NULL default '',
`ville` varchar(100) NOT NULL default '',
`etab` varchar(8) NOT NULL default 'Rectorat',
`fonct` varchar(50) NOT NULL default '',
`type_acces` enum('ADSL 2Mo','ADSL 512Ko','RNIS','RTC','Transpac','ADSL illimité') NOT NULL default 'ADSL 2Mo',
`date_prev` date NOT NULL default '2005-01-01',
`date_dem` date NOT NULL default '2005-01-01',
`id_type_client` int(11) NOT NULL default '0',
`equip` varchar(25) NOT NULL default 'PC Bureau Professionnel',
`os` varchar(11) NOT NULL default 'WinXP Pro',
`av` varchar(50) NOT NULL default '',
`osr` varchar(30) NOT NULL default '0',
`comm` varchar(200) NOT NULL default '',
`etat` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `login_ldap` (`login_ldap`)
) TYPE=MyISAM COMMENT='Table des clients API' AUTO_INCREMENT=385 ;
---------------------------------------------------------------------------------------------------------------------------------

-
-- Structure de la table `etab`
--

CREATE TABLE `etab` (
`id` int(11) NOT NULL auto_increment,
`rne` varchar(8) NOT NULL default '',
`type` varchar(10) NOT NULL default '',
`sec` varchar(10) NOT NULL default '',
`lib` varchar(50) NOT NULL default '',
`nom` varchar(50) NOT NULL default '',
`adresse` varchar(60) NOT NULL default '',
`cp` varchar(5) NOT NULL default '',
`ville` varchar(30) NOT NULL default '',
`tel` varchar(30) NOT NULL default '',
`fax` varchar(30) NOT NULL default '',
`mail` varchar(50) NOT NULL default '',
`date_dem` date NOT NULL default '0000-00-00',
`ddmaj` date NOT NULL default '0000-00-00',
`osr` varchar(50) NOT NULL default '',
`ce` varchar(60) NOT NULL default '',
`comm` varchar(210) NOT NULL default '',
`etat` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `rne` (`rne`)
) TYPE=MyISAM COMMENT='table des etablissements' AUTO_INCREMENT=183 ;
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Eléphant du PHP | 175 Messages

17 avr. 2008, 12:38

on reprend depuis le debut : connait tu la fonction du $_POST['login_ldap'] au debut de ton fichier?

si oui ca commencera comme ca:
$login_ldap = $_POST['login_ldap']; // = assignation
$fonct=...;//a determiner comment tu la recupere...
if ($fonct == 'chef etablissement'){ // == test d'equivalence
sinon on utilise ma requete plus haut... :roll:

Eléphant du PHP | 258 Messages

17 avr. 2008, 13:04

ah ca va mieux

ca marche mais je dois revérifier un truc
quand un chef d'établissement se loggue, tous SES agents s'affichent

mais là, je dois aller manger et revenir dans 1heure

merci steph29
à tout à l'heure
me revoila

il me reste à trouver tous les agents du même établissement du chef qui s'est loggué.
serait-il possible de remplacer 0941295X par $_post['rne']? ou quelquechose comme ça?
RNE est un numéro d'établissement.

je propose ci -dessous
<?
// login du chef
$login_ldap = $_POST['login_ldap']; // = assignation
$fonct = 'chef etablissement';
$rne = $_post['rne'];
if ($fonct = 'chef etablissement')
{

$req_agent = "SELECT table1.id AS id_agent,table1.nom AS nom_agent, table2.nom AS nom_etab, prenom, login_ldap, table1.tel AS tel_agent, etab, fonct, table1.mail AS mail_agent, table1.adresse AS adresse_agent, table1.ville AS ville_agent, table1.cp AS cp_agent, type_acces, id_type_client, os, av, date_prev,table1.date_dem AS dem, table2.ville AS ville_etab FROM $dbtable1 AS table1, $dbtable2 AS table2 WHERE table1.etab = table2.rne AND fonct != 'chef etablissement' AND rne = '0941295X' ORDER BY table1.nom ";
$result_agent = mysql_query($req_agent)or die(mysql_error());
?>
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Eléphant du PHP | 175 Messages

17 avr. 2008, 16:06

$fonct = 'chef etablissement'; 
if ($fonct = 'chef etablissement') 
{
... test completement inutile... c'est tout le temps vrai... :?

tu as tester la requete que je t'ai donne plus haut?

tu n'essaie meme pas de comprendre ce que tu fait et ce que tu dois faire :shock:

Eléphant du PHP | 258 Messages

23 avr. 2008, 12:36

excuse j'étais absent pour raisons personnelles

merci à tout
j'ai pu résoudre le pb

encore merci
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver