[PHP] Probleme avec function

Probleme avec function [PHP] - Programmation

Marsh Posté le 28-07-2002 à 00:01:21    

J'ai un script d'ajout de commentaire,
je verifie avant chaque post que les champs ne sont pas vide avec la fonction verif($variable) qui est declaré dans fontcion.php
 
Dans mon fichier body.php, j'include fonction.php et je fais verif($texte);
 
Mais verif ne detecte pas quand $text est vide alors que quand je met la function verif dans body sa marche !
 
Contenu de fonction.php:  
 

function verif($text="" ){
 (!$text)? $vt="Champs vide":$vt="";
}


 
Contenu de body.php :
 

$dossier="includes";
include $dossier."/fonction.php";
include $dossier."/template.php";
 
if($_POST['action']=="Envoyer" ){
 verif($_POST['text']);
}
 
$nom=array("TEXT"=>$text, "VERIF TEXT"=>$vt);
$body=new Template("includes/templates" );
$body->set_file("page","body.tpl" );
$body->set_var($nom);
$body->pparse("MyOutput","page" );


 
 
Contenu essentiel de body.tpl :
 

(...)
<form method="POST" name="post" action="body.php">
(...)
<table>
 <tr>
  <td><textarea rows="10" name="text" cols="50">{TEXT}</textarea></td>
  <td>{VERIF TEXT}</td>
 </tr>
</table>
(...)
</form>
(...)


Message édité par bozocarzu le 28-07-2002 à 00:03:45
Reply

Marsh Posté le 28-07-2002 à 00:01:21   

Reply

Marsh Posté le 28-07-2002 à 03:09:05    

1. ton champ $vt n'est pas connu dans ton autre fichier (variable locale)
ou bien tu la déclares en global (beurk...) ou bien tu la retournes lors de l'appel à la fonction.

Code :
  1. function verif($text="" ){
  2.   return ((!$text)? 'Champs vide' : '');
  3. }


 
2. en testant (!text), ça te retournera "champ vide si je met "0" dans le champ.
teste plutôt ($text=='';).
->

Code :
  1. function verif($text="" ){
  2.   return (($text=='')? 'Champs vide' : '');
  3. }


 
avec dans body.php

Code :
  1. ...
  2. if($_POST['action']=="Envoyer" ){
  3.   $vt= verif($_POST['text']);
  4. }
  5. ...


Message édité par ethernal le 28-07-2002 à 03:11:56
Reply

Marsh Posté le 28-07-2002 à 19:30:21    

Merci, mais comment je fais si j'ai plusieur champs ? Car j'en est mis qu'un en exemple
 
function.php

function verif($text="", $auteur="" ){  
 return (($text=='')? 'Champs vide' : '');  
 return (($auteur=='')? 'Champs vide' : '');
}


 
body.php

if($_POST['action']=="Envoyer" ){  
 verif($_POST['text'], $_POST['auteur']);  
}


 
Je sais que se code ne marche pas et qu'il est debile, mais je ne veut pas faire :
 

$vt= verif($_POST['text']);  
$va= verif($_POST['auteur']);


 
Je voudrais que verif($_POST['text'],$_POST['auteur']); me retourne $va="champs vide" et $vt="champs vide" !
 
Je pense que c'est possible mais je bloque

Reply

Marsh Posté le 29-07-2002 à 04:12:27    

tu retournes un tableau alors ;)
 
function.php  

Code :
  1. function verif($text="", $auteur="" ){
  2.   $ret= array();
  3.   $ret['va']= ($text=='')? 'Champs vide' : ''; 
  4.   $ret['vt']= ($auteur=='')? 'Champs vide' : ''; 
  5.   return $ret;
  6. }


 
body.php  

Code :
  1. if($_POST['action']=="Envoyer" ){ 
  2.   $retour= verif($_POST['text'], $_POST['auteur']); 
  3. }
  4. echo $retour['vt'];
  5. echo $retour['va'];


 
ou bien tu mets tout en global...

Reply

Marsh Posté le 29-07-2002 à 14:56:24    

Mais il n'y a pas moyen de retourner plusieurs variables dans un fonction ??

Reply

Marsh Posté le 30-07-2002 à 02:09:03    

[:ssfblanka]

Reply

Marsh Posté le 30-07-2002 à 03:10:06    

http://dev.nexen.net/docs/php/annotee/ref.funchand.php
 
aller, bonne lecture :D


---------------
Mon blog de nerd...
Reply

Marsh Posté le 30-07-2002 à 03:21:02    

castor666 a écrit a écrit :

http://dev.nexen.net/docs/php/annotee/ref.funchand.php
 
aller, bonne lecture :D  




C'est pas cool la lecture a 3h20 !

Reply

Marsh Posté le 30-07-2002 à 07:02:57    

Un peu de courage ! :D  
 
bon tu fait :
 

Code :
  1. function blabla($texte,$couleur,$taille) {
  2. // ce que tu ceux ici..
  3. }


Et tu apelle la fonction :
 

Code :
  1. blabla('bonjour','rouge','12');


 
J'espere que c'est ce que tu voulais  :hello:


---------------
Mon blog de nerd...
Reply

Marsh Posté le 30-07-2002 à 17:27:57    

Heu, je sais comment marche les arguments d'un fonction lol
 
A la fin d'un fonction, on doit faire return $var pour récuperer notre varialbe à l apel de la fonction. Mais moi je veut retourner plusieur a la fin d'un fonction, et je ne veut pas faire de tableau
 

function xxx($var1,$var2,$var3){
$var1=$var1+$var2;
$var2=$var2+$var3;
$var3=$var3+$var2;
 
return $var1;
return $var2;
return $var3;
}


 
Cette fonction d'exemple ne marche pas !! Et je ne sais pas comment faire pour retourner plusieurs variable sans array !

Reply

Marsh Posté le 30-07-2002 à 17:27:57   

Reply

Marsh Posté le 30-07-2002 à 17:30:02    

Une fonction ne te permet de retourner qu'une seule variable, faire un tableau c'est vraiment ce qu'il y a de plus pratique, pq t'en veux pas ?
 
Sinon il te reste les variables globales, qui marchent tres bien pour ce genre de cas mais c'est moins 'joli'


Message édité par Stligar le 30-07-2002 à 17:30:46
Reply

Marsh Posté le 30-07-2002 à 17:32:23    

J'ai fais un tableau mais je trouve sa chiant a gerer apres
 
$retour['var1'],$retour['var2'],$retour['var3'] !!
 
Je trouve sa lourd a gerer, Mais si il n'y a pas d'autre moyen tant pis

Reply

Marsh Posté le 30-07-2002 à 17:39:43    

Rien ne t'obliges à garder le tableau, à la sortie de ta fonction tu peux recuperes les données du tableau ds des variables

Reply

Marsh Posté le 30-07-2002 à 17:42:23    

Ouais je sais, mais sa m'enerve les ligne a la con juste pour renomer des variable ou les retiré d'un tableau
 
$var1=$retout['var1'], c'est un truc a la con, autant directement utiliser $retour['var1']
 
Enfin c'est mon avis

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed