Problème requête SQL et formulaire
Résolu
cayoul
Messages postés
20
Statut
Membre
-
cayoul Messages postés 20 Statut Membre -
cayoul Messages postés 20 Statut Membre -
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();
}
?>
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();
}
?>
A voir également:
- Problème requête SQL et formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Requete sql pix ✓ - Forum MySQL
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum Access
23 réponses
normal tu n'affiches pas $message, je ne vois pas echo $message nulle part
et ta partie html "merci..." s'affiche dans toius les cas
essayes comme ça et tu verra ou ça coince:
et ta partie html "merci..." s'affiche dans toius les cas
essayes comme ça et tu verra ou ça coince:
<?php
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE["ID"]))
{
header("Location: index.php");
}
else
{
// Vérifie que de bonnes valeurs sont passées en paramètres
if(!ereg("^[0-9]+$", $_GET["id"]) || !ereg("^[a-f0-9]{8}$", strtolower($_GET["clef"])))
{
header("Location: index.php");
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("localhost", "root", "");
mysql_select_db("abc");
// Sélection de l'utilisateur concerné
$result = mysql_query("SELECT ID, Compte_activation, Clef_activation FROM compte_utilisateurs WHERE ID = '" . $_GET["id"] . "'
AND Clef_activation = '" . strtolower($_GET["clef"]) . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de l'activation de votre compte utilisateur";
}
else
{
// Si aucun enregistrement n'est trouvé
if(mysql_num_rows($result) == 0)
{
header("Location: index.php");
}
else
{
// Récupération du tableau de données retourné
$row = mysql_fetch_array($result);
// Vérification que le compte ne soit pas déjà activé
if($row["Compte_activation"] != 0)
{
$message = "Votre compte utilisateur a déjà été activé";
}
else
{
// Activation du compte utilisateur
$result2 = mysql_query("
UPDATE compte_utilisateurs
SET Compte_activation = '1'
WHERE ID = '" . $_GET["id"] . "'
AND Clef_activation = '" . strtolower($_GET["clef"]) . "'
");
// Si une erreur survient
if($result2)
{
$message = "Votre compte utilisateur a correctement été activé";
}
else
{
$message = "Une erreur est survenue lors de l'activation de votre compte utilisateur";
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Validation de l'inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p><?php echo $message; ?>
</p>
</body>
</html>
Bonsoir encore une fois, j'ai désormais trouvé un endroit où exposer tous mes problèmes et même si ça me gêne de vous embêter avec, je préfère ça que d'abandonner mon projet. Cette fois le problème est dans la vérification de l'unicité de l'adresse mail à l'inscription. J'ai le message d'erreur suivant qui apparait:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 61
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 61
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 62
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 62
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 63
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 63
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 64
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 64
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 65
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 65
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 66
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 66
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 67
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 67
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 68
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 68
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 69
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 69
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 70
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 70
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 114
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 114
Access denied for user 'ODBC'@'localhost' (using password: NO)
Mon script marche très bien. Cependant dès que je rajoute la partie vérification de l'unicité ça m'affiche ça. Je vous mets la partie de mon scripts juste en dessous:
// Vérification de l'unicité de l'adresse e-mail
$result3 = mysql_query("
SELECT Email
FROM compte_utilisateurs
WHERE Email = '" . $_POST["email"] . "'
");
// Si une erreur survient
if(!$result3)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result3) > 0)
{
while($row = mysql_fetch_array($result3))
{
if($_POST["email"] == $row["Email"])
{
$message = "Ladresse électronique " . $_POST["email"];
$message .= "est déjà utilisée";
}
Les lignes ont questions dans le message d'erreur sont les suivantes :
//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(md5($_POST['mot_de_passe'])));
$genre=mysql_real_escape_string(htmlspecialchars($_POST['genre']));
$date_de_naissance=mysql_real_escape_string(htmlspecialchars($_POST['jour']));
$code_postal=mysql_real_escape_string(htmlspecialchars($_POST['code_postal']));
$statut=mysql_real_escape_string(htmlspecialchars($_POST['statut']));
$etablissement_scolaire=mysql_real_escape_string(htmlspecialchars($_POST['etablissement_scolaire']));
$niveau=mysql_real_escape_string(htmlspecialchars($_POST['niveau']));
Je le répète encore une fois, mes variables marchent très bien dès que j'enlève la vérification de l'unicité de l'adresse mail.
Merci à tout ceux qui veulent bien m'aider.
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 61
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 61
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 62
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 62
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 63
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 63
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 64
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 64
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 65
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 65
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 66
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 66
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 67
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 67
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 68
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 68
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 69
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 69
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 70
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 70
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\Fuck\inscription.php on line 114
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\Fuck\inscription.php on line 114
Access denied for user 'ODBC'@'localhost' (using password: NO)
Mon script marche très bien. Cependant dès que je rajoute la partie vérification de l'unicité ça m'affiche ça. Je vous mets la partie de mon scripts juste en dessous:
// Vérification de l'unicité de l'adresse e-mail
$result3 = mysql_query("
SELECT Email
FROM compte_utilisateurs
WHERE Email = '" . $_POST["email"] . "'
");
// Si une erreur survient
if(!$result3)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result3) > 0)
{
while($row = mysql_fetch_array($result3))
{
if($_POST["email"] == $row["Email"])
{
$message = "Ladresse électronique " . $_POST["email"];
$message .= "est déjà utilisée";
}
Les lignes ont questions dans le message d'erreur sont les suivantes :
//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(md5($_POST['mot_de_passe'])));
$genre=mysql_real_escape_string(htmlspecialchars($_POST['genre']));
$date_de_naissance=mysql_real_escape_string(htmlspecialchars($_POST['jour']));
$code_postal=mysql_real_escape_string(htmlspecialchars($_POST['code_postal']));
$statut=mysql_real_escape_string(htmlspecialchars($_POST['statut']));
$etablissement_scolaire=mysql_real_escape_string(htmlspecialchars($_POST['etablissement_scolaire']));
$niveau=mysql_real_escape_string(htmlspecialchars($_POST['niveau']));
Je le répète encore une fois, mes variables marchent très bien dès que j'enlève la vérification de l'unicité de l'adresse mail.
Merci à tout ceux qui veulent bien m'aider.