Probleme de PHP/SQL avec formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme de PHP/SQL avec formulaire

par mystic666 » 08 avr. 2008, 16:19

j'ai reussi a resoudre mon probleme en rajoutant
<?
		$retour = mysql_query("SELECT rang FROM user WHERE nom = '".$for_nom."' AND mdp = '".$for_mdp."'");		
		// requete pour chercher le compte
		if(mysql_num_rows($retour)){
		// si on trouve le compte
			$result = mysql_fetch_object( $retour );
			switch ($result->rang){
				case 1:
				break;
				case 2:
				break;
				default:
				break;
?>
je vous remercie pour votre aide

par Cyrano » 08 avr. 2008, 09:08

Ce n'est pas exactement ça : mysql_num_rows() va retourner 0 ou 1, pas la valeur de la colonne "rang" : donc en faisant cette première vérification, tu testes si l'utilisateur est inscrit tout court. S'il est inscrit (et trouvé dans la base), il faut maintenant vérifier son niveau d'accès et récupérer la valeur de cette colonne "rang" que retourne ta requête : tu obtiendras cette valeur avec mysql_result(). Fais un petit tour dans la doc sur ces deux fonctions et reviens si un élément ne te semble pas trop clair.

par mystic666 » 08 avr. 2008, 08:20

Tu vérifies le nombre de lignes retournées, pas le résultat lui-même : mysql_num_rows() compte les lignes retournées par la requête, il faudrait utiliser ensuite mysql_result() pour récupérer la valeur retournée si il y a un résultat.
il ne me retourne qu'une ligne a chaque fois...
je ne comprend pas l'utilisation de mysql_result() dans mon cas...

par Cyrano » 08 avr. 2008, 07:40

Tu vérifies le nombre de lignes retournées, pas le résultat lui-même : mysql_num_rows() compte les lignes retournées par la requête, il faudrait utiliser ensuite mysql_result() pour récupérer la valeur retournée si il y a un résultat.

Probleme de PHP/SQL avec formulaire

par mystic666 » 07 avr. 2008, 22:14

bonjour/bonsoir,
je suis nouvelle sur le forum et dans la progammation PHP SQL...

je vous expose mon probleme... j'ai un formulaire HTML contenant 3 champs dont un cache... un champ for_nom pour l'identifiant de la personne un champ for_mdp pour son mot de passe et le champ cache pour le type de bouton sur lequel on clique...
je voudrais que quand la personne se logue ca aille verifier dans la BDD si le compte existe (jusque la ca va) mais je ne sais pas comment faire pour qu'il verifie aussi le rang de la personne qui lui ai associe dans la BDD (a aucun moment dans ce formulaire il lui ai demande de le renseigner)... j'utilise un switch pour les differents cas possible mais je n'arrive pas a trouver le terme a mettre dedans pour que ca designe la valeur de rang de la bdd... (d'ou le ????? pour le moment)

je sais pas si j'ai ete assez clair... si jamais il y a besoin de plus de renseignement ou d'eclaircir des choix demandez moi...

je vous remercie par avance de l'aide que vous pourrez m'apporter

voici mon bout de code concerne:
<?// si on se logue 
if($type == 'log'){															
	// requete pour chercher le compte
	$retour = mysql_query("SELECT rang FROM user WHERE nom = '".$for_nom."' AND mdp = '".$for_mdp."'");		
	// si on trouve le compte
	if(mysql_num_rows($retour)){
		switch (?????){
		case admin: ?>

<script language="javascript"
 type="text/javascript">
<!--
window.location.replace("/projet/v3/admin/administration2.html");
-->
</script>

<?php case manager:?>

<script language="javascript"
 type="text/javascript">
<!--
window.location.replace("administration.html");
-->
</script>

<?php	default: echo "Acc&egrave;s Refus&eacute; !!";
}
?>