$_POST pour acces à base de données

Résolu/Fermé
trauqnej Messages postés 154 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 5 septembre 2022 - 17 sept. 2011 à 11:17
rodoplop Messages postés 77 Date d'inscription vendredi 16 septembre 2011 Statut Membre Dernière intervention 6 juillet 2012 - 17 sept. 2011 à 12:46
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>");



3 réponses

rodoplop Messages postés 77 Date d'inscription vendredi 16 septembre 2011 Statut Membre Dernière intervention 6 juillet 2012 12
17 sept. 2011 à 11:28
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());
0
trauqnej Messages postés 154 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 5 septembre 2022 23
17 sept. 2011 à 12:29
ç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
0
rodoplop Messages postés 77 Date d'inscription vendredi 16 septembre 2011 Statut Membre Dernière intervention 6 juillet 2012 12
17 sept. 2011 à 12:46
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.
0