$_POST pour acces à base de données [Résolu/Fermé]

Signaler
Messages postés
143
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
14 mai 2019
-
Messages postés
77
Date d'inscription
vendredi 16 septembre 2011
Statut
Membre
Dernière intervention
6 juillet 2012
-
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

Messages postés
77
Date d'inscription
vendredi 16 septembre 2011
Statut
Membre
Dernière intervention
6 juillet 2012
12
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());
Messages postés
143
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
14 mai 2019
21
ç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
Messages postés
77
Date d'inscription
vendredi 16 septembre 2011
Statut
Membre
Dernière intervention
6 juillet 2012
12
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.