Questions diverses PHP

Fermé
pimousse_cerise Messages postés 68 Date d'inscription vendredi 20 juillet 2001 Statut Membre Dernière intervention 2 décembre 2002 - 5 déc. 2001 à 10:43
pimousse_cerise Messages postés 68 Date d'inscription vendredi 20 juillet 2001 Statut Membre Dernière intervention 2 décembre 2002 - 6 déc. 2001 à 11:56
Salut voila,
je suis en train de bosser sur des fichiers un peu hard en php et je debute ... ce qui n'arrange rien !

- Lorsqu'on utilise une variable $A puis que l'on fait un ' include (../fichier.php);', est ce que la $A est disponible dans le fichier.php ou seulement les variables du fichier.php sont visibles dans celui que je suis en train de traité ?

- J'ai
if ($submit) {
$truc = substr($truc,0,20);
en debut de fichier, ce que je voudrai savoir c si submit est une variable connue de php ou si elle est déclarée autrepart ....
bref je m'y perd !

- j'ai check_before_create_truc qui est une fonction et je sais pas ou trouver sa definition sachant qu'elle n'appartient pas a une classe .... y'a t-il un fichier recapitulatif ? ou quelque chose du genre ?

bref j'suis dans un caca complet ...
un peu d'aide serai la bienvenue ...
merci ...

5 réponses

Tim the enchanter Messages postés 37 Date d'inscription lundi 19 novembre 2001 Statut Membre Dernière intervention 3 décembre 2002 5
5 déc. 2001 à 11:35
Un include, c'est juste un copier/coller du code donc ta variable sera bien disponible.

Fred
0
Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 128
5 déc. 2001 à 12:28
[quote]
- Lorsqu'on utilise une variable $A puis que l'on fait un ' include (../fichier.php);', est ce que la $A est disponible dans le fichier.php ou seulement les variables du fichier.php sont visibles dans celui que je suis en train de traité ?
[/quote]

La variable est effectivement disponible dans le fichier.php, mais attention, si tu comptes l'utiliser dans une fonction, il faut spécifier en début de ladite fonction que c'est une variable globale ; ou alors il faut la passer en paramètre...
Exemple pour spécifier qu'une variable de fonction doit être considérée comme globale :

[code]
<?
function test() {
// on veut que la variable $a utilisée dans la fonction
// soit la variable $a globale.
global $a;

echo "a = $a <br>";

$a = $a . "man";
echo "a modifié = $a <br>";

echo "b n'est pas global : b = $b <br>";
$b = "tonneau";
echo "b a une valeur au sein de la fonction = $b <br>";
}


$a = "super";
$b = "bidon";

test();

echo "a après la fonction = $a <br>";
echo "b après la fonction = $b <br>";

?>
[/code]

... ce qui a pour résultat :
a = super
a modifié = superman
b n'est pas global : b =
b a une valeur au sein de la fonction = tonneau
a après la fonction = superman
b après la fonction = bidon


-------------------------------------------------
[quote]
- J'ai
if ($submit) {
$truc = substr($truc,0,20);
en debut de fichier, ce que je voudrai savoir c si submit est une variable connue de php ou si elle est déclarée autrepart ....
bref je m'y perd !
[/quote]
La variable $submit n'est aucunement une variable d'environnement ou spécifique à PHP.
Si elle n'a pas été initialisée en début de script, deux possibilités se présentent :

- Le script a été chargé suite à la validation d'un formulaire HTML qui comportait un champ dont l'attribut NAME était "submit". Alors $submit contiendra la valeur saisie dans ce champ.
- Le script a été chargé suite à la saisie d'une URL ou au clic sur un lien, dans lequel il y a des paramètres (par exemple http://bidon/page.php?submit=1 ). Alors $submit contient la valeur spécifiée dans l'URL ou le lien.
- Pas de formulaire, pas de variable dans l'URL ? Alors $submit ne contient rien.

Typiquement, ton exemple servirait à tester la provenance de l'internaute : sur la page précédente, on avait par exemple un formulaire avec un champ caché :
<input type="hidden" name="submit" value="1">

-------------------------------------------------
[quote]
- j'ai check_before_create_truc qui est une fonction et je sais pas ou trouver sa definition sachant qu'elle n'appartient pas a une classe .... y'a t-il un fichier recapitulatif ? ou quelque chose du genre ?
[/quote]
Non, pas de fichier récapitulatif des fonctions créées par les développeurs. Les scripts PHP sont des fichiers TEXTE. Tu peux éventuellement faire une recherche dans les scripts pour trouver cette fonction (si tu es sous Windows, clic droit sur le dossier qui contient les scripts, et recherche par contenu).
Vérifie si cette fonction n'est pas présente par exemple dans un fichier inclus dans ton script avec INCLUDE. C'est une pratique courante.


J'espère que ma réponse t'apportera des éléments, n'hésite pas à reposter si tu veux plus d'infos :)

Tittom
0
Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 128
5 déc. 2001 à 12:29
Oops j'ai oublié de dire bonjour au début de mon message ;o)

Bonjour donc :)

Tittom
0
pimousse_cerise
5 déc. 2001 à 16:34
Merci beaucoup tittom pour tous ces renseignements ...
ca m'éclaire deja beaucoup plus, et j'aurai certainement d'autre question pour la suite ...
encore merci beaucoup !

@+
0
Salut pimousse_cerise,

Juste un petit complement au msg de Tittom sur les variables.

Pour savoir si une variable est définie ou pas en Php il existe la fonction isset()

Syntaxe : int isset (mixed var)

isset() renvoie TRUE si la variable var est définie, FALSE sinon.

Il est préférable d'utiliser isset() plutôt que de tester directement la variable dans un if ...


Ex

<html>
<body>
<?php
if ($test)
{
echo "Variable test définie.";
}
else
{
echo "Variable test non définie.";
}
?>
</body>
</html>


Affichera : Variable test non définie.

Avec isset() :

<html>
<body>
<?php
if (isset($test))
{
echo "Variable test définie.";
}
else
{
echo "Variable test non définie.";
}
?>
</body>
</html>

Tu auras encore : Variable test non définie.


Maintanant suppose que tu as le cas suivant :

<html>
<body>
<?php
$test="";
if ($test)
{
echo "Variable test définie.";
}
else
{
echo "Variable test non définie.";
}
?>
</body>
</html>

Hé bien tu auras de nouveau le message : Variable test non définie.

Ca peut être gênant dans certains cas ...


Avec isset() par contre aucun pb, tu auras bien : Variable test définie.


Nota : une alternative pour tester le fait que la variable contienne ou pas une chaîne vide est d'utiliser l'opérateur d'identité === ( 3 fois le signe égal) qui compare non seulement 2 variables mais également leur type (ne marche qu'à partir de Php v4 je crois ...)

le code serait donc :

<html>
<body>
<?php
$test="";
if ($test==="")
{
echo "Test contient une chaine vide.";
}
else
{
echo "Test contient autre chose qu\'une chaîne vide.";
}
?>
</body>
</html>






Cas particulier NULL si tu as :

<html>
<body>
<?php
$test=null;
if ($test)
{
echo "Variable test définie.";
}
else
{
echo "Variable test non définie.";
}
?>
</body>
</html>

Tu auras : Variable test non définie.

Et avec isset() également !!!


@+
Philippe
0

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

Posez votre question
pimousse_cerise Messages postés 68 Date d'inscription vendredi 20 juillet 2001 Statut Membre Dernière intervention 2 décembre 2002 1
6 déc. 2001 à 11:56
merci beaucoup ...
fonction bien utile !!!
0