Aide pour .php

Résolu/Fermé
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 - 11 août 2009 à 19:15
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 - 11 août 2009 à 21:30
Bonjour,

Je commence tout juste en php... je test un peu faire quelque truc mais là je ne comprend pas ou est mon error:

deux pages .php appel.php et cible.php

appel.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>
Bonjours,<br />
Veuillez taper votre age :
</p>

<form action="cible.php" method="post">
<p>
<input type="text" name="age" /> <input type="submit" value="Valider" />
</p>
</form>
</body>
</html>



résultat:

Bonjours.
Veuillez taper votre age :
[ ] Validé ([ ] zone texte)



cible.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
if ($age <= 12)
{
echo "Salut gamin !";
}
if ($age >= 13)
{
echo "Tu es trop vieu!";
}
?>
</body>
</html>



résultat:


Notice: Undefined variable: age in C:\wamp\www\essai\cible.php on line 9
Salut gamin !
Notice: Undefined variable: age in C:\wamp\www\essai\cible.php on line 13
A voir également:

15 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
11 août 2009 à 19:21
dans cible .php tu ne defini pas ta variable age

rajoute ça au debut de ton fichier

$age = isset($_POST['age']) ? $_POST['age'] : null;


autrement si $_post[age ] existe il prend la valeur de $post[age] sinon il est null
et comme ça plus de probleme de variable indefinie.

Meme si age est vide elle existera mais aura la valeur null
1
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 167
11 août 2009 à 19:38
Oui voila je comprend mieux (je te rassure je fait des testes pour comprendre... ^^)

un autre petit truc, regarde sa:

php:

<?php
$age = isset($_POST['age']) ? $_POST['age'] : null;
if ($age <= 12)
{
echo "Salut gamin !";
}
if ($age >= 13)
{
echo "Tu es trop vieu!";
}
if ($age == NULL)
echo "J'ai demandé ton age!"
?>

J'ai rajouté:

if ($age == NULL)
echo "J'ai demandé ton age!"

quand je met rien j'ai comme résultat

Salut gamin! J'ai demandé ton age!

quand je met rien c'est =0?

Ok..mais comment évité sa?
0
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
11 août 2009 à 19:45
Salut,

remplace par

<?php
$age = isset($_POST['age']) ? $_POST['age'] : null;
if ($age <= 12 & $age =! NULL)
{
echo "Salut gamin !";
}
if ($age >= 13 & $age =! NULL )
{
echo "Tu es trop vieu!";
}
if ($age == NULL)
echo "J'ai demandé ton age!"
?>

Tu peux aussi définir une autre valeur pour age si elle est NULL

ex :

<?php
$age = isset($_POST['age']) ? $_POST['age'] : null;
if ($age == NULL)
{
$age="zéro"
}
if ($age <= 12)
{
echo "Salut gamin !";
}
if ($age >= 13)
{
echo "Tu es trop vieu!";
}
?>

je sais pas si cela marche...
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
11 août 2009 à 19:46
met ça

if(!isset($age) || empty($age)) //si $age est null ou n'existe pas
{
echo 'J'ai demandé ton age!';

}
else
{
//tu affiche ce que tu veut quand l'age est entré
}
0

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

Posez votre question
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 167
11 août 2009 à 19:52
il y a toujours écrit gamin.
0
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
11 août 2009 à 20:02
dans les trois cas ?
0
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 167
11 août 2009 à 20:06
oui
0
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
11 août 2009 à 20:11
Dsl, les opérateurs différent sont erronés pour mon msg et les & aussi :


<?php
$age = isset($_POST['age']) ? $_POST['age'] : null;
if ($age <= 12 && $age != NULL)
{
echo "Salut gamin !";
}
if ($age >= 13  && $age != NULL ) #inutile à prioris!
{
echo "Tu es trop vieu!";
}
if ($age == NULL)
{
echo "J'ai demandé ton age!"
}
?> 

0
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 167
11 août 2009 à 20:16
oui comme sa sa marche nikel

Mais je voudrait comprendre:
ta ligne : if ($age >= 13 && $age != NUL ) #inutile à prioris!
c'est pas plutôt != NULL ?

même avec cette "error" sa marche c'est sa que je voudrait comprendre.

Merci à vous!
0
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
11 août 2009 à 20:17
oui j'ai corrigé, une petite erreur de frappe !

ça marche car il ne se trouve pas dans ce cas; la première partie de la condition l'élimine de base, donc de toute façon même si il ne comprend pas la deuxième partie de la condition, il tient compte de la première ;) !

bon courage ;)
0
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 167
11 août 2009 à 20:19
Ok donc au faite il fallait dire que NULL et différent à <=12 et à >=13
0
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
11 août 2009 à 20:24
non, le premier cas est suffisant car il prend nul comme étant égal à 0 ! Donc, comme 0<=12 il affiche

Salut gamin ! J'ai demandé ton age !

mais inutile de le préciser pour >=13 car de tout façon, 0 ne peut pas être supérieur à 13 ni égal ... hum !! ^^

si d'autre découverte à faire, n'hésite pas, je suis un peu rouillé, il est vrai, mais bon !
0
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 167
11 août 2009 à 20:36
0
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
11 août 2009 à 20:44
c'est aussi comme cela que j'ai appris ;) très bon site !
0
brioche95 Messages postés 632 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 4 mars 2012 167
11 août 2009 à 21:30
lol oui il explique bien avec des exemples tout sa, mais moi au faite c'est que je veut aller plus vite que les leçons.
0