[php]session..ou mettre la variable???
Résolu/Fermé
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
-
7 févr. 2006 à 20:46
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 - 2 janv. 2007 à 20:02
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 - 2 janv. 2007 à 20:02
A voir également:
- [php]session..ou mettre la variable???
- Easy php - Télécharger - Divers Web & Internet
- Ants session déconnectée - Forum Services en ligne
- Facebook session expirée ✓ - Forum Facebook
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
14 réponses
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
8 févr. 2006 à 22:34
8 févr. 2006 à 22:34
..............
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
15 avril 2006 à 23:28
15 avril 2006 à 23:28
euh ouais bon, c'est vrai que sans expliquer le problème, y aura pas démace de réponses
alors voilà ce code-ci est placé en haut de chaque page:
ce code est censé ouvrir un session, si la sessoin n'existe pas il doit être redirigé vers la page d'inscription comme ceci:
mais il y a un menu
si la variable session existe, alors il est censé afficher une partie du menu avec la variable session, mis si il ne l'est pas, alors on place le menu avec formulaire:
le menu se trouve dans un include et la page d'inscription est la suivante si l'erreur viendrait de la:
voilà, c'est un peu long ,mais je ne m'en sort vraiment pas
merci pour votre futur aide
alors voilà ce code-ci est placé en haut de chaque page:
<?php session_start(); if (!isset($_SESSION['login'])) { exit(); } ?>
ce code est censé ouvrir un session, si la sessoin n'existe pas il doit être redirigé vers la page d'inscription comme ceci:
<?php session_start(); if (!isset($_SESSION['login'])) { } else { header('Location: inscriptionoblige.php'); } ?>
mais il y a un menu
si la variable session existe, alors il est censé afficher une partie du menu avec la variable session, mis si il ne l'est pas, alors on place le menu avec formulaire:
<div id="menu"> <div id="element_menu"> <h3>Menu 1</h3> <ul> <li><a href="#">Lien 1.1</a></li> <li><a href="#">Lien 1.2</a></li> <li><a href="#">Lien 1.3</a></li> </ul> </div> <div id="element_menu"> <h3>Menu 2</h3> <ul> <li><a href="#">Lien 2.1</a></li> <li><a href="#">Lien 2.2</a></li> <li><a href="#">Lien 2.3</a></li> </ul> </div> <div id="element_menu"> <?php if (isset($_SESSION['login'])) { echo ' <ul> <li><a>Salut </br><?php echo 'htmlentities(stripslashes(trim($_SESSION['login'])))'; ?></a></li> <li><a href="deconnection.php">Se déconnecter</a></li> </ul> '; } else { echo ' <form action="post" method="identification.php"> Pseudo<br> <input type="text" name="pseudo"><br> Mot de passe<br> <input type="password" name="motdepasse"><br> <input type="submit" value="Valider"><br> <a href="inscription.php">S\'inscrire</a><br> </form> '; } ?> </div> </div>
le menu se trouve dans un include et la page d'inscription est la suivante si l'erreur viendrait de la:
<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['motdepasse']) && !empty($_POST['motdepasse'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['motdepasse'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('localhost', 'root', ''); mysql_select_db ('site', $base); // on recherche si ce login est déjà utilisé par un autre membre $sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['motdepasse'])).'", "'.addslashes($_POST['email']).'", "'.addslashes($_POST['pays']).'", "'.addslashes($_POST['sexe']).'", "'.addslashes($_POST['jour']).'", "'.addslashes($_POST['mois']).'", "'.addslashes($_POST['annee']).'", "'.addslashes($_POST['lien']).'", "'.addslashes($_POST['statut']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; header('Location: inscrit.php'); exit(); } else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <?php include("haut.php") ?> <?php include("menu.php") ?> <div id="corps"> <form action="post" method="ajoutmembre.php"> Pour t'inscrire, il faut obligatoirement que tu remplisses tous les champs suivants :</p> Nom : <input type="text" name="nom"> </p> Prénom : <input type="text" name="prenom"> </p> E-mail : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo stripslashes(htmlentities(trim($_POST['email']))); ?>"> </p> Choisis un login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>"> </p> Mot de passe : <input type="password" name="motdepasse" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['motdepasse']))); ?>"> </p> Retape le mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['pass_confirm']))); ?>"> </p> Pays : <select name="pays"> <optgroup label="Europe"> <option value="belgique">Belgique</option> <option value="france">France</option> <option value="hollande">Hollande</option> <option value="espagne">Espagne</option> <option value="italie">Italie</option> <option value="royaumeuni">Royaume-Uni</option> </optgroup> <optgroup label="Amérique"> <option value="canada">Canada</option> <option value="etatsunis">Etats-Unis</option> </optgroup> <optgroup label="Asie"> <option value="chine">Chine</option> <option value="japon">Japon</option> </optgroup> <optgroup label="Afrique"> <option value="maroc">Maroc</option> <option value="congo">Congo</option> </optgroup> </select> </p> Date de naissance : <select name="jour"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select name="mois"> <option value="janvier">janvier</option> <option value="fevrier">février</option> <option value="mars">mars</option> <option value="avril">avril</option> <option value="mai">mai</option> <option value="juin">juin</option> <option value="juillet">juillet</option> <option value="aout">août</option> <option value="septembre">septembre</option> <option value="octobre">octobre</option> <option value="novembre">novembre</option> <option value="decembre">decembre</option> </select> <select name="annee"> <option value="2006">2006</option> <option value="2005">2005</option> <option value="2004">2004</option> <option value="2003">2003</option> <option value="2002">2002</option> <option value="2001">2001</option> <option value="2000">2000</option> <option value="1999">1999</option> <option value="1998">1998</option> <option value="1997">1997</option> <option value="1996">1996</option> <option value="1995">1995</option> <option value="1994">1994</option> <option value="1993">1993</option> <option value="1992">1992</option> <option value="1991">1991</option> <option value="1990">1990</option> <option value="1989">1989</option> <option value="1988">1988</option> <option value="1987">1987</option> <option value="1986">1986</option> <option value="1985">1985</option> <option value="1984">1984</option> <option value="1983">1983</option> <option value="1982">1982</option> <option value="1981">1981</option> <option value="1980">1980</option> <option value="1979">1979</option> <option value="1978">1978</option> <option value="1977">1977</option> <option value="1976">1976</option> <option value="1975">1975</option> <option value="1974">1974</option> <option value="1973">1973</option> <option value="1972">1972</option> <option value="1971">1971</option> <option value="1970">1970</option> <option value="1969">1969</option> <option value="1968">1968</option> <option value="1967">1967</option> <option value="1966">1966</option> <option value="1965">1965</option> <option value="1964">1964</option> <option value="1963">1963</option> <option value="1962">1962</option> <option value="1961">1961</option> <option value="1960">1960</option> <option value="1959">1959</option> <option value="1958">1958</option> <option value="1957">1957</option> <option value="1956">1956</option> <option value="1955">1955</option> <option value="1954">1954</option> <option value="1953">1953</option> <option value="1952">1952</option> <option value="1951">1951</option> <option value="1950">1950</option> <option value="1949">1949</option> <option value="1948">1948</option> <option value="1947">1947</option> <option value="1946">1946</option> <option value="1945">1945</option> <option value="1944">1944</option> <option value="1943">1943</option> <option value="1942">1942</option> <option value="1941">1941</option> <option value="1940">1940</option> <option value="1939">1939</option> <option value="1938">1938</option> <option value="1937">1937</option> <option value="1936">1936</option> <option value="1935">1935</option> <option value="1934">1934</option> <option value="1933">1933</option> <option value="1932">1932</option> <option value="1931">1931</option> <option value="1930">1930</option> <option value="1929">1929</option> <option value="1928">1928</option> <option value="1927">1927</option> <option value="1926">1926</option> <option value="1925">1925</option> <option value="1924">1924</option> <option value="1923">1923</option> <option value="1922">1922</option> <option value="1921">1921</option> <option value="1920">1920</option> <option value="1919">1919</option> <option value="1918">1918</option> <option value="1917">1917</option> <option value="1916">1916</option> <option value="1915">1915</option> <option value="1914">1914</option> <option value="1913">1913</option> <option value="1912">1912</option> <option value="1911">1911</option> <option value="1910">1910</option> <option value="1909">1909</option> <option value="1908">1908</option> <option value="1907">1907</option> <option value="1906">1906</option> <option value="1905">1905</option> <option value="1904">1904</option> <option value="1903">1903</option> <option value="1902">1902</option> <option value="1901">1901</option> <option value="1900">1900</option> </select> </p> Tu es : <input type="radio" name="sexe" value="homme"> un homme<br> <input type="radio" name="sexe" value="femme"> une femme </p> <input type="hidden" name="statut" value="0"> <!-- pour créer une chaine aléatoire --> <?php $tab=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'); ?> <?php $chaine=''; for ($i=0;$i<50;$i++) { $offset=rand(0,35); $chaine=$chaine . $tab[$offset]; } ?> <input type="hidden" name="lien" value="<?php echo $chaine ?>" /> <!-- le code suivant pour tester si on a validé le formulaire --> <input type="submit" name="inscription" value="Inscription"> </form> <!-- ici s'affichera (l'éventuelle) erreur --> <?php if (isset($erreur)) echo '<br />',$erreur; ?> </div> <?php include("bas.php") ?>
voilà, c'est un peu long ,mais je ne m'en sort vraiment pas
merci pour votre futur aide
ekra
Messages postés
1870
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
342
15 avril 2006 à 23:50
15 avril 2006 à 23:50
for ($i=0;$i<50;$i++) { $offset=rand(0,35); $chaine=$chaine . $tab[$offset]; } ?>
Bonjour,
Je ne m'y connais pas trop en PHP, mais j'ai un truc à proposer :
rand(0,34) ?
25 lettres +10 chiffres =35 caractères.
Donc de 0 à 34, 35 chiffres.
Mais bon, ce n'est peut-être pas cela.
Salut !
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
16 avril 2006 à 10:21
16 avril 2006 à 10:21
je ne pense pas que se soit ça.
en fait le problème est d'afficher le menu avec formulaire pour les non-loggés et l'autre menu pour ceux qui se sont cnnectés.
il faut donc aussi ouvrir les sessions sur toutes les pages, car si un loggé reviens sur une page que tout le monde visite, si on ne met pas de variable session, il ne sera plus loggé.
et ceux voulant accéder aux pages que seul ceux s'étant inscrits peuvent voir, dvent être redirigés vers la page d'inscription.
voilà
en fait le problème est d'afficher le menu avec formulaire pour les non-loggés et l'autre menu pour ceux qui se sont cnnectés.
il faut donc aussi ouvrir les sessions sur toutes les pages, car si un loggé reviens sur une page que tout le monde visite, si on ne met pas de variable session, il ne sera plus loggé.
et ceux voulant accéder aux pages que seul ceux s'étant inscrits peuvent voir, dvent être redirigés vers la page d'inscription.
voilà
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
16 avril 2006 à 11:17
16 avril 2006 à 11:17
Bonjour,
Je ne suis pas sûr de bien comprendre ta question, mais pour afficher le formulaire qui si le visiteur n'est pas loggé, tu peux utiliser une condition (c'est ce que j'utilise, à adapter à ton cas) :
Ensuite tu mets le contenu de la page à afficher, puis l'autre condition pour afficher le formulaire :
Tu mets ensuite le formulaire sans oublier de fermer la condition :
Bon courage
Je ne suis pas sûr de bien comprendre ta question, mais pour afficher le formulaire qui si le visiteur n'est pas loggé, tu peux utiliser une condition (c'est ce que j'utilise, à adapter à ton cas) :
<?php if (session_is_registered("nom de la session") || $variable_du_mot_de_passe == $variable_du_formulaire && $variable_du_loggin ==$variable_du_formulaire) { ?>
Ensuite tu mets le contenu de la page à afficher, puis l'autre condition pour afficher le formulaire :
<?php } else { ?>
Tu mets ensuite le formulaire sans oublier de fermer la condition :
<?php } ?>
Bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
16 avril 2006 à 11:40
16 avril 2006 à 11:40
je ne sais pas, il n'y a pas moyen d'utiliser un header dans le genre:
???
<?php session_start(); if (!isset($_SESSION['login'])) { header(location:("inscription.php")); } else { } ?>
???
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
16 avril 2006 à 11:47
16 avril 2006 à 11:47
Personnellement, j'utilise ce genre de header sur les autres pages,
<?php
session_start();
if (!isset($_SESSION['login']))
{
header(location:("inscription.php"));
}
exit;
?>
afin de renvoyer le visiteur automatiquement vers la page "inscription.php" qui contient le formulaire, et dans laquelle se trouve la vérification que je t'ai donnée dans mon post précédent.
<?php
session_start();
if (!isset($_SESSION['login']))
{
header(location:("inscription.php"));
}
exit;
?>
afin de renvoyer le visiteur automatiquement vers la page "inscription.php" qui contient le formulaire, et dans laquelle se trouve la vérification que je t'ai donnée dans mon post précédent.
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
16 avril 2006 à 11:49
16 avril 2006 à 11:49
je vais essayer ça alors...
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
16 avril 2006 à 11:57
16 avril 2006 à 11:57
j'ai utilisé
, mais ça me donne un tas d'erreurs.:(
<?php if (session_is_registered("login") || $_POST['motdepasse'] == $motdepasse && $_POST['login'] ==$login) { ?>
, mais ça me donne un tas d'erreurs.:(
Notice: Undefined index: motdepasse in c:\documents and settings\propriétaire\mes documents\vraiespacemembre\menu.php on line 23 Notice: Undefined variable: motdepasse in c:\documents and settings\propriétaire\mes documents\vraiespacemembre\menu.php on line 23 Notice: Undefined index: login in c:\documents and settings\propriétaire\mes documents\vraiespacemembre\menu.php on line 23 Notice: Undefined variable: login in c:\documents and settings\propriétaire\mes documents\vraiespacemembre\menu.php on line 23 Salut Notice: Undefined index: login in c:\documents and settings\propriétaire\mes documents\vraiespacemembre\menu.php on line 26 Se déconnecter
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
16 avril 2006 à 12:27
16 avril 2006 à 12:27
Je pense qu'il y a un problème au niveau de la variable "login" et du nom de la session, donne un autre nom à ta session ou à la variable du formulaire.
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
16 avril 2006 à 12:34
16 avril 2006 à 12:34
Tes variables "$motdepasse" et "$login" sont stockées où ?
Elles ne semblent pas définies.
Elles ne semblent pas définies.
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
16 avril 2006 à 23:50
16 avril 2006 à 23:50
elles sont stockées dans la BDD.
un autre problème que j'ai remarqué est que ça affiche d'office le formulaire avec variable, alors que je n'ai encore rien tapé comme login ni mot de passe...
un autre problème que j'ai remarqué est que ça affiche d'office le formulaire avec variable, alors que je n'ai encore rien tapé comme login ni mot de passe...
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
17 avril 2006 à 06:49
17 avril 2006 à 06:49
Bonjour,
C'est normal que le formulaire s'affiche, puisque tu n'es pas loggé et que la condition le prévoit.
Il faut mettre le formulaire d'authentification et en plus, par exemple, un lien vers le formulaire d'inscription, comme ça les personnes qui sont déjà inscrites n'ont qu'à se logger, les autres iront d'abord sur le formulaire d'inscription.
Pour le problème de variables non définies, il faut vérifier que tu accèdes bien aux variables stockées dans ta base de données pour pouvoir les comparer avec les variables de connexion que les visiteurs vont saisir dans le formulaire d'authentification (en te connectant à la base qui les contient et en récupérant les variables, en début de script).
L'authentification se passe en plusieurs temps, le visiteur appelle un fichier protégé, il est redirigé automatiquement sur le fichier d'authentification (authentification.php, par exemple) et le formulaire d'authentification s'affiche ainsi que le lien vers la page d'inscription (inscription.php), dans le même temps le script se connecte à la Bdd et récupère les variables de connexion.
Grâce à ce script :
S'il est déjà inscrit, il s'authentifie, le script compare les variables de connexion et il peut accéder aux pages protégées.
Une fois loggé, il peut accéder à toutes les pages protégées sans avoir à s'authentifier à nouveau.
S'il n'est pas encore inscrit, il clique sur le lien pour ouvrir le formulaire d'inscription situé dans un autre fichier (inscription.php).
Tu dois pouvoir mettre le formulaire d'inscription dans le même fichier que le formulaire d'authentification en mettant une condition du genre :
mais je trouve que c'est plus simple et plus clair comme ça pour commencer, à toi de voir.
Bon courage.
C'est normal que le formulaire s'affiche, puisque tu n'es pas loggé et que la condition le prévoit.
Il faut mettre le formulaire d'authentification et en plus, par exemple, un lien vers le formulaire d'inscription, comme ça les personnes qui sont déjà inscrites n'ont qu'à se logger, les autres iront d'abord sur le formulaire d'inscription.
Pour le problème de variables non définies, il faut vérifier que tu accèdes bien aux variables stockées dans ta base de données pour pouvoir les comparer avec les variables de connexion que les visiteurs vont saisir dans le formulaire d'authentification (en te connectant à la base qui les contient et en récupérant les variables, en début de script).
L'authentification se passe en plusieurs temps, le visiteur appelle un fichier protégé, il est redirigé automatiquement sur le fichier d'authentification (authentification.php, par exemple) et le formulaire d'authentification s'affiche ainsi que le lien vers la page d'inscription (inscription.php), dans le même temps le script se connecte à la Bdd et récupère les variables de connexion.
Grâce à ce script :
<?php session_start(); if (!isset($_SESSION['login'])) { header(location:("authentification.php")); } exit; ?>
S'il est déjà inscrit, il s'authentifie, le script compare les variables de connexion et il peut accéder aux pages protégées.
Une fois loggé, il peut accéder à toutes les pages protégées sans avoir à s'authentifier à nouveau.
S'il n'est pas encore inscrit, il clique sur le lien pour ouvrir le formulaire d'inscription situé dans un autre fichier (inscription.php).
Tu dois pouvoir mettre le formulaire d'inscription dans le même fichier que le formulaire d'authentification en mettant une condition du genre :
//Déclaration de la variable $action $action=$_REQUEST['action']; //Le lien : <a href="?action=inscription">Inscription</a> //La condition : if ($action=="inscription"){ //Puis le formulaire d'inscription }
mais je trouve que c'est plus simple et plus clair comme ça pour commencer, à toi de voir.
Bon courage.
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
17 avril 2006 à 10:59
17 avril 2006 à 10:59
...
y a un autre problème que je n'avais pas encore remarqué
j'arrive même pas à m'inscrire....
voilà le formulaire d'inscription:
et ajoutmembre.php:
en fait je crois que le problème ici, vinet de action dans inscription.php, mais après inscription, le visiteur doit être redirigé vers une autre page qui lui envoie un mail de confirmation...
(y a bcp de prob, mais...)
y a un autre problème que je n'avais pas encore remarqué
j'arrive même pas à m'inscrire....
voilà le formulaire d'inscription:
<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['motdepasse']) && !empty($_POST['motdepasse'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['motdepasse'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('localhost', 'root', ''); mysql_select_db ('site', $base); // on recherche si ce login est déjà utilisé par un autre membre $sql = 'SELECT count(*) FROM membres WHERE login="'.addslashes($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $sql = 'INSERT INTO membres VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['motdepasse'])).'", "'.addslashes($_POST['email']).'", "'.addslashes($_POST['pays']).'", "'.addslashes($_POST['sexe']).'", "'.addslashes($_POST['jour']).'", "'.addslashes($_POST['mois']).'", "'.addslashes($_POST['annee']).'", "'.addslashes($_POST['lien']).'", "'.addslashes($_POST['statut']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; header('Location: ajoutmembre.php'); exit(); } else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <?php include("haut.php") ?> <?php include("menu.php") ?> <div id="corps"> <form action="post" method="ajoutmembre.php"> Pour t'inscrire, il faut obligatoirement que tu remplisses tous les champs suivants :</p> Nom : <input type="text" name="nom"> </p> Prénom : <input type="text" name="prenom"> </p> E-mail : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo stripslashes(htmlentities(trim($_POST['email']))); ?>"> </p> Choisis un login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>"> </p> Mot de passe : <input type="password" name="motdepasse" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['motdepasse']))); ?>"> </p> Retape le mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['pass_confirm']))); ?>"> </p> Pays : <select name="pays"> <optgroup label="Europe"> <option value="belgique">Belgique</option> <option value="france">France</option> <option value="hollande">Hollande</option> <option value="espagne">Espagne</option> <option value="italie">Italie</option> <option value="royaumeuni">Royaume-Uni</option> </optgroup> <optgroup label="Amérique"> <option value="canada">Canada</option> <option value="etatsunis">Etats-Unis</option> </optgroup> <optgroup label="Asie"> <option value="chine">Chine</option> <option value="japon">Japon</option> </optgroup> <optgroup label="Afrique"> <option value="maroc">Maroc</option> <option value="congo">Congo</option> </optgroup> </select> </p> Date de naissance : <select name="jour"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select name="mois"> <option value="janvier">janvier</option> <option value="fevrier">février</option> <option value="mars">mars</option> <option value="avril">avril</option> <option value="mai">mai</option> <option value="juin">juin</option> <option value="juillet">juillet</option> <option value="aout">août</option> <option value="septembre">septembre</option> <option value="octobre">octobre</option> <option value="novembre">novembre</option> <option value="decembre">decembre</option> </select> <select name="annee"> <option value="2006">2006</option> <option value="2005">2005</option> <option value="2004">2004</option> <option value="2003">2003</option> <option value="2002">2002</option> <option value="2001">2001</option> <option value="2000">2000</option> <option value="1999">1999</option> <option value="1998">1998</option> <option value="1997">1997</option> <option value="1996">1996</option> <option value="1995">1995</option> <option value="1994">1994</option> <option value="1993">1993</option> <option value="1992">1992</option> <option value="1991">1991</option> <option value="1990">1990</option> <option value="1989">1989</option> <option value="1988">1988</option> <option value="1987">1987</option> <option value="1986">1986</option> <option value="1985">1985</option> <option value="1984">1984</option> <option value="1983">1983</option> <option value="1982">1982</option> <option value="1981">1981</option> <option value="1980">1980</option> <option value="1979">1979</option> <option value="1978">1978</option> <option value="1977">1977</option> <option value="1976">1976</option> <option value="1975">1975</option> <option value="1974">1974</option> <option value="1973">1973</option> <option value="1972">1972</option> <option value="1971">1971</option> <option value="1970">1970</option> <option value="1969">1969</option> <option value="1968">1968</option> <option value="1967">1967</option> <option value="1966">1966</option> <option value="1965">1965</option> <option value="1964">1964</option> <option value="1963">1963</option> <option value="1962">1962</option> <option value="1961">1961</option> <option value="1960">1960</option> <option value="1959">1959</option> <option value="1958">1958</option> <option value="1957">1957</option> <option value="1956">1956</option> <option value="1955">1955</option> <option value="1954">1954</option> <option value="1953">1953</option> <option value="1952">1952</option> <option value="1951">1951</option> <option value="1950">1950</option> <option value="1949">1949</option> <option value="1948">1948</option> <option value="1947">1947</option> <option value="1946">1946</option> <option value="1945">1945</option> <option value="1944">1944</option> <option value="1943">1943</option> <option value="1942">1942</option> <option value="1941">1941</option> <option value="1940">1940</option> <option value="1939">1939</option> <option value="1938">1938</option> <option value="1937">1937</option> <option value="1936">1936</option> <option value="1935">1935</option> <option value="1934">1934</option> <option value="1933">1933</option> <option value="1932">1932</option> <option value="1931">1931</option> <option value="1930">1930</option> <option value="1929">1929</option> <option value="1928">1928</option> <option value="1927">1927</option> <option value="1926">1926</option> <option value="1925">1925</option> <option value="1924">1924</option> <option value="1923">1923</option> <option value="1922">1922</option> <option value="1921">1921</option> <option value="1920">1920</option> <option value="1919">1919</option> <option value="1918">1918</option> <option value="1917">1917</option> <option value="1916">1916</option> <option value="1915">1915</option> <option value="1914">1914</option> <option value="1913">1913</option> <option value="1912">1912</option> <option value="1911">1911</option> <option value="1910">1910</option> <option value="1909">1909</option> <option value="1908">1908</option> <option value="1907">1907</option> <option value="1906">1906</option> <option value="1905">1905</option> <option value="1904">1904</option> <option value="1903">1903</option> <option value="1902">1902</option> <option value="1901">1901</option> <option value="1900">1900</option> </select> </p> Tu es : <input type="radio" name="sexe" value="homme"> un homme <input type="radio" name="sexe" value="femme"> une femme </p> <input type="hidden" name="statut" value="0"> <!-- pour créer une chaine aléatoire --> <?php $tab=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'); ?> <?php $chaine=''; for ($i=0;$i<50;$i++) { $offset=rand(0,35); $chaine=$chaine . $tab[$offset]; } ?> <input type="hidden" name="lien" value="<?php echo $chaine ?>" /> <!-- le code suivant pour tester si on a validé le formulaire --> <input type="submit" name="inscription" value="Inscription"> </form> <!-- ici s'affichera (l'éventuelle) erreur --> <?php if (isset($erreur)) echo '<br />',$erreur; ?> </div> <?php include("bas.php") ?>
et ajoutmembre.php:
<?php //Envoi du mail de confirmation. $sujet='Inscription au site de Dj Maxou'; $message= 'Bonjour '.$login.'\n\nTu viens de t\'inscrire sur le site de Dj Maxou et pour valider ton inscription, tu dois cliquer sur le lien suivant : <a href="http://membres.lycos.fr/newdjmaxou/validation.php?lien='.$lien.'">cliques ici</a>'; $headers ='From: "Dj Maxou"<webmaster@djmaxou.net>'."\n"; mail($email, $sujet, $message, $headers) ?> <?php include("haut.php") ?> <?php include("menu.php") ?> <div id="corps"> Tu devrait reçevoir un e-mail pour valider ton inscription. Si tu ne cliques pas sur le lien avant une semaine, tu devras te réinscrire. </div> <?php include("bas.php") ?>
en fait je crois que le problème ici, vinet de action dans inscription.php, mais après inscription, le visiteur doit être redirigé vers une autre page qui lui envoie un mail de confirmation...
(y a bcp de prob, mais...)
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
17 avril 2006 à 11:20
17 avril 2006 à 11:20
Je pense que pour commencer, tu devrais faire simple, d'abord un formulaire d'inscription avec deux champs, puis si ça marche, tu ajoutes le mail de confirmation, et ainsi de suite.
Tu trouverais plus facilement les problèmes, et pour t'aider c'est plus facile à déchiffrer.
Tu trouverais plus facilement les problèmes, et pour t'aider c'est plus facile à déchiffrer.
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
17 avril 2006 à 15:32
17 avril 2006 à 15:32
je cais essayer, mais ça risque d'être long...
Bonjour à tous.
rien à voir avec les sessions, mais pourquoi pour les selects n'utilises-tu pas les 'for'.
Tu as un gains de place plus important ( 4 lignes au lieu de ..... )
au lieu de :
** De même pour l'année :
Par contre pour les mois, si tu les utilisent dans plusieurs pages, met les dans un array dans un fichier distinct que tu pourra appeller de n'importe où avec un include:
SALUTATIONS DISTINGUEES
CANIBAL_BOX
rien à voir avec les sessions, mais pourquoi pour les selects n'utilises-tu pas les 'for'.
Tu as un gains de place plus important ( 4 lignes au lieu de ..... )
<select name="jour" size="1"> <?php for ($x=1; $x<=31 ; $x++) { echo '<option value="'.$x.'">'.$x.'</option>'; } ?> </select>
au lieu de :
<select name="jour"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select>
** De même pour l'année :
<select name="annee" size="1"> <?php for ($x=2006; $x>=1900 ; $x--) { echo '<option value="'.$x.'">'.$x.'</option>'; } ?> </select>
Par contre pour les mois, si tu les utilisent dans plusieurs pages, met les dans un array dans un fichier distinct que tu pourra appeller de n'importe où avec un include:
SALUTATIONS DISTINGUEES
CANIBAL_BOX
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
2 janv. 2007 à 20:02
2 janv. 2007 à 20:02
ok merci
15 avril 2006 à 22:49