[PROB]Formulaire: transformer nom de champs en variable directement
cs_fluR
Messages postés14Date d'inscriptionmardi 23 décembre 2003StatutMembreDernière intervention12 juillet 2006
-
21 oct. 2004 à 14:45
cs_lotr
Messages postés128Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention12 août 2005
-
21 oct. 2004 à 19:54
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();
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;
}
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...
A voir également:
[PROB]Formulaire: transformer nom de champs en variable directement
cs_lotr
Messages postés128Date d'inscriptionmardi 11 mai 2004StatutMembreDernière intervention12 août 2005 21 oct. 2004 à 19:54
Bonsoir,
ton bouquin travaille avec les variables globales à ON dans le php.ini
Or, sur easyphp 1.7, les variables globales sont à OFF par défaut (ce qui est beaucoup mieux du point de vue de la sécurité).
Pour t'en convaincre, voici un petit article.
Donc, deux solutions :
- tu passes register_globals à ON dans php.ini (c'est mal !!)
- tu rajoute les $_POST[], $_GET[] et autres ... tu trouveras des exemples commentés ici.