Aide pour .php

Résolu
brioche95 Messages postés 632 Date d'inscription   Statut Membre Dernière intervention   -  
brioche95 Messages postés 632 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   352
 
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   Statut Membre Dernière intervention   167
 
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   Statut Membre Dernière intervention   22
 
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   Statut Membre Dernière intervention   352
 
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   Statut Membre Dernière intervention   167
 
il y a toujours écrit gamin.
0
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   22
 
dans les trois cas ?
0
brioche95 Messages postés 632 Date d'inscription   Statut Membre Dernière intervention   167
 
oui
0
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   22
 
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   Statut Membre Dernière intervention   167
 
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   Statut Membre Dernière intervention   22
 
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   Statut Membre Dernière intervention   167
 
Ok donc au faite il fallait dire que NULL et différent à <=12 et à >=13
0
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   22
 
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   Statut Membre Dernière intervention   167
 
0
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   22
 
c'est aussi comme cela que j'ai appris ;) très bon site !
0
brioche95 Messages postés 632 Date d'inscription   Statut Membre Dernière intervention   167
 
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