Probleme d'ecriture dans un fichier

Sma
Invité n'ayant pas de compte PHPfrance

25 juil. 2005, 15:45

Bonjour à tous!

J'essaye d'écrire dans un fichier que je crée en mode écriture, mais il ne me reconnait pas les variables :
$boxes_req,$boxes,$boxes_query,$box,... 
En fait tous ce que je veux écrire dans le fichier et qui contient un "$" il ne me prend pas!
Je pense qu'il faut les convertir en chaines de caractères mais comment faire?

Voici mon code:
$file_name= fopen("includes/boxes/".$nom_fich, "w"); 
  
 $creer= "<?php"; 
 $creer= $creer. " $boxes_req = \"select `page_lien`, `nom_lien` from contenu_boxes where activer='1' and id_boxes='\"$id_boxes\"' order by position_lien asc\" ;"; 
    $creer = $creer. " $boxes_query = tep_db_query($boxes_req); "; 
    $creer = $creer. " $nbr_boxes= tep_db_num_rows($boxes_query);"; 
 
    $creer = $creer. "$contenu='';"; 
    $creer = $creer. " while ($boxes = tep_db_fetch_array($boxes_query))"; 
    $creer = $creer. "{"; 
 //$creer = $creer. " $contenu=$contenu.\"<a href='\" . tep_href_link(PAGE.$boxes['page_lien']) . \"'>\". $boxes['nom_lien'] . \"</a><br>\"; "; 
    $creer = $creer. "}"; 
 
    $creer = $creer. " $box= new Boxe();"; 
    $creer = $creer. "echo $box->Boxe_Header($titre,'',$color);"; 
 $creer= $creer. "?>"; 
 
 fwrite($file_name, $creer); 
 fclose($file_name);


Merci d'avance :)

Sma.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 juil. 2005, 15:49

c'est qu'avec des guillemets autour, PHP les remplace par leur valeur

si tu veux écrire $variable dans ton fichier, entoure ta chaine de guillemets simples ;)

Mammouth du PHP | 19672 Messages

25 juil. 2005, 15:49

Modération : merci de lire les règlements en particulier la première ligne de l'article 3. J'ai édité et corrigé, tu peux t'insrire pour pouvoir le faire toi-même à l'avenir en éditant si tu oublies.

En outre il serait bien de lire les description des différents forums: PHP et Débuter en PHP ne s'adressent pas toujours au même public, à lire ton code, il a plus sa place dans l'autre. Conclusion, je déplace
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

25 juil. 2005, 16:05

Salut ouckileou!
j'ai essayé de mettre entre guillemets simples mais ca marche po:cry:

Merci pour ton aide.

Sma

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 juil. 2005, 16:09

fais voir le nouveau code stp

Petit nouveau ! | 8 Messages

25 juil. 2005, 16:15

Resalut!

Voici le nouveau code :

Code : Tout sélectionner

