Problème d'écriture dans un fichier texte ! [Résolu]

Signaler
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Salut,

J'essai d'écrire dans un fichier texte qui est vide sauf que ça ne marche pas...

Je n'ai aucune erreur...

mon code :

                Divers :

                    <form action="#" method="POST" name="options">
                        Activer le BBcode : <label for="bbcode1">Oui</label><label for="bbcode2">Non</label>

                        Activer les smileys : <label for="smileys1">Oui</label><label for="smileys2">Non</label>
                       
<hr/>
                    </form>
                    <?php
                    $texte = '';
                   
                    if(isset($_POST['bbcode[]']) || isset($_POST['smileys[]'])) {
                        if(isset($_POST['bbcode[]'])) {
                            $texte .= 'BBcode : '.$_POST['bbcode[]'].'  ';
                        }
                        if(isset($_POST['smileys[]'])) {
                            $texte .= 'Smileys : '.$_POST['smileys[]'].'  ';
                        }
                        $chemin = 'preferences.txt';
                        $fichier = fopen($chemin, 'w');
                        fwrite($fichier, $texte);
                        fclose($fichier);
                    }
                    ?>
                Design :

                    <form action="#" method="POST" name="mise_en_page">
                        Couleur de fond : <label for="noir">Noir</label><label for="rouge">Rouge</label><label for="jaune">Jaune</label><label for="rose">Rose</label><label for="vert">Vert</label><label for="blanc">Blanc</label>

                       

                    </form>
                    <?php
                    if(isset($_POST['couleur[]'])) {
                        $chemin = 'preferences.txt';
                        $texte .= 'Couleur : '.$_POST['couleur[]'].'  ';
                        $fichier = fopen($chemin, 'w');
                        fwrite($fichier, $texte);
                        fclose($fichier);
                    }
                    ?>
       

Merci de votre aide futur !

a++

Si la réponse vous convient, pensez : Réponse acceptée !

12 réponses

Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
var_dump ($_POST['couleur']); devrait te dire array ();

pour ton probleme de fichier : w efface le fichier (met sa taille à 0). Si tu veux écrire à la fin sans perdre les données, utilise a+

http://www.ReFlectiv.Net
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Salut codefalse,

En fait je mettait des crochets a mon nom d'input alors que ce n'était pas un array, j'ai enlevé les crochets et tout est rentré dans l'ordre...

Sauf que je ne sais pas comment faire pour ne remplacer que la ligne concerné (en l'occurence ce n'est pas une ligne, les valeurs sont séparés par deux espaces)

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Oui il faut mettre des crochets pour le checkbox uniquement, je n'avais pas assez regardé ton code et vu que c'était des radios. C'est quoi ta dernière question ? je n'ai pas compris.
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Dans ce cas stocke tes données dans un fichier xml et utilise simplexml.

Ou alors mets ça dans un fichier .ini, c'est peut-être plus propre si c'est un fichier de config ton truc. Et pour parser un .ini, ben tu te fais une fonction maison avec file( ) ou fgets( ).

à+
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Salut,

il serait temps que tu apprennes à débuguer tes scripts, il suffit de procéder avec méthode.

Est-ce que le fichier existe et est-ce qu'on arrive à l'ouvrir pour y écrire ?
-> oui puisque c'est fopen w, et il n'y a pas de message d'erreur.

Ce qui implique que c'est la variable que tu mets dedans qui est vide.

En effet, couleur[] ne peut pas être une chaîne alors c'est mal parti...
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Salut Evangun,

En effet il me reste baucoup a apprendre, je ne suis qu'un débutant donc il me manque de l'expèrience...

Pourquoi $_POST['couleur[]'] ne peut pas être une chaine ?

a++

PS : merci de la réponse !

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Mais parce que c'est un tableau :)
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Au passage, un simple echo $_POST['couleur[]'] t'aurait donné la réponse à ton problème dès le début. Quand un problème survient (et même avant), il faut réfléchir méthodiquement, sinon tu n'y arriveras pas.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
ok, merci !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
J'ai essayé de faire un echo et ça n'a rien affiché...

J'ai essayé de faire un print_r()  sauf que ça n'a rien affiché non plus...

J'ai essayé de faire un var_dump() et ça m'a affiché 3 NULL (1 par tableau)

Ma question est donc :

Comment faire pour que mon $_POST[] prenne la valeur de la case radio coché ?

Merci de ton aide !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Ma dernière question c'est :

Comment faire pour ne remplacer que le texte concerné par le nouveau texte dans mon fichier ?

Explication :

J'ai deux formulaires, l'un sert a activer ou désactiver les smileys et le BBcode, l'autre sert a choisir la couleur de fond de la page...

Comment faire pour n'effacer que la partie qui concerne le formulaire dans le fichier texte ?

Au pire je regrouperai tout dans un formulaire et je metterai un mode plus approprié (effacer tout avant de réécrire, je n'ai pas encore cherché car j'aimerai conserver mes deux formulaires)...

Merci de votre aide !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
ok,

Merci de ton aide,

Je crois que pour un fichier de configuration le .ini c'est mieux, j'ai déja fait un chat avec du xml alors je vais m'essayer avec un fichier .ini !

a++

Si la réponse vous convient, pensez : Réponse acceptée !