Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2007, 19h48   #1
Membre habitué
 
Homme Mickael
Webmaster
Inscription : avril 2007
Messages : 224
Détails du profil
Informations personnelles :
Nom : Homme Mickael
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2007
Messages : 224
Points : 136
Points : 136
Par défaut Créer un fichier avec fopen et contenu PHP

Bonjour,

J'ai un fichier qui crée et écrit , par fopen.., du contenu php dans un nouveau fichier. Mon soucis c'est que; quand j'ouvre le fichier qu'il vient de créer, ma variable n'est pas remplacée. Hors elle est bien défini dans ce premier.
Le probleme viendrai des ' et ".

Code :
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
if (!$fichier=fopen("$nom2/index.php","w+")){echo ("Ouverture impossible");}
 
 else {
 
 $text='<?php
include "../../include/conf.php";
$retour = mysql_query(\'SELECT * FROM sites WHERE nom=$nom2\' ) or die(mysql_error());
$donnees = mysql_fetch_array($retour);
mysql_close();
 
 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
	  <html>
	  <head>
	  <title><?php echo $donnees[\'nom\'];?></title>
	  <meta name="keywords" content="<?php echo $donnees[\'tag\'];?>" />
	  </head>
<frameset rows="*,*" frameborder="0" title="glimov">
 
<frame src="http://www.monsite.com/<?php echo $donnees[\'theme_url\']; ?>?nom=$nom2&menu=Accueil" />
<noframes></noframes> 
 
</html>';
Le code s'écrit correctement, mais c'est la variable "$nom2" qui n'est pas remplacée. Si je fais en sorte que le fichier crée contien juste $nom2, la, ca fonctionne. Je ne sais pas si je suis assez clair..

Ca me saoul ! Si vous comprenez quelque chose aidez moi s'il vous plait. Merci d'avance ^^'
Seta-san est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2007, 20h07   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Les variables pour être interpolées (remplacées par leur valeur) doivent être mises entre double quotes. Utilisez une concaténation ou changez de délimiteurs. Exemple :
Code :
1
2
3
4
5
echo '$retour = mysql_query(\'SELECT * FROM sites WHERE nom=' . $nom2 . '\' ) or die(mysql_error());';
# Ou
echo "\$retour = mysql_query('SELECT * FROM sites WHERE nom=$nom2' ) or die(mysql_error());";
# Ou encore
echo "\$retour = mysql_query('SELECT * FROM sites WHERE nom=" . $nom2 . "' ) or die(mysql_error());";
J'imagine que le champ nom est de type (var)char donc sa valeur aura besoin de quotes et il est conseillé d'utiliser la fonction mysql_real_escape_string.

A voir aussi : Apostrophes ou guillemets : lesquels choisir ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2007, 20h49   #3
Membre habitué
 
Homme Mickael
Webmaster
Inscription : avril 2007
Messages : 224
Détails du profil
Informations personnelles :
Nom : Homme Mickael
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : avril 2007
Messages : 224
Points : 136
Points : 136
Merci julp !
J'avais déja essayé avec les ".$nom2." ou '...' . En vain.
Chacune de tes méthode non pas fonctionné sauf quand j'ai fait comme cela :
Code :
$retour = mysql_query("SELECT * FROM sites WHERE nom=\''.$nom2.'\'")
Ca marche correctement maintenant ! merci à toi pour ton aide et pour la doc !!
Seta-san est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h37.


 
 
 
 
Partenaires

Hébergement Web