Resultat d'un formulaire

Eléphanteau du PHP | 12 Messages

09 mai 2007, 18:08

Bonjour,

pour un projet je doit mettre en place un tout petit système d'identification, par un code. Chaque "agent" à un code.
Ma première page propose une case ou l'agent devra s'identifier par son code et pouvoir choisir sa formation.

Mon problème est que je n'arrive pas a bien appelé le base, en tout cas en faire ce que je souhaite, c'est à dire si le code agent tapé est correct il peut accéder à la page suivante, sinon il reste sur la page d'identification avec un message d'erreur.

Voila ce que j'ai, c'est la 2nde page, celle qui interprete le code agent.
<?php
include "connexion.php";

if(isset($_POST['action'])) $Code=$_POST['action'];
{
$sql = "SELECT code FROM agent WHERE code='$Code'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$res= mysql_num_rows($req);
}


$identification = "SELECT nom, prenom FROM agent WHERE code='$Code'";
echo 'Vous êtes '.$identification;



include "fermeture.php";
?>
Je ne maitrise que très peu le phph, c'est pour cela que le code est aussi médiocre....

Mammouth du PHP | 693 Messages

09 mai 2007, 18:22

<?php 
include "connexion.php"; 
Déjà, il me semble que include est ine fonction et donc que tu dois mettre l'argument entre parenthèse.
if(isset($_POST['action'])) $Code=$_POST['action']; 
{ 
$sql = "SELECT code FROM agent WHERE code='$Code'"; 
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
$res= mysql_num_rows($req); 
} 

Ensuite, tel que ton code est écrit, le bloc s'executera toujours. En effet, tu as fait suivre le if par une instruction et un point virgule. Ce qui donne, si le post n'existe pas :

SELECT code FROM agent WHERE code='', ce qui donnera aucun résultats.

Je pense que ce code serait plus adapté
if(isset($_POST['action'])) 
{$Code=$_POST['action']; 
$sql = "SELECT code FROM agent WHERE code='$Code'"; 
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
$res= mysql_num_rows($req); 
} 

ViPHP
ViPHP | 5924 Messages

09 mai 2007, 20:56

<?php 
include "connexion.php"; 
Déjà, il me semble que include est ine fonction et donc que tu dois mettre l'argument entre parenthèse.
Autant sur l'autre point, je plussoie, autant sur ce point je moinsoie :D
En fait, include peut s'appeler sans les parenthèses, car ce n'est pas une fonction mais une structure du langage (un truc complètement intégré à l'interpréteur php).
De toute facon, si c'avait été une fontion, il y aurait eu une erreur de syntaxe...

Mammouth du PHP | 693 Messages

09 mai 2007, 22:25

Oups, autant pour moi...Je me coucherai mon bête ce soir :D