Inclure n'importe quoi dans une variable ??

Petit nouveau ! | 1 Messages

18 avr. 2010, 03:07

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

ViPHP
ViPHP | 1996 Messages

18 avr. 2010, 09:27

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.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

devlop78
Invité n'ayant pas de compte PHPfrance

18 avr. 2010, 16:32

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']

devlop78
Invité n'ayant pas de compte PHPfrance

18 avr. 2010, 16:34

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.