2010-11-17 4 views
0

Voici le code:PHP Echo échoue dans Citations

<form method="POST" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data"> 

Il affiche en HTML: <form method="POST" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data">

PHP fonctionne sur le reste de mon code, mais celui-ci m'a démangeaisons tête

EDIT :

Voici le code pour l'afficher:

<? 
$AssignedTo = $_POST['id']; 
if (isset ($_POST['submit'])) // if the form was submitted, display their name 
{ 
// Action to be completed once the form is submitted 
} 
else // form hasn't been submitted, so display the form 
{ 
echo '<form method="POST" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 
} 
?> 
+2

Cela fonctionnera très bien. Plus d'informations sont nécessaires ici. – Brad

+0

vérifier les guillemets ouverts dans le code précédent ou la balise php ouverte par exemple: infinity

+0

Notez également que $ PHP_SELF n'est pas une variable valide en soi (vous aurez besoin de la définir). Voir la [liste des variables réservées] (http://php.net/manual/fr/reserved.variables.php) et la [liste des constantes réservées] (http://php.net/manual/fr/reserved. constants.php).Les informations que vous recherchez sont dans '$ _SERVER ['PHP_SELF']': voir [les docs sur '$ _SERVER'] (http://www.php.net/manual/fr/reserved.variables.server. php). – ircmaxell

Répondre

2

Puisque vous faisant écho déjà la chaîne enveloppant dans un autre bloc de PHP est inutile et gagné 't être analysé

<? 
$AssignedTo = $_POST['id']; 
if (isset ($_POST['submit'])) // if the form was submitted, display their name 
{ 
// Action to be completed once the form is submitted 
} 
else // form hasn't been submitted, so display the form 
{ 
echo '<form method="POST" action="'.$PHP_SELF.'" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 
} 
?> 

Cela devrait fonctionner.

+0

N'a pas remarqué cela, je pensais que cela ferait écho en HTML et aurait donc besoin d'emballage à nouveau. – PwnageAtPwn

1

Ne devrait-il pas être <?php plutôt que <??

Qu'advient-il si vous utilisez

<? echo "action='".$PHP_SELF."'"; ?>

(vous envelopper l'action à l'intérieur de l'écho)?

En utilisant « fait PHP » guillemets simples complier traiter la chose comme une chaîne littérale, donc il ne sera jamais écho à la variable référencée par $ PHP_SELF, mais la chaîne réelle « PHP_SELF $ »

(Aussi, vous « ai des balises PHP imbriquées Cela n'a aucun sens)

echo '<form method="POST" action="'.$PHP_SELF.'" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 

Méthode alternative:

printf('<form method="POST" action="%s" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>', $PHP_SELF); 
+0

C'est une version plus courte et j'ai déjà essayé PwnageAtPwn

+0

vous avez manqué double citation avant le point-virgule – infinity

+0

@infinity: Cheers :) (Ce n'est pas que c'est pertinent maintenant) – Psytronic

0

Première utilisation <?php vérifie également les guillemets ouverts dans le code précédent. Si vous postez le reste du code serait plus facile.

balises PHP Nested très mal:

<?php 
$AssignedTo = $_POST['id']; 
if (isset ($_POST['submit'])) // if the form was submitted, display their name 
{ 
// Action to be completed once the form is submitted 
} 
else // form hasn't been submitted, so display the form 
{ 
echo '<form method="POST" action="'.echo $PHP_SELF.'" enctype="multipart/form-data"> 
<h2>**** - Add </h2> 
</form>'; 
} 
?> 
+0

Déjà fait cela, mais ne fonctionne toujours pas, alors c'est pourquoi j'ai essayé < ? – PwnageAtPwn

+0

vérifier la réponse – infinity

0

Etes-vous sûr des balises courtes sont autorisés à exécuter php?

+0

Oui, je l'ai utilisé plus haut dans mon code et il ne l'affiche pas. – PwnageAtPwn

+0

Etes-vous sûr de ne pas avoir de nombreuses balises php imbriquées? – MatTheCat

0

Ne pas inclure les balises ouvertes PHP au sein de PHP lui-même

echo '<form method="POST" action="',$PHP_SELF,'" enctype="multipart/form-data"> 
+0

J'ai tendance à éviter la syntaxe ',' dans une instruction 'echo' et à utiliser à la place la concaténation' .' Cela signifie qu'il est facile ensuite d'assigner la chaîne à une variable au lieu de l'imprimer avec 'echo'. – Treffynnon