Je deviens dingue avec fopen !
                    
        
     
             
                    ephelya
    
        
    
                    Messages postés
            
                
     
             
            296
        
            
                                    Statut
            Membre
                    
                -
                                     
ephelya Messages postés 296 Statut Membre -
        ephelya Messages postés 296 Statut Membre -
        Bonjour, 
J'essaie de générer des feuilles de style dynamiquement avec fopen.
Je récupère les variable depuis l'url, et je les envoie dans la classe Styles qui doit normalement créer ma feuille style.temp.css.
J'ai ainsi une variable $fontfamily qui est bien reconnue puisque echo $fontfamily m'affiche bien une valeur.
Par ailleurs, si je fais :
pas de problème, ça m'enregistre bien "ok" dans ma feuille.
Si je fais
Mais si je fais
Quelqu'un a une idée d'où ça peut venir?
Je trouve ça complètement irrationnel et ça me rend folle!!
Merci d'avance pour votre aide !
            
            
                
            
                
    
    
    
        J'essaie de générer des feuilles de style dynamiquement avec fopen.
Je récupère les variable depuis l'url, et je les envoie dans la classe Styles qui doit normalement créer ma feuille style.temp.css.
J'ai ainsi une variable $fontfamily qui est bien reconnue puisque echo $fontfamily m'affiche bien une valeur.
Par ailleurs, si je fais :
$feuille = "ok";
if (@mkdir ("CSS/")) {}
$ouverture = fopen("CSS/style.temp.css", "w");
fwrite($ouverture, $feuille); 
fclose($ouverture);
pas de problème, ça m'enregistre bien "ok" dans ma feuille.
Si je fais
if ($fontfamily !='') {echo "ok";} , là aussi, ça fonctionne nickel.
Mais si je fais
if ($fontfamily !='') { $feuille ="font-family: $fontfamily"; }
f (@mkdir ("CSS/")) {}
$ouverture = fopen("CSS/style.temp.css", "w");
fwrite($ouverture, $feuille); 
fclose($ouverture);
, là, rien à faire, ça ne m'enregistre rien, pas même "font-family : "...
Quelqu'un a une idée d'où ça peut venir?
Je trouve ça complètement irrationnel et ça me rend folle!!
Merci d'avance pour votre aide !
        A voir également:         
- Je deviens dingue avec fopen !
- Un vendredi Dingue Dingue Dingue :) ✓ - Forum Musique / Radio / Clip
- Fopen() ✓ - Forum C
- Fopen ✓ - Forum PHP
- Je deviens fou! - Forum Samsung
- Probleme fopen (C) ✓ - Forum Programmation
4 réponses
                        
                    petit souci avec les quotes ?   
Essaie
if ($fontfamily !='') { $feuille ="font-family: '$fontfamily'"; }
ou
if ($fontfamily !='') { $feuille ="font-family: ".$fontfamily; }
    
                Essaie
if ($fontfamily !='') { $feuille ="font-family: '$fontfamily'"; }
ou
if ($fontfamily !='') { $feuille ="font-family: ".$fontfamily; }
                        
                    Merci de ta réponse, loupix, mais non, ça ne change rien...
Ce que je ne comprends pas, c'est que les autres variables ne posent pas de problème, donc ça semble venir de la variable elle-même, mais qu'est-ce qui peut bien faire que la condition if ($fontfamily !='') est remplie ou pas remplie selon ce qu'on lui demande d'exécuter après???
Par ailleurs, il arrive de temps en temps que d'un seul coup, ça fonctionne, ça me crée bien ma feuille de style, mais dès que j'actualise la page d'envoi des infos, de nouveau, ça déconne...
    
                Ce que je ne comprends pas, c'est que les autres variables ne posent pas de problème, donc ça semble venir de la variable elle-même, mais qu'est-ce qui peut bien faire que la condition if ($fontfamily !='') est remplie ou pas remplie selon ce qu'on lui demande d'exécuter après???
Par ailleurs, il arrive de temps en temps que d'un seul coup, ça fonctionne, ça me crée bien ma feuille de style, mais dès que j'actualise la page d'envoi des infos, de nouveau, ça déconne...
                        
                    Salut salut,
