Page 1 sur 1

Inclure n'importe quoi dans une variable ??

Posté : 18 avr. 2010, 03:07
par aurelien78
Bonjour!

Voila je voudrais savoir si il es possible d'inclure n'importe quel fragment de code à l'intérieur d'une variable. Je m'explique: Je code une fonction qui génére automatiquement une page en fonction de certain paramètre, et je doit donc inclure un code php dans ma variable $file qui sera donc le code source de la page, mais voila! ça ne fonctionne pas, des erreurs de syntaxe se déclarent et je ne sais plus quoi faire !!

Voici mon code:
function createFile($champ)
	// On crée le fichier qui contiendra la requête autocompletion
	{
	
	$file = 'autocompletion/'.$champ;
	if(!file_exists($file)){	
	createDir('autocompletion');
	$code = "<?php
require '../functions.php';
$post = $_POST['autocontact'];
connect();
$sql = "select `contact` from `bill_user` WHERE `contact` LIKE '$post%'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo'<ul>';
while($data = mysql_fetch_assoc($req)){echo '<li>'.$data['contact'].'</li>';}
echo'</ul>';
@mysql_close();
?>";
 	file_put_contents( 'autocompletion/'.$champ.'.php', $code );
	}
	}
Je ne sais plus que faire!! je m'en remet à vos lumieres!!

Bien cordialement, aurelien

Re: Inclure n'importe quoi dans une variable ??

Posté : 18 avr. 2010, 09:27
par Aureusms
Si l'erreur se situe ici
file_put_contents( 'autocompletion/'.$champ.'.php', $code );
        }
        }

Je trouve cela normal : pas dans <?php ?>. Problème de copier coller ?
Sinon indique l'erreur affichée.

Re: Inclure n'importe quoi dans une variable ??

Posté : 18 avr. 2010, 16:32
par devlop78
Non le problème doit venir de

$code = "<?php
require '../functions.php';
$post = $_POST['autocontact'];

donc soit tu veux mettre la valeur de $_POST dans ta variable auquel cas tu mets ${_POST['autocontact']} soit ce n'est pas ta volonté auquel cas tu mets \$_POST['autocontact']

Re: Inclure n'importe quoi dans une variable ??

Posté : 18 avr. 2010, 16:34
par devlop78
Ouai bah ya pas que ça ... Essaie ça

$code = "<?php
require '../functions.php';
\$post = \$_POST['autocontact'];
connect();
\$sql = \"select `contact` from `bill_user` WHERE `contact` LIKE '\$post%'\";
\$req = mysql_query(\$sql) or die('Erreur SQL !<br>'.\$sql.'<br>'.mysql_error());
echo'<ul>';
while(\$data = mysql_fetch_assoc(\$req)){echo '<li>'.\$data['contact'].'</li>';}
echo'</ul>';
@mysql_close();
?>";

Sinon tu as des délimiteurs spéciaux pour ce genre de choses.