<?php include 'includes/application_top.php'; ?> <?php $host="localhost"; //Adresse du serveur Mysql $user="root"; //Login pour accéder a la base de données $mdp=""; //Password pour accéder a la base de données $database="site_mairie"; $table_name = 'contenu_boxes'; $connect=mysql_connect("$host","$user","$mdp") or die ("Impossible de se connecter au serveur"); if (!$connect) die ("Impossible de se connecter a la base de données"); mysql_select_db($database)or die ("Impossible d'ouvrir la base $database:".mysql_error()); if(!empty($_POST['id_boxes'])) { $id_boxes=$_POST['id_boxes']; } else { $id_boxes=''; } if(!empty($_POST['nom_lien'])) { $nom_lien=$_POST['nom_lien']; } else { $nom_lien=''; } if(!empty($_POST['page_lien'])) { $page_lien=$_POST['page_lien']; } else { $page_lien=''; } if(!empty($_POST['activer'])) { $activer=$_POST['activer']; } else { $activer='0'; } if(!empty($_POST['position_lien'])) { $position_lien=$_POST['position_lien']; } else { $position_lien=''; } if(!empty($_POST['couleur_lien'])) { $couleur_lien=$_POST['couleur_lien']; } else { $couleur_lien=''; } ?> <HTML> <HEAD> <TITLE>Création des liens d'une box</TITLE> <FONT FACE='Arial,Trebuchet MS, Helvetica'> </HEAD> <BODY TEXT='#330000' BGCOLOR='#FCEFBE' ALINK='#0000FF' VLINK='#990099'> <FORM ACTION='' METHOD='POST' name='box'> <H3> <CENTER> <FONT COLOR='#0000FF'>Création des liens d'une box</FONT> </CENTER> </H3> <CENTER> <HR WIDTH='75%' NOSHADE color='blue'><P> <I>Les champs sont obligatoires</I> <br><br> <TABLE BORDER='1' WIDTH='75%' HEIGHT='40'> <TR> <TH WIDTH='270'><div align='left'><B> Titre de la box :</B> </div></TH> <TD WIDTH='500' align='left'> <!-- <INPUT TYPE=text NAME='titre_box' VALUE="<?php echo $titre_box?>" SIZE='70'> --> <SELECT NAME="id_boxes"> <?php $query_hexa_couleur = "SELECT `id_boxes`,`titre_box` FROM `boxes` order by titre_box "; $result_hexa_couleur = mysql_query($query_hexa_couleur, $connect) or die("Impossible d'exécuter la requête : " . mysql_error()); //$num_rows_1 = mysql_num_rows($result_hexa_couleur); while($num_rows=mysql_fetch_array($result_hexa_couleur)){ echo "<option value='".$num_rows['id_boxes']."' "; echo ">".$num_rows['titre_box']."</option>\n"; } ?> </SELECT> </TD> </TR> <TR> <TH WIDTH='270'> <div align='left'><B> Titre du lien :</B> </div></TH> <TD WIDTH='329' align='left'> <INPUT TYPE='text' NAME='nom_lien' VALUE="<?php echo $nom_lien?>" SIZE='70'> </TD> </TR> <TR> <TH WIDTH='270'> <div align='left'><B> Nom de la page du lien en PHP :</B> </div></TH> <TD WIDTH='329' align='left'> <INPUT TYPE='text' NAME='page_lien' VALUE="<?php echo $page_lien?>" SIZE='70'> </TD> </TR> <TR> <TH WIDTH='270'> <div align='left'>Choisir l'activation du lien : </div></TH> <TD WIDTH='329' align='left'> <INPUT TYPE='checkbox' NAME='activer' VALUE='1'>Activer </TD> </TR> <TR> <TH WIDTH='270'> <div align='left'>Numero de position du lien : </div></TH> <TD WIDTH='329' align='left'> <INPUT TYPE='text' NAME='position_lien' VALUE="<?php echo $position_lien?>" SIZE='13'> </TD> </TR> <TR> <TH WIDTH='270'> <div align='left'>Couleur du lien : </div></TH> <TD WIDTH='329' align='left'> <SELECT NAME="couleur_lien"> <?php $query_hexa_couleur = "SELECT `hexa_couleur`,`libelle_couleur` FROM `couleurs` order by libelle_couleur "; $result_hexa_couleur = mysql_query($query_hexa_couleur, $connect) or die("Impossible d'exécuter la requête : " . mysql_error()); //$num_rows_1 = mysql_num_rows($result_hexa_couleur); while($num_rows=mysql_fetch_array($result_hexa_couleur)){ echo "<option value='".$num_rows['hexa_couleur']."' "; echo ">".$num_rows['libelle_couleur']."</option>\n"; } ?> </SELECT> </TD> </TR> </TABLE> <br> <br> <INPUT TYPE='submit' NAME='Envoyer' VALUE='Envoyer'>&nbsp;&nbsp;&nbsp;&nbsp; <INPUT TYPE='reset' NAME='Effacer' VALUE='Effacer'> </CENTER> <HR WIDTH='75%' NOSHADE color='blue'> </FORM> </BODY> </HTML> <?php if ($id_boxes!='' && $page_lien && $nom_lien!='' && $position_lien!='' && $couleur_lien!='') { //Insertion dans la base $query = "insert into ".$table_name."(id_boxes, page_lien, activer, nom_lien, position_lien, couleur_lien) values('".$id_boxes."','".$page_lien."','".$activer."','".$nom_lien."','".$position_lien."','".$couleur_lien."')"; $result = mysql_query($query, $connect) or die("Impossible d'exécuter la requête : " . mysql_error()); //Recherche du nomp du fichier de la box: $select='nom_fichier, titre_box, couleur'; $where="id_boxes= '".$_POST['id_boxes']."'"; $sql2='select ' .$select. ' from boxes where ' .$where; $result2 = mysql_query($sql2, $connect) or die("Impossible d'exécuter la requête : " . mysql_error()); $num_rows = mysql_num_rows($result2); while($num_rows=mysql_fetch_array($result2)) { $nom_fich=$num_rows['nom_fichier']; $titre=$num_rows['titre_box']; $color=$num_rows['couleur']; } //Suppression du fichier unlink("includes/boxes/".$nom_fich); echo "Le fichier"; echo "&nbsp;"; echo $nom_fich; echo "&nbsp;"; echo " a été supprimé"; echo "<br>"; //Création du nouveau fichier avec les vrais caractéristiques $file_name= fopen("includes/boxes/".$nom_fich, "w"); $creer= "<?php"; $creer= $creer. " '$boxes_req' = \"select `page_lien`, `nom_lien` from contenu_boxes where activer='1' and id_boxes='\"$id_boxes\"' order by position_lien asc\" ;"; $creer = $creer. " '$boxes_query' = tep_db_query($boxes_req); "; $creer = $creer. " '$nbr_boxes'= tep_db_num_rows($boxes_query);"; $creer = $creer. "'$contenu'='';"; $creer = $creer. " while ('$boxes' = tep_db_fetch_array($boxes_query))"; $creer = $creer. "{"; //$creer = $creer. " $contenu=$contenu.\"<a href='\" . tep_href_link(PAGE.$boxes['page_lien']) . \"'>\". $boxes['nom_lien'] . \"</a><br>\"; "; $creer = $creer. "}"; $creer = $creer. " '$box'= new Boxe();"; $creer = $creer. "echo '$box'->Boxe_Header($titre,'',$color);"; $creer= $creer. "?>"; fwrite($file_name, $creer); fclose($file_name); echo "Lien inséré "; } else { echo "Verifiez que tous les champs sont complets"; } //tep_db_close(DB_DATABASE); mysql_close($connect); ?>
Merci ouckileou.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 juil. 2005, 16:17