C'est vrai que ça parait plutôt bizarre!
Tu peux poster le bout de code entier de ce qui ne fonctionne pas , peut être il y a t il quelque chose que nous n'avons pas vu.
 
                
                
    
                C'est vrai que ça parait plutôt bizarre!
Tu peux poster le bout de code entier de ce qui ne fonctionne pas , peut être il y a t il quelque chose que nous n'avons pas vu.
                        
                    c'est à dire que le code complet est très long, et je ne sais pas trop à quel endroit ça peut déconner, mais je vous met tout ce qui concerne $fontfamily.
Jusqu'ici, le code a toujours fonctionné jusque là.
A ce stade, un echo $fontfamily m'affiche bien la police recherchée.
Je crée ma feuille de style :
A l'écran, j'ai bien:
fontfamily = Unkempt ben oui ça marche ! feuille = font-family1 font-family2: Unkempt font-family3 : Unkempt; dans CSS/style.temp.css
mais dans ma feuille de style, j'ai juste :
font-family1 font-family2:
PAR CONTRE si je lui indique $fontfamily = 'arial' (ou n'importe quoi d'autre), là ça fonctionne parfaitement.
Je ne sais pas si ça va permettre d'y voir beaucoup plus clair, moi je nage en pleine 4ème dimension, là...
    
                
Traitement du formulaire
$url = $_GET;
$donnees = array(
[...]
'fontfamily' => $url['fontfamily'],
$fontgroup = $url['fontgroup'],
[...]
);
Je récupère les infos stockées en serialize dans la bdd pour (re)créer la feuille de style et mettre à jour la table :
if ($css = Styles::getcssbase($idsite))
{
      $nstyle = unserialize($css);
      foreach ($donnees as $id => $val)
      {      
            $method = 'set'.ucfirst($id);
            if (method_exists($nstyle, $method))
            {
                  $nstyle->$method($val);
            }
            else { echo "pb avec $id<br />";}
      }  
}
else
{	
     $nstyle = new Styles ($donnees); 
}
$nstyle -> create_file($cont, 'temp', $idsite, '');
Jusqu'ici, le code a toujours fonctionné jusque là.
 public function create_file($type, $action, $site)
{
     if ($action=='temp') 
     {
          $cont = $type.".temp";
     }
     else { $cont = $type; }
     $fontgroup= $this -> _fontgroup; 
     //on récupère les polices associées au groupe de polices
     $fontgroup = Fontgroups::getlistfonts($fontgroup); 
     $fontfamily= $this -> _fontfamily; 
     // on récupère la bonne police à afficher
     $fontfamily = $fontgroup[$fontfamily]; 
}
A ce stade, un echo $fontfamily m'affiche bien la police recherchée.
Je crée ma feuille de style :
if ($type == 'style')
 {
	echo "fontfamily = $fontfamily ";              
	if ($fontfamily != '') {echo "ben oui ça marche ! "; }    
	$feuille .= "font-family1 ";
	$feuille .= "font-family2: $fontfamily ";
	if ($fontfamily !='') { $feuille .= "font-family3 : $fontfamily; ";} 
 }
if (@mkdir ("CSS/")) {}
$ouverture = fopen("CSS/$cont.css", "w");
echo "feuille = $feuille dans CSS/$cont.css";
fwrite($ouverture, $feuille); 
fclose($ouverture);
echo "<a href='CSS/$cont.css'>lien</a>";
A l'écran, j'ai bien:
fontfamily = Unkempt ben oui ça marche ! feuille = font-family1 font-family2: Unkempt font-family3 : Unkempt; dans CSS/style.temp.css
mais dans ma feuille de style, j'ai juste :
font-family1 font-family2:
PAR CONTRE si je lui indique $fontfamily = 'arial' (ou n'importe quoi d'autre), là ça fonctionne parfaitement.
Je ne sais pas si ça va permettre d'y voir beaucoup plus clair, moi je nage en pleine 4ème dimension, là...
