|
|
|
|
Bonjour,
C'est mon premier post sur un forum. Je demande l'aide de qui voudra bien parce que je bloque sur l'écriture d'un script php basique. J'ai un formulaire d'inscription sur index.php et je voudrais créer un site avec authentification et espace personnel (donc chaque utilisateur aurait son profil). Problème: je n'arrive même pas à écrire sur dans ma base de donnée à partir de mon formulaire. Je vous mets donc le formulaire en question, ainsi que la page inscription.php (appelé dans mon formulaire). Chose qui m'embête aussi, c'est que toutes les variables apparaissent dans l'URL comme si j'utilisais la méthode get. Est ce normal ? Merci d'avance de vos aides.
<form name="form1" method="post" action="inscription.php">
<tr>
<td>Nom</td>
<td><input type="text" name="Nom" id="Nom"></td>
</tr>
<tr>
<td>Prénom</td>
<td><input type="text" name="Prenom" id="Prenom"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="Email" id="Email"></td>
</tr>
<tr>
<td>Mot de passe</td>
<td><input type="password" name="Mot_de_passe" id="Mot_de_passe"></td>
</tr>
<tr>
<td id="bouton" height="50" colspan="2">
<input type="submit" name="submit" value="S'inscrire">
</td>
</tr>
</form>
Et inscription.php:
<?php
//Si l'utilisateur a cliqué sur s'inscrire
if(isset($_POST['submit']))
{
//Se connecter à la base
mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("abc");
//je déclare mes variables qui viennent du formulaire
$Nom=$_POST['Nom'];
$Prenom=$_POST['Prenom'];
$Email=$_POST['Email'];
$mdp5=md5($_POST['Mot_de_passe']);
$requete = mysql_query("INSERT INTO user(ID
, Nom
, Prenom
, Mot_de_passe
, Email )
VALUES(''
, '$Nom'
, '$Prenom'
, '$Mot_de_passe'
, '$Email'
)
");
$req = mysql_query($requete) or die (mysql_error());
//se déconnecter de MySQL
mysql_close();
}
?>
Configuration: Windows Vista, WAMP
Merci de vos aides. J'ai essayé d'enlever les id mais ça marche toujours pas. en gros quand je clique sur s'inscrire, ça m'ouvre une nouvelle page toute blanche et ça me passe toutes mes variables dans l'URL. En revanche ça n'écris pas dans ma base de données parce que je vérifie grâce à phpmyadmin. Par contre, quand je tappe ma requête sql directement dans phpmyadmin, là ça marche.
|
Essaie de mettre à la place de ceci dans ta condition if
|
Voici mon nouveau fichier inscription.php:
|
Par contre oui il y a sa mais aussi tu as ce problème: Je te conseille vivement lorsque tu déclare tes variable venant du formulaire de rajouter des paramètres pour sécuriser ta base de donnée. $prenom=mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
|
Tu as une erreur au niveau mot de passe:
|
Merci pour vos remarques. Effectivement c'était à cause de ma variable mot de passe. je vais également profiter de NitroGen pour sécuriser ma base de données. Donc maintenant ça écris enfin dans ma base de donnée. Par contre sur la nouvelle page qui s'affiche il est écrit:
|
En revanche en essayant de sécuriser ma base de données, ça marche plus. Voici ce que j'ai changé dans mon inscription.php:
|
Array
|
Voila le travail par contre je ne peu pas faire le test je n'ai pas la BDD à toi de tester:
<!-- Début formulaire --> <form enctype="multipart/form-data" method="post" action="inscription.php"> <tr> <td>Nom</td> <td><input type="text" name="nom"></td> </tr> <tr> <td>Prénom</td> <td><input type="text" name="prenom"></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email"></td> </tr> <tr> <td>Mot de passe</td> <td><input type="password" name="mot_de_passe"></td> </tr> <tr> <td id="bouton" height="50" colspan="2"> <input type="submit" value="S'inscrire"> </td> </tr> </form> <!-- Fin Formulaire --> page "inscription.php"
<?php
//On vérifie que les variables existent
if (isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['email']) AND isset($_POST['mot_de_passe']) )
{
//On vérifie que les variables contiennent quelques choses ...
if($_POST['nom'] != NULL AND $_POST['prenom']!= NULL AND $_POST['email'] != NULL AND $_POST['mot_de_passe'] != NULL)
{
//Connexion à la BDD MySQL
//Se connecter à la base
mysql_connect("localhost","root","");
mysql_select_db("abc");
//je déclare mes variables qui viennent du formulaire
$nom=mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom=mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$email=mysql_real_escape_string(htmlspecialchars($_POST['email']));
$mdp5=mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
mysql_query("INSERT INTO user (ID, Nom, Prenom, Mot_de_passe, Email ) VALUES('', '$nom', '$prenom', '$mdp5', '$email') ") or die (mysql_error());
//se déconnecter de MySQL
mysql_close();
echo "Inscription prise en compte, merci à vous.";
}
}
else
{
echo "Désolée, Vous n'avez pas rempli tous les champs";
}
?>
Espérant que ce code marche car je viens de l'écrire sur le vif donc à toi de faire le test !. @++ |