Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2881 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP Débutant ] Fonction () {}

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP Débutant ] Fonction () {}

n°462863
Optitribe
Posté le 20-07-2003 à 21:03:24  profilanswer
 

...

mood
Publicité
Posté le 20-07-2003 à 21:03:24  profilanswer
 

n°462865
Optitribe
Posté le 20-07-2003 à 21:03:59  profilanswer
 

Bonsoir,
j'ai realisé à l'aide d'un bouqin un petit script pour écrire des infos à l'intérieur d'un fichier et vu que je dois l'utiliser à plusieurs reprises dans différents fichiers ,je voulais créer une fonction avec ce petit script mais ça ne fonctionne pas et je ne comprends pas vraiment pourquoi ...
 
Script sans fonction (){}:  

Citation :

<?PHP
 
 
//----- Variables -----
$path="/test/donnees.bin";
$error="Fichier impossible à ouvrir !";
$mode="w+";
 
//----- Script -----
 
 
$str="$Comment";
if ($fp=fopen($path,$mode)) {
    fwrite($fp,$str);
    fclose($fp);
   }
else
   echo "$error";  
 
echo "<p>Voilà le texte qui a été écrit dans le fichier :</p>";    
if ($size=readfile($path))
   echo "Taille du fichier lu : " ,$size,"octets";
else
   echo "$error";      
       
?>

Ce script fonctionne sans problème
 
Script avec fonction () {} :

Citation :

<?PHP
 
//----- Fonction -----
 
function write_text($path,$error,$mode)  
{
 
global $Comment;
$str="$Comment";
if ($fp=fopen($path,$mode)) {
    fwrite($fp,$str);
    fclose($fp);
   }
else
   echo "$error";  
 
echo "<p>Voilà le texte qui a été écrit dans le fichier :</p>";    
if ($size=readfile($path))
   echo "Taille du fichier lu : " ,$size,"octets";
else
   echo "$error";
}  
 
//----- Variables -----
 
$path="/test/donnees.bin";
$error="Fichier impossible à ouvrir !";
$mode="w+";
 
//----- Script -----
 
write_text($path,$error,$mode);
                 
?>

Cette version ne fonctionne pas.Je n'ai aucun message d'erreur mais rien ne s'inscrit à l'intérieur du fichier "donnees.bin" :??:


Message édité par Optitribe le 20-07-2003 à 21:36:47
n°462871
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 20-07-2003 à 21:13:35  profilanswer
 

Euh... c'est quoi la variable $Comment ? :??:
Si c'est une variable globale, il faut que tu la déclares en tant que telle dans ta fonction ; cf http://www.php.net/manual/fr/langu [...] .scope.php


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°462876
Optitribe
Posté le 20-07-2003 à 21:19:17  profilanswer
 

Taiche a écrit :

Euh... c'est quoi la variable $Comment ? :??:
Si c'est une variable globale, il faut que tu la déclares en tant que telle dans ta fonction ; cf http://www.php.net/manual/fr/langu [...] .scope.php


 
En fait $Comment c'est le contenu d'un formulaire.
Le but est de récupéré ce contenu pour pouvoir l'afficher dans une sorte d'edito en page d'accueil du site sans devoir passer par un accès FTP ou une base de données.
 
Je vais allez voir l'adresse que tu m'as indiqué ...

n°462888
Optitribe
Posté le 20-07-2003 à 21:38:02  profilanswer
 

Merci Taiche ,c'était exactement ça le problème ... :jap:
 
A+
 
Note : J'ai mis en gras la correction sur le Script ...

n°462923
omega2
Posté le 20-07-2003 à 23:00:54  profilanswer
 

optitribe a écrit :

Merci Taiche ,c'était exactement ça le problème ... :jap:
 
A+
 
Note : J'ai mis en gras la correction sur le Script ...

Personellement, j'aurais plustôt fait comme ça :

Code :
  1. function write_text($path,$error,$mode,$str)
  2. {
  3. if ($fp=fopen($path,$mode)) {
  4.     fwrite($fp,$str);
  5.     fclose($fp);
  6.    }
  7. else
  8.    echo "$error"; 
  9. echo "<p>Voilà le texte qui a été écrit dans le fichier :</p>";   
  10. if ($size=readfile($path))
  11.    echo "Taille du fichier lu : " ,$size,"octets";
  12. else
  13.    echo "$error";
  14. //----- Variables -----
  15. $path="/test/donnees.bin";
  16. $error="Fichier impossible à ouvrir !";
  17. $mode="w+";
  18. //----- Script -----
  19. write_text($path,$error,$mode,$Comment);
  20.                
  21. ?>

1) Le fait d'avoir la variable $comment dans la déclaration de la fonction et pas en variable globale permet d'être plus souple pour deux raisons :  
- tu voudras peut être l'utiliser la fonction a partir de formulaire ou de pages pour lesquelles la variabble $comment ne correspond a rien.  
- Si une autre partie du programme utilise la variable globale $comment tu risques de récupérer une valeur qui corespond pas du tout a ce qui est attendus.
 
2) T'avais écrit $str="$Comment";
La aussi, deux remarques :  
- $str=$Comment; sufit larement. Et puis, il est déconseillée de mettre les nom de vrariable directement dans une chaine de caracctère pour la raison suivante :
$str=$texte."_fin";
Est compris par le compilateur comme étant : $str recoit le contenu de la variable $texte + la chaine de caracctère "_fin" le tout sous la forme d'une chaine de caractère.
$str="$texte_fin";
Est compris par le compilateur comme étant : str recoit le contenu de la variable $texte_fin sous la forme d'une chaine de caractère.
- $Comment n'est plus utilisé alors tant qu'à passer la valeur dans les paramêtres de la fonction, j'ai carément affecté la valeur dans $str.
 
3) A éviter : l'utilisation des variables $var quandd c'est une donnée provenant de l'url de la page ou d'un formulaire. Il vaut mieux utilisé les variables $_POST et $_GET vu que les variables $var ne sont plus renseigné dans les réglages par défauts des dernières versions de PHP et que c'est une possibilité qui risque de disparaitre n'importe quand dans les nouvelles versions de PHP (auquel cas il sera impossible de les réactivés. ;) )


Message édité par omega2 le 20-07-2003 à 23:05:02

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP Débutant ] Fonction () {}

 

Sujets relatifs
[PHP] probleme de session_start() sous windows[PHP]Utilisation de foreach?
Résolu - [FPDF] - Aide pour un débutant ... .. . .[PHP] Condition qui marche pas ( BOOL )
[PHP] Pear comme systeme d'authentification?Un forum PHP / MySQL
[PHP] Rah niveau sécurité jsuis plus trop certainaffichage des infos d'une table postgresql en passant par PHP
[HTML/JS/PHP] un bouton 'Set As Wallpaper'[PHP] Transformer une chaine contenant de l'hexa en hexa...
Plus de sujets relatifs à : [PHP Débutant ] Fonction () {}


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR