Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 11h09   #1
Invité régulier
 
Inscription : juillet 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 58
Points : 9
Points : 9
Par défaut Formulaire d'inscription / validation données

Bonjour et bonne année à tous,
Je viens vers vous car j'ai un problème avec mon formulaire d'inscription, je dois préparer un espace d'authentification et je galère.

Code :
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
 
<?php
if(!empty($_POST['login']) && !empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['titre']))
{
// connexion
mysql_connect("localhost", "root", "");
mysql_select_db("membre");
 
// sécurités 
$pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
$pass2 = mysql_real_escape_string(htmlspecialchars($_POST['pass2']));
if($pass == $pass2)
{
$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$titre = mysql_real_escape_string(htmlspecialchars($_POST['titre']));
// crypter mot de passe
$pass = sha1($pass);
 
mysql_query("INSERT INTO membre VALUES('', '$login', '$pass', '$nom', '$prenom', '$titre')");
}
 
else
{
echo 'Les deux mots de passe que vous avez rentrés ne correspondent pas…';
}
}
?>
 
 
 
    <html>
    <head>
    <title>Inscription</title>
    </head>
 
    <body>
    Inscription  :<br />
    <form method="Inscription.php">
<label>login : <input type="text" name="login"/></label><br/>
<label>Mot de passe : <input type="password" name="pass"/></label><br/>
<label>Confirmation du mot de passe : <input type="password" name="pass2"/></label><br/>
<label>Nom : <input type="text" name="nom"/></label><br/>
<label>Prenom : <input type="text" name="prenom"/></label><br/>
<label>Titre : <input type="text" name="titre"/></label><br/>
<input type="submit" value="M'inscrire"/>
</form>
    </body>
    </html>

Je n'arrive pas à remplir la base dans un premier temps, je ne comprends où peut se situer le problème.

Dans une deuxième temps, je cherche depuis hier à mettre des conditions pour la validation des données, comme un strlen($nom) par exemple.
Je suis perdue dans la logique de l'insertion des conditions en fait. Est-ce que vous pouvez m'aider, me conseiller vers un tuto et un livre qui soit bien construit ?
Merci d'avance pour votre aide !
LiliValerie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 14h02   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Ton formulaire est mal construit : tu as mis method="Inscription.php" alors que cela devrait être :
method="post" action="Inscription.php"Ensuite dans ton code, tu fais mysql_real_escape_string(htmlspecialchars()) : c'est pas très utile.
On utilise htmlspecialchars() pour afficher des carctères spéciaux dans le navigateur tout en leur enlevant leur "sens informatique" qui pourrait être malheureusement interprété par le navigateur, ça n'a généralement rien à voir avec les données de la base.
Enfin, c'est un choix. Il est tout à fait possible de procéder ainsi (même si je le déconseille), c'est juste que tu es amené à mêler données brutes et rendu web dans ta base de données. C'est deux choses différentes, mais bon.
Dans tous les cas, pour échapper tes données mysql c'est mysql_real_escape_string() ou requête préparée (PDO).
Pour les tutoriaux, c'est par ici
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 16h18   #3
Invité régulier
 
Inscription : juillet 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 58
Points : 9
Points : 9
Merci Rawsrc, je vais faire les modifs conseillées.
Pour le tuto, je vais le lire aussi biensûr et je reviendrai avec mes questions certainement !
Merci
LiliValerie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h14.


 
 
 
 
Partenaires

Hébergement Web