Page 1 sur 1

Récupérer le nom du connecter

Posté : 09 mars 2009, 10:27
par Arkonara
Bonjour à tous, voici mon problème

Dans mon application, j'ai une page d'acceuil ou l'utilisateur doit saisir son N°d'employer afin de ce connecter. Une fois connecter, il arrive a une page menu qui lui offre donc divers choix pour divers fonctionnalités, dans une de c'est fonctionnalités, je souhaiterais récupérer le Nom de la l'utilisateur connecter, mais comment faire?

Avez-vous une idée?

Ps: c'est pas facil a expliquer donc si vous voulez plus de renseignement hesitez pas a me demander

Posté : 09 mars 2009, 11:08
par furiouslol
Salut,

Si le nom de ton employé est stocké en base de donnée et qu'il correspond au numéro qu'il a rentré pour se connecter alors oui c'est possible

Posté : 09 mars 2009, 11:11
par yaug
bonjour.
A première vue, je dirais que tu dois avoir une base de donnée liée à ton site et que dans cette base de données se trouve une table listant les utilisateurs.

Il faut donc :
- Sauvegarder en session les identifiants que rentre l'utilisateur, si ce n'est pas déjà fait.
- te connecter à la base de données si ce n'est pas déjà fait.
- Faire une requête sur la table des utilisateurs en utilisant les identifiants renseignés par l'utilisateur lors de sa connexion
- Enregistrer le résultat de la requête dans une variable.
- Afficher le résultat (nom et prénom) là ou tu le veux sur ta page.

Ce n'est pas plus compliqué que cela :wink:

Posté : 09 mars 2009, 11:44
par Arkonara
Tout d'abord merci furiouslol et yaug de me repondre,

Donc j'ai presque reussi a resoudre mon probleme, j'ai realiser toutes les etapes lister par yaug et tout fonctionne sauf pour laffichage ou il me renvoi un

Code : Tout sélectionner

ressourceid #4
, je sais que c'est une erreur banal mais j'arrive pas a la remplacer par le bon resultat rrrr....

voici ma requete

Code : Tout sélectionner

$declarant=$_SESSION['num_employe']; $sql = "SELECT Nom, Prenom FROM employer WHERE NumEmploye='$declarant'"; //Requete permettant de savoir si la valeur est dans la base de donnees $res = mysql_query($sql) or die('Erreur SQL! '.$sql.''.mysql_error()); // en cas d'erreure

Posté : 09 mars 2009, 11:56
par yaug
Héhé.
En fait.;
Vu ton erreur je pense que tu récupère mal ton résultat.
Ton soucis est à mon avis que tu exploites directement ta variable $res.
Cette variable contient certe le résultat de ta requete, mais il n'est pas lisible directement.

Pour pouvoir lire le résultat de ta requête, il te faut faire comme ceci.
$sql = "ta requete";
$res = mysql_query($sql);
$resultat = mysql_fetch_assoc($res);

//$resultat['Nom'] contiendra le nom
//$resultat['Prenom'] contiendra le prénom

Posté : 09 mars 2009, 12:06
par Arkonara
Merci Yaug t'as solution est la bonne et merci a toi oci furiouslol de m'avoir accorder un interet..

mais desormais j'ai un autre probleme, car l'enregistrement du contenu du formulaire ne s'effectue plus
il me met le message suivant

Code : Tout sélectionner

Cannot add or update a child row: a foreign key constraint fails (`incidents_editiques/incidents`, CONSTRAINT `fk_Employer` FOREIGN KEY (`NumEmploye`) REFERENCES `employer` (`NumEmploye`))
Voici mon code qui doit me permettre l'enregistrement
<?php
	require_once('../connexion.php');
	if ($db)
	{
		if(isset($_POST['enregistrer']))
		{
			//allocation des variables
			//$numFiche="";
			$LienFiche="";
			$dateicdt=$_POST['AnotherDate'];
				$date = preg_replace('/^(.{2})\/(.{2})\/(.{4})$/','$3-$2-$1', $dateicdt);
			$heuricdt=$_POST['heure_icdt'];
			$desicdt=$_POST['descrip_icdt'];
			$desresol="";
			$dateresol="";
			$heuresol="";
			$inter="";
			$observ=$_POST['observation'];
			$motifreouv="";
			$teamtrack="";
			$remarqueresp="";
			$majeur1=$_POST['choix'];
				if ($majeur1=="true")
				{
					$majeur="1";
				}
				elseif ($majeur1=="false")
				{
					$majeur="0";
				}
			$impactsocietaire=$_POST['choix2'];
			$matereiel=$_POST['lstmateriel'];
			$secteur=$_POST['lstSecteur'];
			$staticdt="OUV";
			$statuprod=$_POST['lstStatutProd'];
			$declarant=$_POST['declarant'];
			echo $_POST['declarant'];
				//Execution de la requete, cela me renvoi une ressource 
				$query="SELECT NumEmploye FROM employer WHERE Nom='".$declarant."';";  
				$rsc = mysql_query($query);   
				//Transformation de la ressource en résultat
				$result = mysql_fetch_assoc($rsc);  
				//Exploitation du résultat 
				$numemployer = $result['NumEmploye'];
			$prestataire=$_POST['lstPrestataire'];
				
			 
			$query="INSERT INTO incidents (`num_fiche`,`lien_fiche`,`date_icdt`,`heure_icdt`,`descrip_icdt`,`descrip_resol`,`date_resol`,`heure_resol`,`Intervenant`,`observation`,`motif_r_icdt`,`num_teamtrack`,`remarque_resp`,`icdt_majeur`, `ImpactSocietaire`,`CodeMateriel`,`CodeSecteur`,`CodeStatutIncident`,`CodeStatutProd`,`NumEmploye`,`CodePrestataire`)
			VALUES('','$LienFiche','$date','$heuricdt','$desicdt','$desresol','$dateresol','$heuresol','$inter','$observ','$motifreouv','$teamtrack','$remarqueresp','$majeur','$impactsocietaire','$matereiel', '$secteur','$staticdt','$statuprod','$numemployer','$prestataire')";
			$result= mysql_query($query) or die(mysql_error()); 
			include("IncidentsEnregistrer.html");
		}
		else
		{
			echo 'Aucunes données n\'est transmises au formulaire';
		}
	}
	else
	{
		'Problème à la connexion';
	}
?>
ok je viens de trouver le probleme, il venait du disabled

Code : Tout sélectionner

<td style="width: 33%"><font face="arial" color='#01796F'><center><b>Déclarant de l'incident :</b> <?php $declarant=$_SESSION['num_employe']; $sql = "SELECT Nom FROM employer WHERE NumEmploye='$declarant'"; $res = mysql_query($sql); $resultat = mysql_fetch_assoc($res); ?> <input type="text" name="declarant" style="width: 150px;" value="<?php echo $resultat['Nom'];?>" disabled></td>
donc maintenant l'enregistrement s'effectue bien mais comment faire pour que l'utilisateur ne puisse pas modifier ce champs sans utiliser le disabled?

Posté : 09 mars 2009, 15:38
par Ryle
Un champ qui est désactivé n'est pas envoyé par le formulaire...

Tu peux utiliser l'attribut readonly pour restreindre l'accès en écriture... le mieux étant peut être de passer cette info dans un champ caché du formulaire ou encore de la garder en session de manière à ce que l'utilisateur ne puisse pas l'altérer :)

Posté : 09 mars 2009, 15:58
par Arkonara
Merci rylede ta réponse, car en effet il m'a suffit de changer mon disabled par le readonly.

merci