IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

aide pour un espace membre


Sujet :

Langage PHP

  1. #1
    Membre du Club

    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 22
    Points : 49
    Points
    49
    Par défaut aide pour un espace membre
    Bonjour. Je fais un exercice(un espace membre). Pour la page de connexion; je veux que l'utilisateur soit redirigé sur la page d'accueil(=page de connexion) et ce quelque soit le résultat. Voyez

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php session_start(); ?>
    <!DOCTYPE html>
    <html>
    	<head>
    		<title>site</title>
    		<meta charset = "utf-8"/>
    	</head>
     
    	</body>
    		<?php
    			if(isset($_SESSION['id']) AND isset($_SESSION['pseudo']))
    			{
    				echo '<a href = "page_profil.php"><strong>Bienvenu '.$_SESSION['pseudo'].'</strong></a><br/>';
    				echo '<a href = "deconnexion.php"/>Déconnexion</a>';
    			}
     
    			else
    			{
    		?>		<form action = "connexion.php" method = "post">
    					<label for = "pseudo">Pseudo:</label><input type = "text" name = "pseudo" id = "pseudo" required/>
    					<label for = "pass">Mot de passe:</label><input type = "password" name = "pass" id = "pass" required/>
    					<input type = "submit" value = "connexion"/><br/>
    				</form>
    				<a href = "inscription.php">Inscrivez vous </a>
    		<?php
    				if(isset($_SESSION['erreur']) AND $_SESSION['erreur'])
    					echo 'mot de passe et ou login incorrecte';
    			}
    		?>
    	<body>
    </html>
    la page de traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
     
    	session_start();
    	include_once('fonctions.php');
    	include_once('connexion_bdd.php');
    	if(isset($_POST['pseudo']) AND isset($_POST['pass']))
    	{
    		/* on verifie que l'existence dui compte*/
    		$requete = $bdd->prepare('SELECT id FROM membres WHERE pseudo = ? AND pass = ?');
    		$requete->execute(array($_POST['pseudo'] , sha1($_POST['pass']))) or die(print_r($requete->errorInfo()));
    		$donnees = $requete->fetch();
    		if(!$donnees)
    		{
    			$_SESSION['erreur'] = true;
    		}
    		else/*on le connecte*/
    		{
    			$_SESSION['id'] = $donnees['id'];
    			$_SESSION['pseudo'] = $_POST['pseudo'];
    			$_SESSION['erreur'] = false;
    		}
    		header('location:index.php');
    	}
     
     
     
    ?>
    ça marche mais j'utilise des variables de sessions juste pour savoir s'il y a eu erreur ou pas et c'est pire pour l'inscription. Je ne sais pas si c'est une bonne méthode ou s'il y a une meilleure solution. Je ne sais pas si je me suis fait bien comprendre mais merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton traitement peut être mis sur la meme page que le formulaire (ou inclus), cela évite le transport d'information de l'un à l'autre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club

    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 22
    Points : 49
    Points
    49
    Par défaut
    Je vois mais n'aurais pas le même problème? Si je veux savoir si une erreur s'est produite ou pas.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton problème était que tu utilisait des variables de session.
    Si tu travailles sur un seul script, tu n'en as plus besoin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club

    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 22
    Points : 49
    Points
    49
    Par défaut
    Ok. j'ai fais ça pour ma page d'inscription. J'ai besoin de recenser les erreurs qui se sont produites dans les divers champs de formulaire puis ensuite de les afficher pour le visiteur puisse corrigé(exemple:pseudo déjà utilisé). C'est la seule solution que je trouve

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?php session_start();?>
    <!DOCTYPE html>
    <html>
    	<head>
    		<title></title>
    		<meta charset = "utf-8"/>
    	</head>
     
    	<body>
    		<fieldset>
    			<legend>Inscrivez vous</legend>
    			<form method = "post">
    				<label>Pseudo:</label><input type = "text" name = "pseudo" required/>	<?php if(isset($_SESSION['pseudo_erreur']) AND $_SESSION['pseudo_erreur']) echo '<span style = "color:red;">Pseudo déjà utilisé </span>';?> 
     
     
    				<br/>
    				<label>Mot de passe(entre 6 et 15 lettres)</label><input type = "password" name = "pass" size = "15" required/>
    				<br/>
    				<label>Confirmer mot de passe</label><input type = "password" name = "pass_confirmation" size = "15" required/>
    				<br/>
    				<label>Email</label><input type = "mail" name = "mail" required/><br/>
    				<label>Sexe</label><br/>
    				<select name = "sexe">
    					<option value = "f">Féminin</option>
    					<option value = "m"/>Masculin</option>
    				</select>
    				<br/>
    				<input type = "submit" value = "S'inscrire"/>
    			</form>
     
    		</fieldset>
    		<?php
    			include('fonctions.php');
    			include('connexion_bdd.php');
    			if(isset($_POST['pseudo']) AND isset($_POST['pass']) AND isset($_POST['mail']) AND isset($_POST['pass_confirmation']))
    			{
    				/* on verifie que le compte n'existe pas deja,si les mdp sont identiques et si
    					l'email a une forme valide*/
    				$req = $bdd->prepare('SELECT COUNT(*) as pseudoOccupe FROM membres WHERE pseudo = ?');
    				$req->execute(array($_POST['pseudo']));
    				$donnees = $req->fetch();
    				$req->closeCursor();
    				if($donnees['pseudoOccupe'])
    					$_SESSION['pseudo_erreur'] = true;
    				else
    					$_SESSION['pseudo_erreur'] = false;
    				if($_POST['pass'] != $_POST['pass_confirmation'])
    					$_SESSION['pass_erreur1'] = true;
    				else
    					$_SESSION['pass_erreur1'] = false;
    				if(strlen($_POST['pass']) < 6)
    					$_SESSION['pass_erreur2'] = true;
    				else
    					$_SESSION['pass_erreur2'] = false;
    				if(!isEmail($_POST['mail']))
    					$_SESSION['mail_erreur'] = true;
    				else
    					$_SESSION['mail_erreur'] = false;
     
     
    				if(!$_SESSION['pseudo_erreur'] AND !$_SESSION['pass_erreur1']
    					AND !$_SESSION['pass_erreur2'] AND !$_SESSION['mail_erreur'])/*tout est OK*/
    				{
    					$passhache = sha1($_POST['pass']);
    					$req = $bdd->prepare('INSERT INTO membres(pass , email , pseudo , date_inscription)
    							VALUES(? , ? , ? , CURDATE())');
    					$req->execute(array($passhache , $_POST['mail'] , $_POST['pseudo']))
    					or die(print_r($req->errorInfo()));
    					$req->closeCursor();
    					echo 'inscription reussie';
     
    				}
     
    			}
     
     
    		?>
     
    	</body>
     
    </html>

Discussions similaires

  1. Réponses: 197
    Dernier message: 27/04/2021, 00h11
  2. [Forum] Quel forum pour mon espace membre
    Par okoweb dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 28/08/2008, 00h12
  3. [phpBB] Comment faire pour unifier un espace membres à un forum gratuit
    Par lunick dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 18/11/2007, 00h44
  4. [question pour espace membre] Comment etre sur du log ?
    Par ThitoO dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/09/2006, 23h51
  5. Réponses: 3
    Dernier message: 10/01/2005, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo