$_POST pour acces à base de données
Résolu
trauqnej
Messages postés
162
Statut
Membre
-
rodoplop Messages postés 77 Statut Membre -
rodoplop Messages postés 77 Statut Membre -
Bonjour,
j'aimerais passer par une page nommée 066a.php me demandant (hote,utilisateur,motdepasse) voici le code ci-dessous:
<?php
echo "
<meta http-equiv='Content-Type' content='text/html; charset=utf8'>
<form name='form' action='066.php' method='post'>
<input type='text' name='hote' value='localhost'>
<input type='text' name='utilisateur' value='root'>
<input type='text' name='pwd' value='fred'>
<input type='submit' value='appui'>
"
?>
dans la page 066.php (dont le code se trouve ci-dessous) qui réceptionne les variables, je n'arrive pas à ouvrir la base
jobtiens le message : "êtes-vous bien passés par 066a.php?"
bien que je vois les variable qui s'affiche (grâce à echo)
comment faire pour que cela fonctionne sans avoir à décommenter le trio ($host,$login, $pass) ?
Les mettre en global ? en fait, j'en sais rien.
si vous avez une idée, je suis preneur
<!-- code vu dans php pour les nuls page 66 -->
<?php
$host = $_POST['hote'];
$login = $_POST['utilisateur'];
$pass = $_POST['pwd'];
# $host = 'localhost';
# $login = 'root';
# $pass = 'fred';
#
echo $host,"\n ",$login,"\n ",$pass;
/* Section d'exécution de la requête */
if(@$_GET['form'] == "yes")
{
mysql_connect($host,$login,$pass) or die ("<font color='red'>êtes-vous bien passés par 066a.php?</font>");
j'aimerais passer par une page nommée 066a.php me demandant (hote,utilisateur,motdepasse) voici le code ci-dessous:
<?php
echo "
<meta http-equiv='Content-Type' content='text/html; charset=utf8'>
<form name='form' action='066.php' method='post'>
<input type='text' name='hote' value='localhost'>
<input type='text' name='utilisateur' value='root'>
<input type='text' name='pwd' value='fred'>
<input type='submit' value='appui'>
"
?>
dans la page 066.php (dont le code se trouve ci-dessous) qui réceptionne les variables, je n'arrive pas à ouvrir la base
jobtiens le message : "êtes-vous bien passés par 066a.php?"
bien que je vois les variable qui s'affiche (grâce à echo)
comment faire pour que cela fonctionne sans avoir à décommenter le trio ($host,$login, $pass) ?
Les mettre en global ? en fait, j'en sais rien.
si vous avez une idée, je suis preneur
<!-- code vu dans php pour les nuls page 66 -->
<?php
$host = $_POST['hote'];
$login = $_POST['utilisateur'];
$pass = $_POST['pwd'];
# $host = 'localhost';
# $login = 'root';
# $pass = 'fred';
#
echo $host,"\n ",$login,"\n ",$pass;
/* Section d'exécution de la requête */
if(@$_GET['form'] == "yes")
{
mysql_connect($host,$login,$pass) or die ("<font color='red'>êtes-vous bien passés par 066a.php?</font>");
3 réponses
-
première chose déjà, ta balise meta doit être contenue dans un head d'une page html, non directement avant ton formulaire
ton formulaire est soumis en post et non en GET
si tu veux être sûr que tu arrive sur ta page 066.php par ton formulaire remplace
if(@$_GET['form'] == "yes")
par
if(isset($_POST['hote']) AND !empty($_POST['hote']))
Tu test si la variable hote en Post existe (cela signifie que ton formulaire a bien été soumis) et ensuite tu vérifie que cette valeur n'est pas vide avec !empty()
tu peux également le tester sur les deux autre variables.
ensuite, tu peut afficher l'erreur mysql en utilisant
mysql_error()
cela te retournera le message d'erreur que mysql te renvoi.
mysql_connect($host,$login,$pass) or die ("<font color='red'>êtes-vous bien passés par 066a.php?</font><br />Error : ".mysql_error()); -
ça marche, merci.
j'ai dù modifier quelque peut la page066a.php (formulaire) afin d'y rajouter :
<input type='text' name='database' value='aaa'>
<input type='text' name='query' value='SHOW databases'>
parce que sinon, il me mettait une erreur :
Erreur 1065: Query was empty
bien qu'il était intégrer à la page 066.php -
effectivement, sans la totalité de la page, on ne pouvait pas tout débugger d'un coup.
le principal c'est que la réponse soit là. Bon courage pour la suite, n'hésite pas à marquer ton sujet en résolu.