Créer profil avec php html

Résolu/Fermé
assiaass82 Messages postés 8 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 16 juin 2017 - 14 juin 2017 à 20:56
 Utilisateur anonyme - 16 juin 2017 à 14:35
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
A voir également:

3 réponses

Utilisateur anonyme
Modifié le 14 juin 2017 à 21:18
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
0
assiaass82 Messages postés 8 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 16 juin 2017
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?
0
Utilisateur anonyme
16 juin 2017 à 11:09
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.
0
assiaass82 Messages postés 8 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 16 juin 2017
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
0
Utilisateur anonyme
16 juin 2017 à 12:02
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 ?
0
assiaass82 Messages postés 8 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 16 juin 2017
Modifié le 16 juin 2017 à 14:04
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
0
Utilisateur anonyme > assiaass82 Messages postés 8 Date d'inscription mardi 13 juin 2017 Statut Membre Dernière intervention 16 juin 2017
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
0