Signaler

Créer profil avec php html [Résolu]

Posez votre question assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - Dernière réponse le 16 juin 2017 à 14:35 par le père.
Bonjour,
voici mon code pour connexion à un profil grâce à un email et mot de passe utilisateur, il n'affiche pas des erreurs mais il affiche une page(profil) blanche
connexion.php
<?php
session_start();
if (isset ($_POST['go'])) {
if (!isset($_POST['email'])|| !isset($_POST['mot_passe'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if ( empty($_POST['email']) ||empty($_POST['email'])) {
$erreur = ' Au moins un des champs est vide.';
}

// si tout est bon, on peut commencer l'insertion dans la base
else {
require('bdconnect.php');
//Reception des données du formulaire
$email=$_POST['email'];
$mot_passe=$_POST['mot_passe'];

$require=$bdd->prepare('SELECT * FROM utilisateurs WHERE emailUser=? AND passwordUser=?');
$require->execute(array($email,$mot_passe));
$userexist=$require->rowCount();
if($userexist==1 ){
$userinfo=$require->fetch();
$_SESSION['idUser']=$userinfo['idUser'];
$_SESSION['nomUser']=$userinfo['nomUser'];
$_SESSION['prenoUser']=$userinfo['prenomUser'];
header('Location:profil.php?='.$_SESSION['idUser']);
}
else $erreur='Mauvaise mail ou mot de passe';
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>TP</title>
<meta charset="UTF-8" />
</head>
<body>
<h2>Connexion</h2>
<form action="" method="post">
<table id="frm">
<tr>
<td><label for="inputemail"><b>Email :</b></label></td>
<td><label for="inputpw"><b>Mot de passe :</b></label></td>
</tr>
<tr>
<td><input type="email" name="email" id="inputemail" placeholder=" @ .com" class="from-control"/></td>
<td><input type="password" name="mot_passe" id="inputpw" class="from-control"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="go" value="Connexion" id="bt"></td>
</tr>
<tr>

</tr>
</table>
</form>
</body>
</html>
<?php
if (isset($erreur))
echo '<font color="red">'.$erreur.'</font>';
?>


profil.php
<?php
session_start();
include('bdconnect.php');
//$requser = $bdd->query("SELECT * FROM utilisateurs WHERE pseudoUser=:pseudo");
//$insert->execute(array('pseudo'=>$_GET['utilisateur']));
//$user = $requser->fetch();
if(isset($_GET['idUser']) && ($_GET['idUser']>0))
{
$getid=intval($_GET['idUser']);
$requet=$bdd->prepare('SELECT * FORM utilisateurs WHERE idUser=?');
$requet->execute(array($getid));
$userinfo=$requet->fetch();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="page3.css"/>
<title> TP </title>
</head>

<body>
<!--Gros div-->

<div id="searchbar">
<!--<span class="text">Chercher un expert</span>-->
<form action="Recherche.php" method="post">
<label>Chercher un expert</label>
<input class="champ" type="text" placeholder="Rechercher..." size="50" style="height:25px;"/>
<select name="nom" size="1">
<option>Comptabilité
<option>Juridique
<option>Informatique
<option>Bureautique
</select>

<input type="submit" value="Rechercher " />

</form>
</div>

<div>
<p class="flotte">
<img src="photo_mini.jpg" alt="Photo de profil" title="Photo de profil"/>
</p>

<p class="inline">
<?php echo $userinfo['nomUser'].' '.$userinfo['prenomUser'];?> </br></br>
Profession : </br></br>
E-mail: <?php echo $userinfo['emailUser'];?>
</p>

</div>



</body>
</html>
<?php
}
else{
echo 'Erreur!!!!';
}
?>


bdconnect.php
<?php
try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd=new PDO('mysql:host=127.0.0.1;dbname=bdd;charset=utf8','root','');
//$bdd->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);//mettre les noms des champs en majuscule
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//lancer des exceptions en cas d'erreur
}
catch(PDOException $e){
die('Echec: '.$e->getMessage());
}
?>

et merci d'avance
Utile
+0
plus moins
Bonjour

En première lecture…
header('Location:profil.php?='.$_SESSION['idUser']);

Il n'y a aucun nom entre le ? et le = dans l'URL. Il n'y a donc aucune variable $_GET['idUser'] pour la page appelée.

Et à quoi ça sert de passer l'idUser dans l'URL, alors que c'est une variable de session ? Tu n'as pas besoin de t'embêter avec $_GET.

De plus, dans un de tes SELECT, tu as écrit FORM au lieu de FROM
assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - 15 juin 2017 à 22:47
Bonsoir,
j'ai modifié ces erreurs mais il reste le même problème.
est-ce-que c'est une mauvaise méthode pour créer un profil? ou bien il y a une erreur sur ma bdd?
Répondre
Donnez votre avis
Utile
+0
plus moins
Peux-tu montrer ce code corrigé ? Si tu as toujours le même problème, c'est à dire une page profil.php toute blanche, c'est que tu n'as pas corrigé le header que je te signalais dans mon premier message.
Qu'est-ce qui s'affiche dans la barre d'adresse de ton navigateur quand tu vois cette page profil.php blanche ?
est-ce-que c'est une mauvaise méthode pour créer un profil
Je comprend mal ta question : ce n'est pas du tout une méthode pour créer un profil. C'est une méthode pour connecter un profil déjà existant. Et a priori, elle a l'air correcte.
assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - 16 juin 2017 à 11:43
Bonjour,
j'ai récupéré les information personnel qui ce trouve dans ma bdd et je le met sur une page html qui représente le profil pour le but de connecter un profil ou bien consulter un profil

connexion.php

<?php
session_start();
	if (isset ($_POST['go'])) {
		require('bdconnect.php');
		//Reception des données du formulaire
		$email=$_POST['email'];
		$mot_passe=$_POST['mot_passe'];
			if (!isset($_POST['email'])|| !isset($_POST['mot_passe'])) {
				$erreur = 'Les variables nécessaires au script ne sont pas définies.';
			}
			else {
				if ( empty($email) || empty($mot_passe)) {
					$erreur = ' Au moins un des champs est vide.';
				}
			
				// si tout est bon, on peut commencer l'insertion dans la base
				else {
					$require=$bdd->prepare('SELECT * FROM utilisateurs WHERE emailUser=? AND passwordUser=?');
					$require->execute(array($email,$mot_passe));
					$userexist=$require->rowCount();
					
					if($userexist ==1 ){
						$userinfo=$require->fetch();
						$_GET['idUser']=$userinfo['idUser'];
						$_GET['nomUser']=$userinfo['nomUser'];
						$_GET['prenomUser']=$userinfo['prenomUser'];
						$_GET['emailUser']=$userinfo['emailUser'];
						header('Location:profil.php?id='.$_GET['idUser']);
					}
					else $erreur='Mauvaise mail ou mot de passe';	
				}	
			}
		}
?>
<!DOCTYPE html>
<html>
	<head>
		<title>TP</title>
		<meta charset="UTF-8" />
	</head>
	<body>
		<h2>Connexion</h2>
		<form action="" method="post">
			<table id="frm">
					<tr>
						<td><label for="inputemail"><b>Email :</b></label></td>
						<td><label for="inputpw"><b>Mot de passe :</b></label></td>	
					</tr>
					<tr>
						<td><input type="email" name="email" id="inputemail" placeholder="                  @     .com" class="from-control"/></td>
						<td><input type="password" name="mot_passe" id="inputpw" class="from-control"/></td>
					</tr>
					<tr>
						<td></td>
						<td><input type="submit" name="go" value="Connexion" id="bt"></td>
					</tr>
					<tr>
						
					</tr>
				</table>	
		</form>	
	</body>
</html>
<?php
	if (isset($erreur)) 
	echo '<font color="red">'.$erreur.'</font>';
?>


profil.php

 <?php
	session_start();
	include('bdconnect.php');
    //$requser = $bdd->query("SELECT * FROM utilisateurs WHERE pseudoUser=:pseudo");
	//$insert->execute(array('pseudo'=>$_GET['utilisateur']));
	//$user = $requser->fetch();
	if(isset($_GET['idUser']) && ($_GET['idUser']>0))
	{
		$getid=$_GET['idUser'];
		$requet=$bdd->prepare('SELECT * FROM utilisateurs WHERE idUser=?');
		$requet->execute(array($getid));
		$userinfo=$requet->fetch();
?>
<!DOCTYPE html>
	<html>
		<head> 
			<meta charset="utf-8">
	<link rel="stylesheet" href="page3.css"/>
			<title> TP </title> 
		</head>
	
		<body>	
	<!--Gros div-->
	
	<div id="searchbar">
		<!--<span class="text">Chercher un expert</span>-->
			<form action="Recherche.php" method="post">
			<label>Chercher un expert</label>
			<input class="champ" type="text" placeholder="Rechercher..." size="50" style="height:25px;"/>
		<select name="nom" size="1">
			<option>Comptabilité
			<option>Juridique
			<option>Informatique
			<option>Bureautique
		</select>
   
        <input type="submit" value="Rechercher " />
		
    </form>
	</div>
	
	<div>
	<p class="flotte">
		<img src="photo_mini.jpg" alt="Photo de profil" title="Photo de profil"/>
	</p>
	
	<p class="inline">
			<?php echo $userinfo['nomUser'].' '.$userinfo['prenomUser'];?> </br></br>
			Profession :  </br></br>
			E-mail: <?php echo $userinfo['emailUser'];?>
	</p>
	
	</div>
	
	
	
</body>
</html>
<?php
	}
?>


http://127.0.0.1/memoire/creer/profil.php?id=1
Répondre
Donnez votre avis
Utile
+0
plus moins
Dans connexion.php :
header('Location:profil.php?id='.$_GET['idUser']);

Dans l'url, le nom que tu donnes à ta variable c'est 'id' et non pas 'idUser' comme on le voit bien dans :
http://127.0.0.1/memoire/creer/profil.php?id=1


Alors, comment espères-tu récupérer cet identifiant dans
$getid=$_GET['idUser'];
?

Corrige et ça devrait mieux marcher.

D'autre part, c'est inutile de passer cette variable par l'url : puisqu'elle est en session, elle est directement disponible en tant que $_SESSION['idUser'] dans profil.php, sinon ça sert à quoi les variables de session ?
assiaass82 8Messages postés mardi 13 juin 2017Date d'inscription 16 juin 2017 Dernière intervention - 16 juin 2017 à 14:02
merci le problème était ici header('Location:profil.php?id='.$_GET['idUser']);
j'ai remplacé id par idUser et le code sa marche bien
Répondre
le père. 5972Messages postés mardi 15 mai 2012Date d'inscription 15 octobre 2017 Dernière intervention - 16 juin 2017 à 14:35
Ça marche très bien mais ça ne change rien au fait que c'est absurde d'avoir une variable de session et de la passer par l'url
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !