IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

HTML à PHP; conversion [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML à PHP; conversion
    Bonjour,

    Je convertis pour la 1ère fois un code HTML en un PHP et je me mêle les pinceaux avec les ' " . etc
    Voici, il s'agit d'une classe Form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    		
    function __construct($form, $action=NULL, $method=NULL, $id=NULL, $name=NULL)
    {	$this->initForm($form) ;
    	$this->action 	= $action   != NULL ? $action	:	18 ==> "$_server[PHP_SELF]" ; 
    	$this->method 	= $method 	!= NULL ? $method	:	"POST" 				 ;
    	//
    	//	name OR id must be specified
    	//	============================
    	if (!isset($id) && !isset($name))
    24 ==>		user_error("NAME or ID Should be specified" , E_USER_ERROR) ;
    	elseif (!isset($id))
    		$id = $iname ;
    	else
    		$name = $id ;
    	//
    	$this->id 		= $id  		!= NULL ? $id		:	NULL
    	$this->name 	= $name  	!= NULL ? $name		:	NULL ;
    et j'ai ensuite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	
    function start()
    {60 ==>	echo "<form action='.$this->action.' method='.$this->method.' id='.$this->id.' name="'.$this->name."'>" ;
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function end()
    {	echo "</form>" ;	}
    Mon souci est dans l'écho de Form::start qui me donne dans le log:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in F:\WebSites\date\class\form.php on line 60
    Cela doit être con comme la lune mais quand c'est pour la 1ère X....

    Merci pour votre aide !

    ================= Cela va déjà un poil mieux ainsi ===============
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function start()
    {	echo "<form action='/index.php' method='post' name='date' id='date'>" ;   }
    mais maintenant, le souci est autre part....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [29-Dec-2010 17:18:45] PHP Notice:  Undefined variable: _server in F:\WebSites\date\class\form.php on line 18
     
    [29-Dec-2010 17:18:45] PHP Fatal error:  NAME or ID Should be specified in F:\WebSites\date\class\form.php on line 24

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    les double quotes de la ligne 18 interprètent ton code à la différence des simples quotes, il cherche donc la référence à la variable _serveur qui n'existe pas.

    Testes ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    $this->action = $action != NULL ? $action : '$_SERVER[\'PHP_SELF\']'; 
     
    ...

  3. #3
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML => PHP
    C'est OK, merci....

    Me reste le problème de la ligne 24, mais cela est de la logique...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PHP Fatal error:  NAME or ID Should be specified in F:\WebSites\date\class\form.php on line 24
    Merci et bon réveillon

  4. #4
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML => PHP
    Et bien le problème de logique s'avère + difficile à appréhender.....

    J'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    		function __construct( $action=NULL, $method=NULL, $id=NULL, $name=NULL)
    		{	//$this->initForm($form) ;
    			$this->action 	= $action 	!= NULL ? $action 	: 	'$_SERVER[\'PHP_SELF\']'; 
    			$this->method 	= $method 	!= NULL ? $method	:	"POST" 				 	;
    			//
    			//	name OR id must be specified
    			//	============================
    /*
    			var_dump($id,$name) ;
    			if (!isset($id) && !isset($name))
    				user_error("NAME or ID Should be specified" , E_USER_ERROR) ;
    			elseif (!isset($id))
    					$id = $iname ;
    			else
    					$name = $id ;
    */
    			//
    			$this->id 		= $id  		!= NULL ? $id		:	NULL ;
    			$this->name 	= $name  	!= NULL ? $name		:	NULL ;
    			
    bla bla bla...
    			
    /**
    * 		Form Start
    *
    */	
    		function start()
    		{	echo "<form action='/index.php' method='post' name='.$this->name.' id='.$this->id.'>" ;   }
    Et donc, $form->start me génére

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form action='/index.php' method='post' name='..' id='..'>
    Madfrix, tes lumières stp.....

    Merci et bon réveillon à tous

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta concaténation est en vrac :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<form action="/index.php" method="post" name="'.$this->name.'" id="'.$this->id.'">' ;

  6. #6
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML -> PHP
    J'ai exactement le même résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form action="/index.php" method="post" name="" id="">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		function start()
    		{	echo '<form action="/index.php" method="post" name="'.$this->name.'" id="'.$this->id.'">' ;
    //			echo "<form action='/index.php' method='post' name='.$this->name.' id='.$this->id.'>" ;   
    		}
    En gras, ta suggestion...
    J'arrête pour ajd'hui, je vais potasser un peu + PHP

    Merci et bon réveillon....

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas exactement la meme chose maintenant.

    Controle ce que valent tes deux variables (elles sont a priori vides).

  8. #8
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML -> PHP
    Oui j'ai vu mais ce n'est pas ce que j'ai voulu dire, j'ai bien vu les différences...

    Mais le résultat HTML est le même....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <body>
    
    <?php
    $form->start($name="test") ;
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form action="/index.php" method="post"B] name="" id=""[/B]>
     
    ou je devrais avoir $name="test"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    		function __construct( $action=NULL, $method=NULL, $id=NULL, $name=NULL)
    		{	//$this->initForm($form) ;
    			$this->action 	= $action 	!= NULL ? $action 	: 	'$_SERVER[\'PHP_SELF\']'; 
    			$this->method 	= $method 	!= NULL ? $method	:	"POST" 				 	;
    			//
    			//	name OR id must be specified
    			//	============================
    
    			//
    			
    $this->id 		= $id  	!= NULL ? $id		:	NULL ;
    $this->name 	= $name  	!= NULL ? $name		:	NULL ;
    			
    		}
    Rien danls le log

    Au vu de mes lectures hier, il y aurait une différene entre " et '

    Mais ce n'est pas si claire que cela
    Il y aurait NON_interprétation du PHP dans le cas de la simple cote.
    Pour toutes 2, on peut échapper par \
    Mais on ne conseille rien, alors qu'ici même j'ai déjà perçu 2 techniques....
    Pas de tutos ?


    Mais je n'ai pas lu toutes les 800 ages de mon livres PHP5 de chez CAMPUS, tu vois lequel ? Une grosse brique....

    Merci et bon réveillon

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les variables ne sont pas interpretées a l'interieur des guillemets simples.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $a = "toto";
     
    echo '$a';
    // $a
     
    echo "$a";
    //toto


    Mais cela ne te concerne pas (en tout cas dans la ligne que j'ai refaite) puisque tes deux variables ne sont pas dans la chaine.

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    function __construct($action = NULL, $method = NULL,   $id = NULL, $name = NULL) {   
       $this->initForm($form);
       $this->action = ($action != NULL) ? $action : $_SERVER['PHP_SELF'];
       $this->method = ($method != NULL) ? $method : 'POST';
     
       //
       //   name OR id must be specified
       //   ============================
     
     
       if ( ! (isset($id) || isset($name))) {
          user_error("NAME or ID Should be specified" , E_USER_ERROR);
     
       } elseif ( ! isset($id)) {
          $id = $name;
     
       } else {
          $name = $id;
       }
     
       $this->id = ($id != NULL) ? $id : NULL;
       $this->name = ($name != NULL) ? $name : NULL;
    }
     
    /**
     * Form Start
     */   
    function start() {
          echo "<form action='/index.php' method='post' name='{$this->name}' id='{$this->id}'>"; 
    }
    Dans ta version initiale : je pense à la faute de frappe : PHP oblige le développeur à être rigoureux avec tout sinon bonjour les maux de têtes.
    Bon réveillon

  11. #11
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML => PHP
    Bonjour,

    Oui j'ai bien les différenes, je ne suis pas aveugle...
    Et ce n'est pas e que j'ai voulu dire....

    Dans l'HTML, je N'AI VU AUCUNE différence....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <body>
    
    <?php
    $form->start($name="test") ;
    ?>

  12. #12
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML => PHP
    Merci mais pb en ligne 27

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    		function __construct($action = NULL, $method = NULL,   $id = NULL, $name = NULL) {   
    //		   $this->initForm($form);
    		   $this->action = ($action != NULL) ? $action : $_SERVER['PHP_SELF'];
    		   $this->method = ($method != NULL) ? $method : 'POST';
    				 
    		   //
    		   //   name OR id must be specified
    		   //   ============================
    		 
    		   
    		   if ( ! (isset($id) || isset($name))) {
    27 ==>			  user_error("NAME or ID Should be specified" , E_USER_ERROR);
    		   
    		   } elseif ( ! isset($id)) {
    			  $id = $name;
    		   
    		   } else {
    			  $name = $id;
    		   }
    		   
    		   $this->id = ($id != NULL) ? $id : NULL;
    		   $this->name = ($name != NULL) ? $name : NULL;
    		}
    dans le log, j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PHP Fatal error:  NAME or ID Should be specified in F:\WebSites\date\class\form.php on line 27
    Et même si je fais mon appel avec $name="test"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <body>
    
    <?php
    $form->start($name="test") ;
    ?>
    var_dump($id,$name) ; en 25 me donne NULL, NULL

    Dur sur de commencer la journée ainsi.....

    Merci

  13. #13
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    PHP ne gère pas le nommage des paramètres.
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->start($name="test");
    ne sert à rien à part suivre une variable $name dans le contexte d'exécution du parent.
    D'ailleurs à quoi cela te sert de passer 'test' à la fonction start() vu qu'elle ne gère pas de paramètres. Ce paramètre devrait être passé au constructeur et ensuite il faudrait appeler start().

  14. #14
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML => PHP
    Je pense que c'est raté....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    	class Form extends Stack
    	{	private $form, $formValid, $check ;
    		private $action, $method, $id, $name ;
    		
    /**
    * 		From constructor
    *
    */	
    		function __construct($action = NULL, $method = NULL,   $id = NULL, $name = NULL) {   
    //		   $this->initForm($form);
    		   $this->action = ($action != NULL) ? $action : $_SERVER['PHP_SELF'];
    		   $this->method = ($method != NULL) ? $method : 'POST';
    				 
    		   //
    		   //   name OR id must be specified
    		   //   ============================
    		 
    var_dump($id,$name) ;me donne NULL,NULL => pige pas pkoi		   
    		   if ( ! (isset($id) || isset($name))) {
    			  user_error("NAME or ID Should be specified" , E_USER_ERROR);
    		   
    		   } elseif ( ! isset($id)) {
    			  $id = $name;
    		   
    		   } else {
    			  $name = $id;
    		   }
    		}				
    			
    		function __destruct()
    		{}
    			
    		function validate()
    		{}
    			
    			
    /**
    * 		Form Start
    *
    */	
    		function start()
    		{	
    			echo '<form action="/index.php" method="post" name="'.$this->name.'" id="'.$this->id.'">' ;
    // 			echo "<form action='/index.php' method='post' name='.$this->name.' id='.$this->id.'>" ;   
    		}
    et le constructeur de Form est appelé comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	$form      = new Form($name="ABCD") ;
    le start n'a pas changé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $form->start() ;
    ?>
    Dur dur d'être un artiste.....

  15. #15
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Comme je te l'ai dit PHP ne gère pas les paramètres nommés, il faut passer les paramètres dans l'ordre :
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form      = new Form($name="ABCD") ;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new Form(NULL, NULL, NULL, "ABCD");

  16. #16
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML => PHP
    Cela va déjà 2 poils + loin....

    Mais la génération HTML me donne (ou ne me donz ps $name="ABCD"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    </head>
    NULL
    string(4) "ABCD"
    
    <body>
    
    <form action="/index.php" method="post" name="" id="">  <table width="818" class="table_bkg">
    Mais je viens d'apprendre qlqchose au niveau du onstruteur, TOUS les paramètres doivent être présents, mais alors à quoi servent les paramètres du type $param="qlchose" si les autres ne peuvent être omis, à leur donner une valeur par dfaut en cas d’omission ?

    Donc, si j'ai dans le constructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		function __construct($action = NULL, $method = NULL,   $id = NULL, $name = "test") {
    je pourrais faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	$form 		= new Form(NULL, NULL, NULL);
    Je teste....

    Merci encore....

  17. #17
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML => PHP
    Encore un poil + loin....

    mais l'HTML est faux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    NULL
    string(4) "test"
    
    <body>
    
    <form action="/index.php" method="post" name="" id="">  <table width="818" class="table_bkg">
    Plus d'erreur dans le log....

    Mais GROSSE erreur, cela va bcp mieux ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    		   if ( ! (isset($id) || isset($name))) {
    			  user_error("NAME or ID Should be specified" , E_USER_ERROR);
    		   
    		   } elseif ( ! isset($id)) {
    			  $id = $name;
    		   
    		   } else {
    			  $name = $id;
    		   }
    		   $this->name = $name ;
    		   $this->id   = $id ;
    Et c'est une erreur de logique et non du PHP...... grrrrrrrr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ET c'est BIEN ce que je pensais, TOUS LES PARAMETRES NE DOIVENT PAS ETRE APPELES 
    si dans le constructeur on trouve $PARAMx = "value" pour les non_appelés !!!!!!
    Merci à tous

  18. #18
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Les paramètres peuvent être omis lors d'un appel de fonction. S'ils ont une valeur par défaut c'est cette dernière qui leur sera attachée durant l'exécution du corps de la fonction. C'est la raison pour laquelle on place les paramètres optionnels ayant une valeur par défaut en fin de signature de la fonction de telle manière à pouvoir les omettre.

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new Form(NULL, NULL, NULL, NULL)
    est équivalent à Le constructeur de Form ne possède que des paramètres optionnels avec une valeur par défaut donc si un paramètre est omis, c'est sa valeur par défaut qui lui sera rattachée.

  19. #19
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut HTML -> PHP
    Exact.... merci enore

  20. #20
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut BCP MIEuX ainsi
    Non sorry, pas résolu....

    Si j'ai mon constructeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    		function __construct($action = NULL, $method = NULL, $id = NULL, $name = NULL) {   
    //		   $this->initForm($form);
    		   $this->action = ($action != NULL) ? $action : $_SERVER['PHP_SELF'];
    		   $this->method = ($method != NULL) ? $method : 'POST';
    				 
    		   //
    		   //   name OR id must be specified
    		   //   ============================
    		   if ( ! (isset($id) || isset($name))) {
    ==> 26	user_error("NAME or ID Should be specified" , E_USER_ERROR);
    		   
    		   } elseif ( ! isset($id)) {
    			  $id = $name;
    		   
    		   } else {
    			  $name = $id;
    		   }
    		   $this->name = $name ;
    		   $this->id   = $id ;
    		}
    Ceci est la définition, mais l'instanciation vaut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$form 		= new Form($name = "test");
    J'ai dans le log:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PHP Fatal error:  NAME or ID Should be specified in F:\WebSites\date\class\form.php on line 26
    avec l'appel à start... inchangé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $form->start() ;
    ?>

    CELA VA BCP MIEUX AINSI:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="/index.php" method="post" name="test" id="test">
    avec le construteur corrigé ainsi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		   if ((isset($id) && isset($name))) {
    			  user_error("NAME or ID Should be specified" , E_USER_ERROR);
    		   
    		   } elseif ( ! isset($id)) {
    			  $id = $name;
    		   
    		   } else {
    			  $name = $id;
    		   }
    		   $this->name = $name ;
    		   $this->id   = $id ;
    		}
    Je fais des erreurs ok, mais ne suis pas le seul mais vous ètes excusés...
    Maintenant, je pense que je peux flagger ce problème comme résolu !

    Merci à tous et bon réveillon !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PHP 5.3] Conseil pour conversion HTML - PHP
    Par ETVigan dans le forum Langage
    Réponses: 9
    Dernier message: 21/04/2011, 15h21
  2. [XSLT][PHP]conversion balise html
    Par abdoulax dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2006, 12h34
  3. [HTML][PHP] Les liens href...
    Par hackrobat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/03/2005, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo