PHP Variable formulaire

Fermé
Karine24 Messages postés 2 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 1 mai 2004 - 1 mai 2004 à 17:16
 thierrydel1 - 12 déc. 2007 à 00:21
Bonjour à tous et à toutes .


Ça fait maintenant 5 ans que je n'ai pas touché à aucune programmation . Hier mon patron m'a demandé de faire un petit site intranet pour pouvoir stocker différente information .
Donc je regarde un peu sur internet , j'apprends le html (que je connaissait déjà pas si mal) et je me retourne vers PHP pour pouvoir créer et gérer une base de donnée .

Ma première étape est de vérifier si la personne à le droit d'accèder à un page (les login et password serait stoker dans ma base de données SQL).

Je commencer par créer un fichier .HTML

<html>
<FORM name="form1" Method="POST" Action="test.php">
Logon: <INPUT type=text size=20 name=user><BR>
Mot de passe : <INPUT type=password size=20 name=pass><BR>

<INPUT type=submit value=Envoyer>

</FORM>
</html>

ensuite je cré le fichier test.php

<?php

// Déclaration des paramètres de connexion

$host = "localhost";

$bdd = "employe";

mysql_connect($host,$user,$pass) or die("Mauvais mot de passe ou vous n'avez pas les accès");

mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");

?>

--------------------------------------

Voila , je sais que mon script est plustôt simple mais peu importe ce que je fais , je suis incapable de récupérer mes variables de mon formulaires .
Erreur : Notice: Undefined variable: user in test.php

J'ai essayer tous les exemples que j'ai pu trouver sur internet mais sans succes . De plus si j'inscrit directement les informations je suis capable de faire des requêtes SQL.

Merci de bien vouloir m'aider :) HELP hihihi
A voir également:

8 réponses

www.edetmoi.com
1 mai 2004 à 17:48
Salut

Commece déjà par mettre les valeur des attribut entre guillemets :

<FORM name="form1" Method="POST" Action="test.php">
Logon: <INPUT type="text" size="20" name="user"><BR>
Mot de passe : <INPUT type="password" size="20" name="pass"><BR>

<INPUT type="submit" value="Envoyer">

</FORM>

Ca, c'est juste pour avoir un code + propre.
Ensuite, dans ton fichier cible php tu captes tes résulats dans les variables de récup :
$username = $HTTP_POST_VAR("user");
et
$motdepasse = $ HTTP_POST_VARS("password");


tu passe ces variables en requette sql pour vérifier leur présence conjointe dans la base et ainsi tu sais si l'identification est valide ou pas

Ed.
0
www.edetmoi.com
1 mai 2004 à 17:52
Au fait,

dans ce cas ci : mysql_connect($host,$user,$pass)

$user et $pass sont ceux des seules personnes autorisée à accéder à la base sql (donc définit par l'administrateur lui-même) et no pas des gens enregistrées dans une table de la base.

Par prudence, mieux vaut utiliser des variable au nom bien différent
0
Karine24 Messages postés 2 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 1 mai 2004
1 mai 2004 à 18:06
Wow , c'est super :)

Merci pour les conseils .
$HTTP_POST_VAR sert à récupérer les variables ?

Voila , il me reste toujours 2 erreurs , mais au moin j'avance grace a votre aide :D

Notice: Array to string conversion
Fatal error: Call to undefined function: array()

La vie est pas facile :)
Voila je me remets a mon code pour essayer de trouver la raison . merci beaucoup :)
0
Salut
g le meme probleme que toi il me reste les deux erreurs

Array to string conversion
Fatal error: Call to undefined function: array()


as tu trouvé une solution ? ca m'interresse

merci d'avance


a plus
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 avril 2005 à 19:28
Surement parce que vous avez recopiée betement (je ne critique pas mais juste parce que ca m'arrive souvent) : le premier $_HTTP_POST_VAR doit être corrigé en $_HTTP_POST_VARS.
et voilà !

++
0
www.edetmoi.com
1 mai 2004 à 19:28
voici une méthode que j'utilise pour les connections à la base

1 - définition de la fonction de connection (dans fichier externe de pref)
function Connect2MyBase( $base, $host, $login, $password)
{
$link = mysql_connect( "$host", "$login", "$password" ) ;
if ( ! $link ) die(" Impossible de se connecter à MySql" ) ;
mysql_select_db( "$base",$link ) or die( "Impossible d'ouvrir $db: ".mysql_error()) ;
return( $link ) ;
}

2 - appel de la fonction, depuis n'importe quelle page, selon les besoin, en faisant un simple include du fichier externe où sera écrit la fonction citée plus haut
require("fonctions.php");
$lets_go= Connect2MyBase( HOST_BASE, HOST_NAME, HOST_LOGIN, HOST_PASSW );


Avec ça, la connection se fait sans problème, à condition de définir correctement les parametres HOST_BASE, HOST_NAME, HOST_LOGIN et HOST_PASSW

Dans mon cas, j'utilise une fonction define en amont de la fonction Connect2MyBase

Dans ton cas, initialise ces paramètres selon les éléments récupéré via le formulaire.
Cela donnerait, dans le fichier cible de ton formulaire (on oublie pour l'instant l'histoire des fichiers externes et des includes)

function Connect2MyBase( $base, $host, $login, $password)
{
$link = mysql_connect( "$host", "$login", "$password" ) ;
if ( ! $link ) die(" Impossible de se connecter à MySql" ) ;
mysql_select_db( "$base",$link ) or die( "Impossible d'ouvrir $db: ".mysql_error()) ;
return( $link ) ;
}

HOST_BASE = "employe";
HOST_NAME = "localhost";
HOST_LOGIN = $HTTP_POST_VAR("user");
HOST_PASSW = $HTTP_POST_VAR("password");

$lets_go = Connect2MyBase( HOST_BASE, HOST_NAME, HOST_LOGIN, HOST_PASSW );



Et voilà !

Le tour est joué, à condition, je le répête, que les valeurs saisies dans les champs "user" et "password" soient bien ceux de personnes autorisée à accéder à la base de données "employe".

Bon courage !

Ed.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zdoobz Messages postés 33 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 26 novembre 2009
20 avril 2005 à 18:00
<=> $_POST['varsansledollar']
0
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
20 avril 2005 à 18:05
$_POST['varsansledollar']
+1

je trouve plus simple de l'utiliser comme cela. et pour la méthode GET :
<?
$var = $_GET['var'];
?>
0
beeboo Messages postés 27 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 9 mai 2005 8
20 avril 2005 à 21:09
Depuis PHP4, $HTTP_POST_VAR et $HTTP_GET_VAR, bien que toujours utilisables, sont devenues obsolètes. Il est conseillé d'utiliser $_POST et $_GET (et en plus, c'est plus court)
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 avril 2005 à 21:13
Non seulement, mais ca ne dispense pas de mettre la bonne orthographe
;)

$_HTTP_POST_VARS['bidule'];
ou
$_POST['bidule']

++
0
bonjour j'ai le même probleme mé moi il me genere
Fatal error: Call to undefined function: array() in c:\program files\easyphp1-7\php_fich\connexion.php on line 15
kelkun peut m'aider
0
bonjour
pour pouvoir mieux faire , il faut prendre une application déjà prête , comme sur le livre des nuls php&msql, il y a un intranet deja a 80% et les code sont disponnible sur le livre , ou le net , vous devez être dans la programmation ne devraient pas poser de problèmes! il ne faut pas réinventer la roue, car elle est déjà là c'est un bon livre
-1