heu... juste la partie qui traite le fichier et remplace les balises

Code : Tout sélectionner

par [ php] c'est mieux ;) et vite avant qu'un modo passe par là !! sinon je t'ai dit de remplacer les guillemets par des quotes, pas d'ne rajouter [php] $creer = $creer. '$boxes_query = tep_db_query($boxes_req); '; [/php] tu peux aussi simplifier ton écriture [php] $creer .= '$boxes_query = tep_db_query($boxes_req); '; [/php]
Modifié en dernier par ouckileou le 25 juil. 2005, 16:34, modifié 2 fois.

Petit nouveau ! | 8 Messages

25 juil. 2005, 16:22

Bonjour,
Le voila:
$file_name= fopen("includes/boxes/".$nom_fich, "w");
	
	$creer= "<?php";
	$creer= $creer. " '$boxes_req' = \"select `page_lien`, `nom_lien` from contenu_boxes where activer='1' and id_boxes='\"$id_boxes\"' order by position_lien asc\" ;";
    $creer = $creer. " '$boxes_query' = tep_db_query('$boxes_req'); ";
    $creer = $creer. " '$nbr_boxes'= tep_db_num_rows('$boxes_query');";

    $creer = $creer. "'$contenu'='';";
    $creer = $creer. " while ('$boxes' = tep_db_fetch_array('$boxes_query'))";
    $creer = $creer. "{";
	//$creer = $creer. " $contenu=$contenu.\"<a href='\" . tep_href_link(PAGE.$boxes['page_lien']) . \"'>\". $boxes['nom_lien'] . \"</a><br>\"; ";
    $creer = $creer. "}";

    $creer = $creer. " '$box'= new Boxe();";
    $creer = $creer. "echo '$box'->Boxe_Header($titre,'',$color);";
	$creer= $creer. "?>";

	fwrite($file_name, $creer);
	fclose($file_name);
Merci encore.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 juil. 2005, 16:35

regarde mon message précédent j'ai répondu

Petit nouveau ! | 8 Messages

26 juil. 2005, 13:27

Slt merci!

pour ton aide ca marche impek : :lol:

A la prochaine!