A voir également:
- Espace membre php
- Espace insécable word - Guide
- Espace de stockage gmail plein - Guide
- Membre indisponible vinted - Guide
- Easy php - Télécharger - Divers Web & Internet
- Espace stockage google - Guide
21 réponses
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
21 mai 2011 à 17:27
21 mai 2011 à 17:27
si tu ne recois rien, c'est que tu dois retourner a ton formulaire qui envoie les variables.
Nyctaclope
Messages postés
5315
Date d'inscription
dimanche 6 avril 2008
Statut
Membre
Dernière intervention
11 décembre 2022
1 253
Modifié par Nyctaclope le 19/05/2011 à 19:33
Modifié par Nyctaclope le 19/05/2011 à 19:33
Bonjour
Ton script teste s'il a été répondu correctement à un questionnaire.
Mais as tu bien créé ce questionnaire, dans la même page, ou une autre, renvoyant les données POST vers ta page de test ?
A+
Nyctaclope
Le plus joli des poèmes de la mathématique : e^(i.PI)=i^2
trois nombres "sacrés" d'horizons différents qui se donnent la main ...
Ton script teste s'il a été répondu correctement à un questionnaire.
Mais as tu bien créé ce questionnaire, dans la même page, ou une autre, renvoyant les données POST vers ta page de test ?
A+
Nyctaclope
Le plus joli des poèmes de la mathématique : e^(i.PI)=i^2
trois nombres "sacrés" d'horizons différents qui se donnent la main ...
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
Modifié par guy2mars le 19/05/2011 à 22:26
Modifié par guy2mars le 19/05/2011 à 22:26
Bonsoir
il n'y a aucun défaut à être débutant. On l'a tous été un jour et on l'est toujours.
Normalement, tu dois avoir une page formulaire ou, entre tes balises <form></form> tu entres toutes tes variables.
dans ta balise <form> tu mets en action la page où tu envoies tes variables(control.php) et en method post.
dans ta page control.php, tu controles la validité et la cohérence des variables postées, puis si tu veux inscrire ou lire dans une base, n'oublie pas de te connecter à cette base......
d'autre part, mysql_escape_string est obsolète, il est recommandé de lui préférer mysql_real_escape_string mais pourquoi ne pas utiliser simplement mysql_query?
de plus, tu déclares des variables $erreur et t'en fais quoi?
bon courage
il n'y a aucun défaut à être débutant. On l'a tous été un jour et on l'est toujours.
Normalement, tu dois avoir une page formulaire ou, entre tes balises <form></form> tu entres toutes tes variables.
dans ta balise <form> tu mets en action la page où tu envoies tes variables(control.php) et en method post.
dans ta page control.php, tu controles la validité et la cohérence des variables postées, puis si tu veux inscrire ou lire dans une base, n'oublie pas de te connecter à cette base......
d'autre part, mysql_escape_string est obsolète, il est recommandé de lui préférer mysql_real_escape_string mais pourquoi ne pas utiliser simplement mysql_query?
de plus, tu déclares des variables $erreur et t'en fais quoi?
bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
20 mai 2011 à 18:16
20 mai 2011 à 18:16
ta requete est fausse
faut mettre :
$sql = 'INSERT INTO membres (champ1,champ2,champ3) VALUES("", "$_POST['login'])","$_POST['passe']")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
en plus, a ta place, je mettrais les $_POST en $variable, c'est plus facile pour la gestion des cotes, double-cotes dans la requete insert.
@+
faut mettre :
$sql = 'INSERT INTO membres (champ1,champ2,champ3) VALUES("", "$_POST['login'])","$_POST['passe']")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
en plus, a ta place, je mettrais les $_POST en $variable, c'est plus facile pour la gestion des cotes, double-cotes dans la requete insert.
@+
la j'ai un Parse error: syntax error, unexpected T_STRING in C:\wamp\www\4lastwar\inscription.php on line 12
avec ma requete
$sql = 'INSERT INTO membres (login,passe,mail) VALUES("", "$_POST['login'])","$_POST['mail'])","$_POST['passe']")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
avec ma requete
$sql = 'INSERT INTO membres (login,passe,mail) VALUES("", "$_POST['login'])","$_POST['mail'])","$_POST['passe']")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
20 mai 2011 à 19:31
20 mai 2011 à 19:31
ben oui...
essaie de faire
$passe=$_POST['passe'];
$login=$_POST['login'];
mais c'est redondant car le $_POST[login'] est déjà = $login
pour moi, ta requete serait
$sql="insert into membres(login, passe,mail) values ('$login','$passe','')";
$exec=mysql_query($sql);
quant au $data = mysql_fetch_array($req);, je ne vois pas ce qu'il vient faire dans le coup....
tu fais une commande insert, pas select... tu n'auras pas de message d'erreur, mais ca sert à rien.
@+
essaie de faire
$passe=$_POST['passe'];
$login=$_POST['login'];
mais c'est redondant car le $_POST[login'] est déjà = $login
pour moi, ta requete serait
$sql="insert into membres(login, passe,mail) values ('$login','$passe','')";
$exec=mysql_query($sql);
quant au $data = mysql_fetch_array($req);, je ne vois pas ce qu'il vient faire dans le coup....
tu fais une commande insert, pas select... tu n'auras pas de message d'erreur, mais ca sert à rien.
@+
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
20 mai 2011 à 19:56
20 mai 2011 à 19:56
ben c'est normal ca... tu demandes a ton code php d'aller ecrire, il ecrit, de controler, il controle, mais tu ne lui demandes pas d'afficher un truc.
fais dans ta feuille, au début, un echo "login".$login."<br>";
echo "passe".$passe."<br>";
puis avant le mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); echo "ma requete".$sql."OK?<br>";
tu auras des machins
le fait de ne pas avoir de message d'erreur est bon signe non?
fais dans ta feuille, au début, un echo "login".$login."<br>";
echo "passe".$passe."<br>";
puis avant le mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); echo "ma requete".$sql."OK?<br>";
tu auras des machins
le fait de ne pas avoir de message d'erreur est bon signe non?
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
20 mai 2011 à 20:56
20 mai 2011 à 20:56
as tu fait les echos? as tu bien les variables transmises ?
dans ta table, as tu des null interdits etc... faut verifier
@+
dans ta table, as tu des null interdits etc... faut verifier
@+
Voila le code ^^ :
<?php include('configuration.php'); if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['passe']) && !empty($_POST['passe'])) && (isset($_POST['mail']) && !empty($_POST['mail'])) && (isset($_POST['passe2']) && !empty($_POST['passe_2']))) { if ($_POST['passe'] != $_POST['passe2']) { $erreur = 'Les 2 mots de passee sont différents.'; } else { $sql="insert into membres(login, passe,mail) values ('$login','$passe','')"; $exec=mysql_query($sql); if ($data[0] == 0) { $sql = 'INSERT INTO membres VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['passe']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; echo("L'inscription c'est bien derouler vous pouvez vous connecter"); ?> <a href="index.html">ici</a> <?php exit(); } else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Vous avez oublier un champ'; } ?>
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
20 mai 2011 à 22:49
20 mai 2011 à 22:49
je pense m'etre mal fait comprendre.
tu dois situer la cause de tes erreurs.
tu as 2 possibilites
soit ta page ne recoit pas les variables emises par ton form method='post'
tu dois tester ces variables avec un echo
soit tu recois ces variables et tu n'arrives pas a les ecrire dans ta table.
tu dois avoir un blocage a ce niveau (champ int recoit deschar, etc0..)
teste tes inscriptions dans ta base pour savoir ou ca bloque
@+
tu dois situer la cause de tes erreurs.
tu as 2 possibilites
soit ta page ne recoit pas les variables emises par ton form method='post'
tu dois tester ces variables avec un echo
soit tu recois ces variables et tu n'arrives pas a les ecrire dans ta table.
tu dois avoir un blocage a ce niveau (champ int recoit deschar, etc0..)
teste tes inscriptions dans ta base pour savoir ou ca bloque
@+
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
Modifié par guy2mars le 21/05/2011 à 08:51
Modifié par guy2mars le 21/05/2011 à 08:51
<?php
include('configuration.php');
$host="hebergeur";
$user = "login_admin";
$bdd = "Nom_de_la_base";
$passwd ="password";
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['passe']) && !empty($_POST['passe'])) && (isset($_POST['mail']) && !empty($_POST['mail'])) && (isset($_POST['passe2']) && !empty($_POST['passe_2'])))
{
if ($_POST['passe'] != $_POST['passe2'])
{
$erreur = 'Les 2 mots de passe sont différents.';
}
else
{
if ($data[0] == 0)
{
// Connexion au serveur
$connect=mysql_connect($host, $user,$passwd) or die(mysql_error());
$bdd=mysql_select_db($bdd) or die(mysql_error());
$sql="insert into membres(login, passe,mail) values ('$login','$passe','')";
$exec=mysql_query($sql);
session_start();
$_SESSION['login'] = $_POST['login'];
echo "L'inscription c'est bien deroulée vous pouvez vous connecter<br>
<a href="index.html">ici</a>";
exit();
}
else
{
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else
{
$erreur = 'Vous avez oublié un champ';
}
?>
Habitué du "je sais pas pourquoi ca marche" et du "pourquoi ca marche pas?"
include('configuration.php');
$host="hebergeur";
$user = "login_admin";
$bdd = "Nom_de_la_base";
$passwd ="password";
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['passe']) && !empty($_POST['passe'])) && (isset($_POST['mail']) && !empty($_POST['mail'])) && (isset($_POST['passe2']) && !empty($_POST['passe_2'])))
{
if ($_POST['passe'] != $_POST['passe2'])
{
$erreur = 'Les 2 mots de passe sont différents.';
}
else
{
if ($data[0] == 0)
{
// Connexion au serveur
$connect=mysql_connect($host, $user,$passwd) or die(mysql_error());
$bdd=mysql_select_db($bdd) or die(mysql_error());
$sql="insert into membres(login, passe,mail) values ('$login','$passe','')";
$exec=mysql_query($sql);
session_start();
$_SESSION['login'] = $_POST['login'];
echo "L'inscription c'est bien deroulée vous pouvez vous connecter<br>
<a href="index.html">ici</a>";
exit();
}
else
{
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else
{
$erreur = 'Vous avez oublié un champ';
}
?>
Habitué du "je sais pas pourquoi ca marche" et du "pourquoi ca marche pas?"
J'ai fais des var_dump qui ne me renvoie rien non plus
<?php $host="localhost"; $user = "root"; $bdd = "test"; $passwd =""; if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['passe']) && !empty($_POST['passe'])) && (isset($_POST['mail']) && !empty($_POST['mail'])) && (isset($_POST['passe2']) && !empty($_POST['passe_2']))) { if ($_POST['passe'] != $_POST['passe2']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { if ($data[0] == 0) { $connect=mysql_connect($host, $user,$passwd) or die(mysql_error()); $bdd=mysql_select_db($bdd) or die(mysql_error()); $sql="insert into membres(login, passe,mail) values ('$login','$passe','')"; $exec=mysql_query($sql); session_start(); $_SESSION['login'] = $_POST['login']; echo "L'inscription c'est bien deroulée vous pouvez vous connecter"; ?> <a href="index.html">ici</a>"; <?php var_dump($_POST['login']); var_dump($_POST['passe']); var_dump($_POST['mail']); } else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Vous avez oublié un champ'; } ?>
J'ai régler deux trois problème :
mais la j'ai :
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\4lastwar\inscription.php on line 6
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\4lastwar\inscription.php on line 6
Erreur SQL !
SELECT count(*) FROM membres WHERE login="test" AND passe="test"
Access denied for user 'ODBC'@'localhost' (using password: NO)
<?php include 'conf.php'; $sql1 = 'SELECT count(*) FROM membres WHERE login="'.mysql_escape_string($_POST['login']).'" AND passe="'.(mysql_escape_string($_POST['passe'])).'"'; $req = mysql_query($sql1) or die('Erreur SQL !<br />'.$sql1.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['passe']) && !empty($_POST['passe'])) && (isset($_POST['mail']) && !empty($_POST['mail'])) && (isset($_POST['passe2']) && !empty($_POST['passe_2']))) { if ($_POST['passe'] != $_POST['passe2']) { echo'Les 2 mots de passe sont différents.'; } else { if ($data[0] == 0) { $sql="insert into membres(login, passe,mail) values ('$login','$passe','')"; $exec=mysql_query($sql); session_start(); $_SESSION['login'] = $_POST['login']; echo "L'inscription c'est bien deroulée vous pouvez vous connecter"; ?> <a href="index.html">ici</a>"; <?php } else { echo'Un membre possède déjà ce login.'; } } } else { echo'Vous avez oublié un champ'; } ?>
mais la j'ai :
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\4lastwar\inscription.php on line 6
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\4lastwar\inscription.php on line 6
Erreur SQL !
SELECT count(*) FROM membres WHERE login="test" AND passe="test"
Access denied for user 'ODBC'@'localhost' (using password: NO)
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
21 mai 2011 à 18:47
21 mai 2011 à 18:47
tu te connectes quand?????
la : include 'conf.php';
<?php try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=4lastwar', 'root', '', $pdo_options); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?>
guy2mars
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
21 mai 2011 à 20:20
21 mai 2011 à 20:20
OOOOPS
je ne connais rien dans le protocole PDO.
je reconnais mes errements. Désolé de t'avoir fait perdre du temps.
Je crois avoir lu les PDO::prepare et PDO::query qui sont proches du mysql, mais proches seulement
renouvelle ton sujet avec PDO en en tete pour etre explicite
Codialement
je ne connais rien dans le protocole PDO.
je reconnais mes errements. Désolé de t'avoir fait perdre du temps.
Je crois avoir lu les PDO::prepare et PDO::query qui sont proches du mysql, mais proches seulement
renouvelle ton sujet avec PDO en en tete pour etre explicite
Codialement
<?php // Parametres de connexion à la base de données $BD_serveur = "localhost"; $BD_utilisateur = "root"; $BD_motDePasse = ""; $BD_base = "4lastwar"; if ((empty($_POST['login'])) || (empty($_POST['passe'])) || (empty($_POST['mail'])) || (empty($_POST['passe2']))) { echo"Vous avez oublier un champ !"; } else { // Récupération des paramètres POST $login = $_POST["login"]; $passe = $_POST["passe"]; $passe2 = $_POST["passe2"]; $mail = $_POST["mail"]; //vérifier les mot de passe if ($_POST['passe'] != $_POST['passe2']) { echo'les deux mot de passe sont différent. '; } else { $x = mysql_query("SELECT * FROM membres WHERE login='",$login,"'"); if (mysql_result($x,0) != 0) { echo"un membre a déjà ce pseudo"; } else { //connexion mysql mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse) or die("Impossible de se connecter au serveur de bases de données."); mysql_select_db($BD_base) or die("Impossible de se connecter à la base de données."); //requete $requete = "INSERT INTO membres (login, passe, mail) VALUES ('$login', '$passe','$mail')"; $result = @mysql_query($requete); } } //verification de l'ajout a la bdd if (!$result) { echo "Votre inscription a echoué <br />"; } else { echo "Félicitations. Vous êtes desormais un nouveau membre de 4lastwar!". "<br />"; } } ?>
voila c'est déjà mieu mais il reste un bug a la ligne 28 29 :
Warning: Wrong parameter count for mysql_query() in C:\wamp\www\4lastwar\inscription.php on line 28 Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\4lastwar\inscription.php on line 29