Espace membres ...

Eléphanteau du PHP | 14 Messages

31 mai 2011, 14:51

Bonjour,

J'essaie actuellement de créer un espace membre et ayant débuté il y a peu de temps le PHP, j'ai un peu de mal.
Je me suis aide du site du zéro et d'un tutoriel dédié a la création d'un espace membre.

J'ai donc créer tous mes fichiers nécessaires "config.php", "fonctions.php", "index.php", "information.php", "inscription.php", "trait-inscription.php", "formulaire.php" et "table.sql".

Le probleme est que lorsque je remplie mes champs et que j'appuie sur inscription, je tombe sur une page blanche. Et je n'arrive pas a comprendre ou est le probleme ...

Voici ma page "formulaire.php" :
<!--Contenu-->
		<div id="contenu">
			<div id="map">
			
				<a href="../index.php">Accueil</a> => <a href="inscription.php">Inscription 1/2</a>
			</div>
			
			
			<h1>Formulaire d'inscription</h1>
			<p>Bienvenue sur la page d'inscription de mon site !<br/>
			
			Merci de remplir ces champs pour continuer.</p>
			<form action="trait-inscription.php" method="post" name="Inscription">
			
			
				<fieldset><legend>Identifiants</legend>
					<label for="pseudo" class="float">Pseudo :</label> <input type="text" name="pseudo" id="pseudo" size="30" /> <em>(compris entre 3 et 32 caractères)</em><br />
					<label for="mdp" class="float">Mot de passe :</label> <input type="password" name="mdp" id="mdp" size="30" /> <em>(compris entre 4 et 50 caractères)</em><br />
					<label for="mdp_verif" class="float">Mot de passe (vérification) :</label> <input type="password" name="mdp_verif" id="mdp_verif" size="30" /><br />
					<label for="mail" class="float">Mail :</label> <input type="text" name="mail" id="mail" size="30" /> <br />
					<label for="mail_verif" class="float">Mail (vérification) :</label> <input type="text" name="mail_verif" id="mail_verif" size="30" /><br />
					<label for="date_naissance" class="float">Date de naissance :</label> <input type="text" name="date_naissance" id="date_naissance" size="30" /> <em>(format JJ/MM/AAAA)</em><br/>
					
					
					<div class="center"><input type="submit" value="Inscription" /></div>
				</fieldset>
			</form>
		</div>
Et voila ma page "trait-information.php".
<?php
/*
Neoterranos & LkY
Page trait-inscription.php

Permet de valider son inscription.

Quelques indications : (utiliser l'outil de recherche et rechercher les mentions données)

Liste des fonctions :
--------------------------
Aucune fonction
--------------------------


Liste des informations/erreurs :
--------------------------
Déjà inscrit (en cas de bug...)
--------------------------
*/

session_start();
header('Content-type: text/html; charset=utf-8');
include('membres/config.php');

/********Actualisation de la session...**********/

include('membres/fonctions.php');
connexionbdd();
actualiser_session();

/********Fin actualisation de session...**********/

if(isset($_SESSION['membre_id']))
{
	header('Location: '.ROOTPATH.'/index.php');
	exit();
}
?>

<?php

/********Étude du bazar envoyé***********/

$_SESSION['erreurs'] = 0;

