[Résolu] insertion d'un script php dans echo

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Résolu] insertion d'un script php dans echo

par Truc » 20 mai 2006, 23:27

Truc (?).
Oui oui c'est bien ça :wink:

Les switch sont toujours plus clair dans la lecture en tous cas niveau optimisation ou rapidité faudrait te faire ton propore benchmark. Les bench se contredisent souvent à ce sujet mais en voila un.

par Lucifer » 20 mai 2006, 20:47

Effectivement. Merci Truc (?).

Comme je débute en Php, j'ai adopté la méthode "brutale" des if... elseif... else. Je vais maintenant essayer ton code.

Par contre, la simplification du code optimise-t-elle son exécution ? C'est à dire, la méthode du switch() est-elle mieux exploitée par les serveurs que les if... ?

par Truc » 20 mai 2006, 17:01

Tu peux pas mal simplifier le code avec un switch() et en sortant le code HTML du traitement php:
<?php

switch(LANGUAGE)
{
	case "FR":		
		$id_poll_apoll2 = 1;
		break;
	case "EN":		
		$id_poll_apoll2 = 2;
		break;
	case "DE":		
		$id_poll_apoll2 = 3;
		break;
	default:
		$id_poll_apoll2 = 2;
}
?>

<div id="layer4" style="position: absolute; top: 850px; width: auto">
<div style="text-align: center"><font color="#CC0000"><?php echo $site_lang['Main_poll']; ?></font></div>
<div style="text-align: center">

<?php
    unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);    
    $chem_script_apoll2 = "./poll/";
    include($chem_script_apoll2."poll.php");
?>
</div></div>

par Lucifer » 20 mai 2006, 16:49

Cà y est ! J'ai trouvé la soluce qui fonctionne :
<?php
if (LANGUAGE=="FR")
{
	echo '<div id="layer4" style="position: absolute; top: 850px; width: auto">
<div style="text-align: center"><font color="#CC0000">'.$site_lang['Main_poll'].'</font></div>
<div style="text-align: center">';
	unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);
	$id_poll_apoll2 = 1;
	$chem_script_apoll2 = "./poll/";
	include($chem_script_apoll2."poll.php");
	echo '</div></div>';
}
elseif (LANGUAGE=="EN")
{
	echo '<div id="layer4" style="position: absolute; top: 850px; width: auto">
<div style="text-align: center"><font color="#CC0000">'.$site_lang['Main_poll'].'</font></div>
<div style="text-align: center">';
	unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);
	$id_poll_apoll2 = 2;
	$chem_script_apoll2 = "./poll/";
	include($chem_script_apoll2."poll.php");
	echo '</div></div>';
}
	elseif (LANGUAGE=="DE")
{
	echo '<div id="layer4" style="position: absolute; top: 850px; width: auto">
<div style="text-align: center"><font color="#CC0000">'.$site_lang['Main_poll'].'</font></div>
<div style="text-align: center">';
	unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);
	$id_poll_apoll2 = 3;
	$chem_script_apoll2 = "./poll/";
	include($chem_script_apoll2."poll.php");
	echo '</div></div>';
}
else 
{
	echo '<div id="layer4" style="position: absolute; top: 850px; width: auto">
<div style="text-align: center"><font color="#CC0000">'.$site_lang['Main_poll'].'</font></div>
<div style="text-align: center">';
	unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);
	$id_poll_apoll2 = 2;
	$chem_script_apoll2 = "./poll/";
	include($chem_script_apoll2."poll.php");
	echo '</div></div>';
}
?>
Merci à tous pour votre aide. Je passe le sujet en résolu.

par Lucifer » 20 mai 2006, 16:18

La balise n'est pas <? php mais <?php.
Grrr... En plus je le savais... Mais çà ne fonctionne pas non plus : Parse error sur cette ligne.
unset() détruit les variables sans retour tu y fait donc appel à la suite du code mais sans l'intégrer au contenu HTML. En clair pas de concaténation dessus
Cela veut-il dire qu'il me faut passer unset() après la première balise <?php ? Je vais essayer mais j'ai un doute...

par Truc » 20 mai 2006, 14:09

il faut coller "<?" avec "php" => "<?php"

que comptes tu concaténer avec unset() ?

unset() détruit les variables sans retour tu y fait donc appel à la suite du code mais sans l'intégrer au contenu HTML. En clair pas de concaténation dessus :wink:

par Shrell » 20 mai 2006, 14:08

