Aller au contenu

Notice: Undefined variable: num in c:\program file


Sujets conseillés

Posté

resalut,

des que je mets à faire du php....

hehe les bug commence à apparaitre :blink::D

<? echo"<title>Palissade robusto photo ".$num."</title>"; ?>

quand je mets ça....

il me balance une jolie

Notice: Undefined variable: num in c:\program files\easyphp1-7\www\siterobusto\photo-robusto.php on line 9

pourtant, il ne me semble pas qu'il faille declarer quoi que ce soit...

sans doute encore une question de syntaxe?

Posté

C'est quoi ta variable $num ? Elle apparait dans l'URL ?

Dans ce cas, essaye :

$num=$_GET["num"] ou $num=$_POST["num"] suivant le type de la requête (GET - cas général - ou POST - via un formulaire)

Tizel

Posté

Salut Luc,

Avec les versions récentes de php, les variables globales sont définies à "off" par défaut.

C'est ce que t'explique Tizel, il faut donc utiliser $_GET['num'] ou $_POST['num'] selon la méthode utilisée.

Une alternative serait de mettre register_globals à "on" dans le fichier php.ini, mais autant prendre tout de suite les bonnes habitudes, non ? ;)

Dan

Posté

Hum par contre chez moi, quand une variable n'a pas été définie, il n'y a pas de message d'erreur pour autant ! et heureusement... Il me soulerait :whistling:

Il n'y a pas un autre réglage à faire pour virer ce message d'erreur ?

Posté

hehe,

j'ai donc decide...

de mettre le register_globals sur ON (comme chez mon hebergeur)...

pour prendre les bonne haitudes :D

j'ai eteins apache puis redemarer...mais ça ne semble pas fonctionner...

je vais donc retenter avec les get et post mais mes precedents tests avait echoué...

pour info, dans mon test, je ne transmet pas de variable mais cela se fera par url...

Posté

C'est selon le paramétrage de php.ini, avec les niveaux d'alerte demandés.

Voir la définition de error_reporting dans ce fichier ;)

Posté

Salut Luc,

C'est que la variable error_reporting est mise à E_ALL

Trouve le fichier php.ini, il doit se trouver dans c:\windows à mon avis.

Cette variable est définie dedans.

Posté

; - error_reporting = E_ALL        [Code Cleanliness, Security(?)]
;     By default, PHP surpresses errors of type E_NOTICE.  These error messages
;     are emitted for non-critical errors, but that could be a symptom of a bigger
;     problem.  Most notably, this will cause error messages about the use
;     of uninitialized variables to be displayed.

apres avoir mis les mauvaise lignes...

je remplace le E_ALL par quoi?

Posté

Héhé, je te conseille d'aller voir le manuel PHP qui t'expliquera toutes les erreurs, et tu pourras choisir le degré d'error_reporting facilement... :P

Posté

Si tu ne veux pas toucher à ce fichier (php.ini), tu peux mettre, au tout début de ton script, la fonction :

error_reporting(0);

// Désactiver le rapport d'erreurs

Lorsque tu cherches une erreur, tu passes cette fonction à :

error_reporting(E_ALL);

// Repporter toutes les erreurs PHP.

Le plus simple étant alors de connaitre son :

$_SERVER['DOCUMENT_ROOT']

et donc ajouter les lignes :

error_reporting(0);
if ($_SERVER['DOCUMENT_ROOT']=="c:/home"){
error_reporting(E_ALL);
}

Ce qui signifie :

On place le gestionnaire d'erreur à '0' aucune erreur retournée (sauf les plus graves),

et si l'on est en 'local', alors on renvoie toutes les erreurs ;)

Voilà,

Posté

merci à tous,

j'ai fini par reussir à mettre mon register_globals sur ON

et tout fonctionne bien...

faudra tout de même que je reussise à utiliser mes variables sans çà...sinon le jour mon hebergeur le mets sur OFF

me vla chocolat bleu pâle.... :wacko:

pour info, dans ma version easyphp 1.7

le php.ini se trouve dans le repertoire apache

Posté
faudra tout de même que je reussise à utiliser mes variables sans çà...sinon le jour mon hebergeur le mets sur OFF

Je suis même étonné que ce ne soit pas déjà le cas... :huh:

Posté
faudra tout de même que je reussise à utiliser mes variables sans çà...sinon le jour mon hebergeur le mets sur OFF

me vla chocolat bleu pâle.... :wacko:

A mon avis, il aurait été plus sage de le laisser à "off".

Parce que les variables $_GET et $_POST fonctionnent dans les deux cas, et ton site sera plus sécurisé et moins sujet aux attaques.

De plus, tant qu'à apprendre un langage de programmation, autant prendre tout de suite les bonnes habitudes ;)

Posté

bon aller pour une fois je vais tenter d'aller au bout...

donc,

j'appele la page à l'aide :

http://luchenrard/siterobusto/photo-robusto.php?num=1

j'ai tenté en mettant le code ci dessous...

effectivement le rapport d'erreur n'apparait plus...

mais il ne prend toujours pas en compte la variable...

<? 
error_reporting(0);
$_GET['num'];
echo"<title>Palissade robusto photo ".$num."</title>";
?>

Posté

eviedemment, quand on recopie mal le code....

ça marche moins bien...

j'ai donc simplement remis :

$num=$_GET['num'];

et non pas celui du post precedent....

:wacko::wacko::wacko::wub::wub:

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...