//Pseudo
if(isset($_POST['pseudo']))
{
	$pseudo = trim($_POST['pseudo']);
	$pseudo_result = checkpseudo($pseudo);
	if($pseudo_result == 'tooshort')
	{
		$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop court, vous devez en choisir un plus long (minimum 3 caractères).</span><br/>';
		$_SESSION['form_pseudo'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($pseudo_result == 'toolong')
	{
		$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop long, vous devez en choisir un plus court (maximum 32 caractères).</span><br/>';
		$_SESSION['form_pseudo'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($pseudo_result == 'exists')
	{
		$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est déjà pris, choisissez-en un autre.</span><br/>';
		$_SESSION['form_pseudo'] = '';
		$_SESSION['erreurs']++;
	}
		
	else if($pseudo_result == 'ok')
	{
		$_SESSION['pseudo_info'] = '';
		$_SESSION['form_pseudo'] = $pseudo;
	}
	
	else if($pseudo_result == 'empty')
	{
		$_SESSION['pseudo_info'] = '<span class="erreur">Vous n\'avez pas entré de pseudo.</span><br/>';
		$_SESSION['form_pseudo'] = '';
		$_SESSION['erreurs']++;	
	}
}

else
{
	header('Location: membres/index.php');
	exit();
}

//Mot de passe
if(isset($_POST['mdp']))
{
	$mdp = trim($_POST['mdp']);
	$mdp_result = checkmdp($mdp, '');
	if($mdp_result == 'tooshort')
	{
		$_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop court, changez-en pour un plus long (minimum 4 caractères).</span><br/>';
		$_SESSION['form_mdp'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($mdp_result == 'toolong')
	{
		$_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop long, changez-en pour un plus court. (maximum 50 caractères)</span><br/>';
		$_SESSION['form_mdp'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($mdp_result == 'nofigure')
	{
		$_SESSION['mdp_info'] = '<span class="erreur">Votre mot de passe doit contenir au moins un chiffre.</span><br/>';
		$_SESSION['form_mdp'] = '';
		$_SESSION['erreurs']++;
	}
		
	else if($mdp_result == 'noupcap')
	{
		$_SESSION['mdp_info'] = '<span class="erreur">Votre mot de passe doit contenir au moins une majuscule.</span><br/>';
		$_SESSION['form_mdp'] = '';
		$_SESSION['erreurs']++;
	}
		
	else if($mdp_result == 'ok')
	{
		$_SESSION['mdp_info'] = '';
		$_SESSION['form_mdp'] = $mdp;
	}
	
	else if($mdp_result == 'empty')
	{
		$_SESSION['mdp_info'] = '<span class="erreur">Vous n\'avez pas entré de mot de passe.</span><br/>';
		$_SESSION['form_mdp'] = '';
		$_SESSION['erreurs']++;

	}
}

else
{
	header('Location: membres/index.php');
	exit();
}

//Mot de passe suite
if(isset($_POST['mdp_verif']))
{
	$mdp_verif = trim($_POST['mdp_verif']);
	$mdp_verif_result = checkmdpS($mdp_verif, $mdp);
	if($mdp_verif_result == 'different')
	{
		$_SESSION['mdp_verif_info'] = '<span class="erreur">Le mot de passe de vérification diffère du mot de passe.</span><br/>';
		$_SESSION['form_mdp_verif'] = '';
		$_SESSION['erreurs']++;
		if(isset($_SESSION['form_mdp'])) unset($_SESSION['form_mdp']);
	}
	
	else
	{
		if($mdp_verif_result == 'ok')
		{
			$_SESSION['form_mdp_verif'] = $mdp_verif;
			$_SESSION['mdp_verif_info'] = '';
		}
		
		else
		{
			$_SESSION['mdp_verif_info'] = str_replace('passe', 'passe de vérification', $_SESSION['mdp_info']);
			$_SESSION['form_mdp_verif'] = '';
			$_SESSION['erreurs']++;
		}
	}
}

else
{
	header('Location: membres/index.php');
	exit();
}

//mail
if(isset($_POST['mail']))
{
	$mail = trim($_POST['mail']);
	$mail_result = checkmail($mail);
	if($mail_result == 'isnt')
	{
		$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.</span><br/>';
		$_SESSION['form_mail'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($mail_result == 'exists')
	{
		$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est déjà pris, <a href="../contact.php">contactez-nous</a> si vous pensez à une erreur.</span><br/>';
		$_SESSION['form_mail'] = '';
		$_SESSION['erreurs']++;
	}
		
	else if($mail_result == 'ok')
	{
		$_SESSION['mail_info'] = '';
		$_SESSION['form_mail'] = $mail;
	}
	
	else if($mail_result == 'empty')
	{
		$_SESSION['mail_info'] = '<span class="erreur">Vous n\'avez pas entré de mail.</span><br/>';
		$_SESSION['form_mail'] = '';
		$_SESSION['erreurs']++;	
	}
}

else
{
	header('Location: membres/index.php');
	exit();
}

//mail suite
if(isset($_POST['mail_verif']))
{
	$mail_verif = trim($_POST['mail_verif']);
	$mail_verif_result = checkmailS($mail_verif, $mail);
	if($mail_verif_result == 'different')
	{
		$_SESSION['mail_verif_info'] = '<span class="erreur">Le mail de vérification diffère du mail.</span><br/>';
		$_SESSION['form_mail_verif'] = '';
		$_SESSION['erreurs']++;
	}
	
	else
	{
		if($mail_result == 'ok')
		{
			$_SESSION['mail_verif_info'] = '';
			$_SESSION['form_mail_verif'] = $mail_verif;
		}
		
		else
		{
			$_SESSION['mail_verif_info'] = str_replace(' mail', ' mail de vérification', $_SESSION['mail_info']);
			$_SESSION['form_mail_verif'] = '';
			$_SESSION['erreurs']++;
		}
	}
}

else
{
	header('Location: membres/index.php');
	exit();
}

//date de naissance
if(isset($_POST['date_naissance']))
{
	$date_naissance = trim($_POST['date_naissance']);
	$date_naissance_result = birthdate($date_naissance);
	if($date_naissance_result == 'format')
	{
		$_SESSION['date_naissance_info'] = '<span class="erreur">Date de naissance au mauvais format ou invalide.</span><br/>';
		$_SESSION['form_date_naissance'] = '';
		$_SESSION['erreurs']++;
	}
	
	else if($date_naissance_result == 'tooyoung')
	{
		$_SESSION['date_naissance_info'] = '<span class="erreur">Agagagougougou areuh ? (Vous êtes trop jeune pour vous inscrire ici.)</span><br/>';
		$_SESSION['form_date_naissance'] = '';
		$_SESSION['erreurs']++;
	}
		
	else if($date_naissance_result == 'tooold')
	{
		$_SESSION['date_naissance_info'] = '<span class="erreur">Plus de 135 ans ? Mouais...</span><br/>';
		$_SESSION['form_date_naissance'] = '';
		$_SESSION['erreurs']++;
	}
		
	else if($date_naissance_result == 'invalid')
	{
		$_SESSION['date_naissance_info'] = '<span class="erreur">Le '.htmlspecialchars($date_naissance, ENT_QUOTES).' n\'existe pas.</span><br/>';
		$_SESSION['form_date_naissance'] = '';
		$_SESSION['erreurs']++;
	}
		
	else if($date_naissance_result == 'ok')
	{
		$_SESSION['date_naissance_info'] = '';
		$_SESSION['form_date_naissance'] = $date_naissance;
	}
	
	else if($date_naissance_result == 'empty')
	{
		$_SESSION['date_naissance_info'] = '<span class="erreur">Vous n\'avez pas entré de date de naissance.</span><br/>';
		$_SESSION['form_date_naissance'] = '';
		$_SESSION['erreurs']++;
	}
}

else
{
	header('membres/index.php');
	exit();
}

//qcm
if($_SESSION['reponse1'] == $_POST['reponse1'] && $_SESSION['reponse2'] == $_POST['reponse2'] && $_SESSION['reponse3'] == $_POST['reponse3'] && isset($_POST['reponse1']) && isset($_POST['reponse2']) && isset($_POST['reponse3']))
{
	$_SESSION['qcm_info'] = '';
}

else
{
	$_SESSION['qcm_info'] = '<span class="erreur">Au moins une des réponses au QCM charte est fausse.</span><br/>';
	$_SESSION['erreurs']++;
}


//captcha
if($_POST['captcha'] == $_SESSION['captcha'] && isset($_POST['captcha']) && isset($_SESSION['captcha']))
{
	$_SESSION['captcha_info'] = '';
}

else
{
	$_SESSION['captcha_info'] = '<span class="erreur">Vous n\'avez pas recopié correctement le contenu de l\'image.</span><br/>';
	$_SESSION['erreurs']++;
}

unset($_SESSION['reponse1'], $_SESSION['reponse2'], $_SESSION['reponse3']);
unset($_SESSION['captcha']);

/*************Fin étude******************/
?>

<?php
/********Entête et titre de page*********/
if($_SESSION['erreurs'] > 0) $titre = 'Erreur : Inscription 2/2';
else $titre = 'Inscription 2/2';

include('../includes/haut.php'); //contient le doctype, et head.

/**********Fin entête et titre***********/
?>
		<div id="colonne_gauche">
		<?php
		include('membres/colg.php');
		?>
		</div>
		
		<div id="contenu">
			<div id="map">
<!-- Absence de lien à Inscription 2/2 volontaire -->
				<a href="membres/index.php">Accueil</a> => Inscription 2/2
			</div>

Help :?

ViPHP
AB
ViPHP | 5818 Messages

31 mai 2011, 16:46

Que dirais-tu d'essayer un autre tuto avec code prêt à l'emploi. C'est ici. Je ne dis pas que ce que tu as trouvé n'est pas bien mais ce que je te propose est à mon avis encore plus simple et accessible aux débutants car tu peux tester facilement le code puisque les pages sont autonomes. S'ajoute à cela que comme c'est un exemple que je connais très bien :wink: cela me sera d'autant plus facile de t'aider en cas de besoin :)

Eléphanteau du PHP | 14 Messages

01 juin 2011, 07:50

AB, tu es mon sauveur :)

Je suis désolé de répondre a ton message seulement maintenant, je suis a Shanghai. Je dormais quand tu m'a répondu :?

J'ai donc regarde ton script qui m'a en effet l'air beaucoup plus simple.
Comme je suis débutant (voir tres débutant), je vais y aller tres doucement.

En ce qui concerne la table SQL, je l'ai appelle "table.sql" et je l'ai mis dans un dossier "membres/tests". Ca va ?

Pour l'instant, je n'ai mis que ca dedans.
CREATE TABLE `membres` (
  `ID` int(11) NOT NULL auto_increment,
  `pseudo` varchar(100) NOT NULL,
  `pass` varchar(100) character set utf8 collate utf8_bin NOT NULL,
  `date_enregistrement` datetime NOT NULL,
  PRIMARY KEY  (`ID`),
  UNIQUE KEY `pseudo` (`pseudo`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Je ne sais pas s'il faut rajouter ceci :
<form action = "#" method = "post">
    <input type = "text" name = "pseudo" />
    <input type = "password" name = "pass" />
    <input type = "submit" value = "Envoyer" />
</form>
Je ne pense pas étant donne que c'est du PHP mais je ne suis sur de rien.

Je te remercie d'avance.

Eléphant du PHP | 80 Messages

01 juin 2011, 08:54

Ton CREATE TABLE est une requête SQL à exécuter dans MyAdmin, il va créer une table qui contiendra leurs pseudos, mot de passe et date d'enregistrement, et ton second code n'est pas "encore" du PHP, il servira à faire en sorte que les membres puissent se connecter. C'est un formulaire, il enverra les données rentrées sur une page PHP qui vérifiera que le pseudo rentré et le mot de passe correspondent bien à ceux enregistrés dans la table.

(Sauf si c'est un formulaire simple d'inscription, login-mdp, alors j'ai parlé dans le vide :priere: )
En informatique, lorsqu'il y a un bug, le souci est toujours entre la chaise et le clavier.

Eléphanteau du PHP | 14 Messages

01 juin 2011, 09:06

Merci de ta reponse Ez3kiel.

Pour le formulaire, j'ai en effet besoin d'une page ou le nouveau membre entre ses infos, son mot de passe et s'inscrit ensuite. Est-ce de cela dont tu parles ? :)

Sinon, pour la CREATE TABLE, excuse moi de mon ignorance, mais comment je fais pour l'exécuter dans MyAdmin ?
Je retire ce fichier de "membres/tests" ?

Eléphant du PHP | 80 Messages

01 juin 2011, 09:20

D'accord, ce code est donc bien pour la connexion ?
<form action = "#" method = "post">
    <input type = "text" name = "pseudo" />
    <input type = "password" name = "pass" />
    <input type = "submit" value = "Envoyer" />
</form>
Et tu dois encore créer ta page d'inscription où il rentrera pseudo, info, mdp, etc.

Sinon ton CREATE TABLE est une requête SQL, dans PHPMyAdmin (si c'est ce que tu utilises, sinon c'est idem pour les autres), tu as un onglet "SQL", où tu peux copier coller ta requête (pas le fichier.sql), mais la requête qu'il y a dedans et faire exécuter, et normalement ta table devrait se créer. :)
En informatique, lorsqu'il y a un bug, le souci est toujours entre la chaise et le clavier.

Eléphanteau du PHP | 14 Messages

01 juin 2011, 09:42

D'accord, je n'avais meme pas MyAdmin #-o

Je vais le telecharger et je vous redis si j'ai des problèmes :wink:

Eléphant du PHP | 80 Messages

01 juin 2011, 10:13

Si tu veux faire du PhP il faut obligatoirement un serveur virtuel (EasyPHP), ou en local avec un vrai serveur, ou en ligne. :wink:
J'utilise EasyPhP pour ma part, PhPMyAdmin inclus, et ça me va bien malgré ce qu'on en dit.
En informatique, lorsqu'il y a un bug, le souci est toujours entre la chaise et le clavier.

Eléphanteau du PHP | 14 Messages

01 juin 2011, 10:17

Je me sers de Mamp (je suis sur Mac), ca m'a l'air pas mal.

Tu penses que EasyPhp serait plus adapte (pour l'histoire de Sql entre autre) ?

Eléphant du PHP | 80 Messages

01 juin 2011, 10:32

Oups, j'oublie trop souvent la pomme.
Je n'ai jamais utilisé Mamp, jamais eu de Mac. Mais sous Mamp tu as aussi (je crois) PhpMyAdmin pour MySql.

Mais si tu as Mamp c'est bon ne t'en fais pas !
Mamp est comme EasyPHP, c'est un package de plusieurs outils pour programmer en local.
(Un serveur virtuel, une gestion de base de donnée, et d'autres trucs dont je ne me sers pas encore ^^)

Un petit peu de lecture si tu veux mieux comprendre : http://www.siteduzero.com/tutoriel-3-71 ... -mamp.html
Je suis débutant aussi, alors je ne voudrais pas trop expliquer au risque de donner de mauvaises informations. ^^
En informatique, lorsqu'il y a un bug, le souci est toujours entre la chaise et le clavier.

Eléphanteau du PHP | 14 Messages

01 juin 2011, 10:36

Je lis ca ce soir et je te tiens au courant ;)

Eléphant du PHP | 80 Messages

01 juin 2011, 10:40

D'accord. :)
En informatique, lorsqu'il y a un bug, le souci est toujours entre la chaise et le clavier.

Eléphanteau du PHP | 14 Messages

01 juin 2011, 10:45

Je viens de le lire ^^

Donc d'apres ce que j'ai compris, je vais dans PHPmyAdmin qui est dans MAMP et a l'interieur, je cree ma table. Je suis bon ? :)

Eléphant du PHP | 80 Messages

01 juin 2011, 11:10

En collant ta requête SQL. Tu es bon chef. =D>
En informatique, lorsqu'il y a un bug, le souci est toujours entre la chaise et le clavier.

Eléphanteau du PHP | 14 Messages

01 juin 2011, 15:47

Quand je rentre dans PHPMyAdmin, on doit remplir un champ qui s'appelle "créer une base de donnée". Je donne n'importe quel nom ou il en faut un en particulier ?

Et il y a ensuite "créer une nouvelle table sur la base X" (du nom de la base de donnée). C'est pareil, je mets le nom qui me plait ?