La balise n'est pas <? php mais <?php.
Après, à première vue je dirais de faire ça :
 
<div id="layer4" style="position: absolute; top: 850px; width: auto"> 
      <div style="text-align: center"> 
            <font color="#CC0000"><?=$site_lang['Main_poll'] ?></font> 
      </div> 
      <div style="text-align: center">
<?php
unset($id_rubrique_apoll2, $id_poll_apoll2,$voter_apoll2); 
$id_poll_apoll2 = (LANGUAGE=="FR")? 1 : 2; 
$chem_script_apoll2 ="./poll/"; 
include($chem_script_apoll2."poll.php");
?> 
</div> 
</div>

par Lucifer » 20 mai 2006, 13:59

Salut et merci pour ta réponse.

En fait, j'ai essayé pas mal de possibilités pour insérer mon code et l'une d'entre elles était de tenter un concaténation d'où la présence des points. Mais çà ne marche pas.

J'ai essayé aussi en mettant les balises <? php... Pas mieux.

C'est vrai aussi que j'ai jeté mon code un peu à l'arrache. Le voici complet avec les identations :
<? php
if (LANGUAGE=="FR") {
echo '
<div id="layer4" style="position: absolute; top: 850px; width: auto">
      <div style="text-align: center">
            <font color="#CC0000">'.$site_lang['Main_poll'].'</font>
      </div>
      <div style="text-align: center">'
            <? php unset($id_rubrique_apoll2, $id_poll_apoll2,$voter_apoll2);
            $id_poll_apoll2 = 1;
            $chem_script_apoll2 ="./poll/";
            include($chem_script_apoll2."poll.php"); ?>
      '</div>
</div>';
} elseif (LANGUAGE=="EN") {
echo '
<div id="layer4" style="position: absolute; top: 850px; width: auto">
      <div style="text-align: center">
            <font color="#CC0000">'.$site_lang['Main_poll'].'</font>
      </div>
      <div style="text-align: center">'
            <? php unset($id_rubrique_apoll2, $id_poll_apoll2,$voter_apoll2);
            $id_poll_apoll2 = 2;
            $chem_script_apoll2 ="./poll/";
            include($chem_script_apoll2."poll.php"); ?>
      '</div>
</div>';
}
?>

par Cyrano » 20 mai 2006, 13:19

Deux trucs :
- à quoi servent les points qui commencent et finisent cette ligne de code;
- Ne peux-tu mettre des retours de ligne histoire de rendre ton code lisible ?
unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);
$id_poll_apoll2 = 1;
$chem_script_apoll2 = "./poll/";
include($chem_script_apoll2 ."poll.php");

par Lucifer » 20 mai 2006, 12:23

Personne ne sait m'apporter de réponse ?

Bah, je ne suis pas une foudre en Php mais j'ai le sentiment que je me débrouille mal sur ce coup. Je dois faire une erreur quelque part mais je n'arrive pas à trouver où.

Aidez moi svp !

Amicalement,

Eric

[Résolu] insertion d'un script php dans echo

par Lucifer » 19 mai 2006, 19:05

Bonjour à tous.

Je développe un site web perso en multilangues (ce qui fonctionne très bien) et je souhaiterai intégrer un sondage personnalisé pour chaque langue supportée par le site.

J'utilise un script existant (Alex_poll) avec lequel j'ai créé les différents sondages mais je n'arrive pas à l'intégrer dans ma gestion des langues de mon site.

Voici un extrait du code que je tente de faire passer :
if (LANGUAGE=="FR") {
echo '<div id="layer4" style="position: absolute; top: 850px; width: auto">
<div style="text-align: center"><font color="#CC0000">'.$site_lang['Main_poll'].'</font></div>
<div style="text-align: center">'.unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);$id_poll_apoll2 = 1;$chem_script_apoll2 = "./poll/";include($chem_script_apoll2."poll.php");.'</div></div>';
...
La variable $site_lang me retourne bien un texte dans la langue considérée, preuve que la langue est prise en compte. Par contre, la partie suivante me retourne un Parse error :
.unset($id_rubrique_apoll2, $id_poll_apoll2, $voter_apoll2);$id_poll_apoll2 = 1;$chem_script_apoll2 = "./poll/";include($chem_script_apoll2."poll.php");.
Est-il possible de réaliser ce que je souhaite faire ? Et si oui, comment ?

Merci d'avance pour votre aide.

Amicalement,

Eric