Formulaire : Nom de champs directement transformé en variable

Signaler
Messages postés
14
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
12 juillet 2006
-
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008
-
Bonjour, j previens j suis un noob en php,

je suis les exercicss d'un livre pour apprendre les bases de php avant de m envoler moi meme ds mes propres codes sources...

Cependant, je cale sur un problème (resolu d une certaine maniere, mais qui n'est pas des plus pratique :) )

Je construit un formulaire relatant une bibliothèque: on entre le code isbn, le nom , l auteur et le prix du livre. Chaque champs porte un nom specifique.

Ds mon book php, leur code reprend directement le nom des champs en tant que variable sans specialement passé par un $_POST();

Voyez plutot:

ceci est mon formulaire:
<form action="add_book.php" method="post">
ISBN, ,
----
Author, ,
----
Title, ,
----
Price €, ,
----


</form>

PS: que je mette des quotes ou des guillemets ou meme rien du tout aux noms des propriétés (ex: name='title' ou name="title" ou name=title) , ca ne change rien au problème

Et voici le code de add_book.php d'apres le livre(même si un peu modifié par moi même:

<?

if (!$isbn || !$author || !$title || !$price)
{
echo "You have not entered all the required details.
"
."Please go back and try again.";
exit;
}

$isbn = addslashes($isbn);
$author = addslashes($author);
$title = addslashes($title);
$price = doubleval($price);

@ $db = mysql_pconnect("localhost", "root", "", "books");

if (!$db)
{
echo "Error: Could not connect to database. Please try again later.";
exit;
}

$query = "insert into books values ('".$isbn."', '".$author."', '".$title."', '".$price."')";
$result = mysql_db_query("books",$query);
if ($result)
echo mysql_affected_rows()." book inserted into database.";
?>

Si j utilise ce code il me met une erreur de ce type : NOTICE: Undefined variable: isbn in c:\laurent\easyphp1-7\www\bookorama\add_book.php on line 10

Par contre ca marche si je met
$isbn = $_POST['isbn'];
$author = $_POST['author'];
$title = $_POST['title'];
$price = $_POST['price'];
au debut de mon code
Puiske ds ce cas il reprend bien les valeur des champs d apres leur nom.

Mais ma question est là: comment transformer les valeurs en variable a partir de leur nom de champs sans passer par un $_POST[];????

Dois je configurer mon fichier PHP.ini? si ui comment?
Changer la cfg d'Apache?

Ne me dites pas que c pas possible, puiske le codeur du livre y arrive bien(j vois mal l interet de montrer des sources ki marchent pas aux lecteurs). Version 4 de php.

J'oubliais de dire ke je test mes codes sur EASY PHP 1.7 => version 4 de php lui aussi.

-----------------------------
Just me! Not another...

5 réponses

Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008

Salut

c possible mais....

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global. C'est à dire séparément des tableaux $_POST et $HTTP_POST_VARS


donc register_global pour toi est à "off" et si tu veut ne plu mettre $_post faut la mettre à "on"

toutefois, le meilleurs conseil que je puisse te donner c de la laisser tel quel et continuer à utiliser les $_post et $_get c mieux niveaux securite

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008

re salut

va voir cette source

regle de la bonne programmation de GRenard qui a mon avis est pas mal!!! (meme un peu mieux que pas mal :) )

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
Messages postés
14
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
12 juillet 2006

MERCI LES GENS!!!!!
__________________
Just me! Not another...
Messages postés
14
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
12 juillet 2006

Merci ehmarc pour le lien ;) t as tué mec! héhé

__________________
Just me! Not another...
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008

:big) mon 100 ieme message !!!!!

sur la bonne réponse met réponse accepter stp!!!! :blush)

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)