Code formulaire non-interprété [Résolu] & mémorisation valeurs

Code formulaire non-interprété [Résolu] & mémorisation valeurs - PHP - Programmation

Marsh Posté le 01-12-2007 à 21:54:20    

Bonjour
 
Etant tout nouveau dans le php, je suis face à des problèmes. En effet, j'essaie de faire un formulaire simple a partir d'un tuto http://www.swsysteme.com/tutos/tutocase.php et le code n'est pas interprété : au moment où je clique sur "voir" tel que mon code est entré (ci-dessous) ca m'ouvre mon fichier "fenetre.php" tel quel. J'ai mis les balises html et là, rien ne s'affiche sur ma nouvelle page. C'est surement un truc tou bête mais je ne vois pas. J'ai essayé avec plein de codes différents mais les symptomes sont toujours les mêmes...
 
J'ai lu le topic d'aide du forum, dont la catégorie "IV) Mon code s'affiche dans le navigateur au lieu d'etre interpreté " mais mon site fonctionne très bien et j'obtient les infos php sans soucis (PHP V5.2).
 
Voici le "formulaire.htm" =>
 
<form method='POST' action='fenetre.php'>
<input type='checkbox' name='case' value='on'>
Case à cocher simple .<br>
Cochez-la ou pas puis cliquez sur Voir pour connaitre le résultat.
<br><input type='submit' name='exple1' value='Voir'>
</form>
 
Voici le "fenetre.php" =>
 
<?  
if(!empty($_POST['case')){
echo"Vous avez coché la case";}
else
{echo"Vous n'avez pas coché la case";
}
?>  
 
Merci d'avance et désolé si ce problème à déjà été rencontré mais je n'ai rien trouvé.


Message édité par dusty35 le 03-12-2007 à 22:07:52
Reply

Marsh Posté le 01-12-2007 à 21:54:20   

Reply

Marsh Posté le 01-12-2007 à 21:58:10    

remplace <?  
par <?php

Reply

Marsh Posté le 01-12-2007 à 22:04:05    

Remplacer la première ) par ] dans la ligne

if(!empty($_POST['case')){


Reply

Marsh Posté le 01-12-2007 à 22:27:35    

Merci pour ces réponses mais ca ne fonctionne toujours pas (pour les parenthèses, c'était un mauvais copié collé dans mon post).
 
c'est vraiment étrange comme problème, j'ai l'impression que ca vient de chez moi car tout les sites qui proposaient des formulaires étaient dans le même principe. Avez vous déjà essayé un fichier dans le genre chez vous? Peut être que j'ai oublié quelques ligne dans mes fichiers?

Reply

Marsh Posté le 01-12-2007 à 22:48:52    

active l'affichage des erreur dans ton PHP au passage

Reply

Marsh Posté le 02-12-2007 à 12:30:10    

Bon bah en fait ca marche, en fait je testais le fichier dans un dossier quelconque de mon PC. J'ai déplacé mes 2 fichiers sous le répertoire "Web" de mon site et la ca fonctionne... C'était en effet un truc bête. QUelqu'un peux m'expliquer pourquoi ca ne fonctionne que sous le repertoire "Web"? c'est surement car ailleurs, le PHP n'est pas géré et pas interprété? Dans ce cas là, les essais en local ne sont pas possible, je me trompe?

Reply

Marsh Posté le 02-12-2007 à 12:43:29    

dusty35 a écrit :

Bon bah en fait ca marche, en fait je testais le fichier dans un dossier quelconque de mon PC. J'ai déplacé mes 2 fichiers sous le répertoire "Web" de mon site et la ca fonctionne... C'était en effet un truc bête. QUelqu'un peux m'expliquer pourquoi ca ne fonctionne que sous le repertoire "Web"? c'est surement car ailleurs, le PHP n'est pas géré et pas interprété? Dans ce cas là, les essais en local ne sont pas possible, je me trompe?


C'est le serveur qui interprete le PHP, pas le navigateur.
Donc il faut que le fichier te soit "servi" par le serveur web.
Et sinon oui, prend l'habitude de mettre "<?php" en début de script au lieu de "<?" ;)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 03-12-2007 à 13:47:57    

Ok merci beaucoup, je comprend mieux maintenant. je me permets de poser une autre question:
 
Mon projet est de faire un formulaire de configuration pour un lecteur Flash. J'utilise 3 fichiers:
-Mon formulaire en html/php avec mes choix de couleurs, les URL de mes sons, etc...
-Mon fichier de traitement en PHP qui ecrit la config dans le dernier fichier en fonction de ce que j'ai mis dans le formulaire.
-mon fichier texte "config.txt" (dont flash a besoin pour les parametres)
 
J'ai réussi a faire ce que je voulais : formulaire avec case a cocher, pickcolor, textearea, etc.. mais le soucis c'est que quand j'entre dans mon formulaire, je n'arrive pas a garder en "memoire" mes config déjà inserées. Si j'ai 3 pistes de musique dans mon lecteur et que je veux juste en rajouter une, je suis obligé de remettre les 3 autres avant car il les perd dans mon formulaire. Je ne souhaite pas utiliser MySql car le fichier de config ne contient qu'un 20aine de ligne. J'ai bien essayé pour lire mon txt les "$fread" dans "value=**" mais il me lit tout et pas une ligne particuliere.  
Quelqu'un aurait une idée?
 
EDIT: Le formulaire pour info
 
http://img104.imageshack.us/img104/9760/clfyh0.jpg


Message édité par dusty35 le 03-12-2007 à 14:00:37
Reply

Marsh Posté le 03-12-2007 à 20:05:43    

Je ne comprend vraiment pas, j'ai l'impression d'avoir tout essayé... ca ne doit pas être compliqué je pense mais trop pour moi. je ne sait même pas si j'utilise les bonnes méthodes déjà. SICKofitALL?

Reply

Marsh Posté le 04-12-2007 à 09:01:17    

peux-tu détailler ton soucis ?
et s'il s'agit de conserver des données, pourquoi vouloir se passer d'une base de données, genre mySQL ?


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 04-12-2007 à 09:01:17   

Reply

Marsh Posté le 07-12-2007 à 22:44:36    

il sagit bien de vouloir conserver les données. En fait, comme vous pouvez le voir sur la photo ci dessus il y a des champs pour l'URL du MP3. Prenons un exemple: Je mets l'url du son "Web/sons/divers/toto.mp3" et je renouvelle l'operation pour tout les champs désirés. je vais sur la page de mon lecteur et aucun soucis, toutes les pistes sont là, les couleurs définies sont celles que j'ai choisies, etc. Sauf que si je veux ajouter un sons, je suis obligé de rentrer a nouveau les X autres Url déjà renseignée+ la nouvelle url. Ceci car mon formulaire n'a pas gardé en mémoire les infos précedentes.  
 
Voici les codes:
 
Extrait du formulaire :

Code :
  1. <form action="player/clf.php" method="post" target="preview">   
  2. (...)
  3. URL piste 01:<input type="text" size="20" name="menu[0][" value=""> titre <input type="text" size="20" name="menu[1][" value="">


 
Extrait du traitement (clf.php):

Code :
  1. @$menu=$_POST['menu']; 
  2. $data=''.$date.'
  3. mp3='.$menu[0].'|'.$menu[2].'|'.$menu[4].'
  4. title='.$menu[1].'|'.$menu[3].'|'.$menu[5].'
  5. (...)
  6. $fp = fopen($sujet.'cf.txt',"w+" );
  7. fputs($fp,$data);
  8. fclose($fp);


 
Extrait du fichier de config du lecteur Flash (cf.txt)

Code :
  1. mp3= ||
  2. title= ||
  3. bgcolor1=
  4. bgcolor2=


 
pour info, le fichier de config doit être noté de cette façon ( "|" entre les pistes).
 
Voilà, je ne sais pas si c'est clair pour vous maintenant... J'ai pioché plein de méthodes un peu partout et j'ai mixé, je suis pas sur d'avoir choisi les meilleures solutions.
 
Je ne souhaite pas utiliser MySql dans un 1er temps car je maitrise tellement peu le simple code... mais si vous me dites que c'est indispensable pour mon projet, je m'y mettrait. Merci de vous interresser à mon problème.
 
 
 

Reply

Marsh Posté le 08-12-2007 à 11:24:39    

Bah si tu veux stocker des données d'une session à l'autre, c'est MySQL ou fichiers, mais dans 99% des cas une bdd est plus pratique et efficace.
 
Bref, tu stockes dans un fichier là si j'ai bien compris ? Et tu veux rechopper les valeurs de ce fichier pour renseigner les valeurs du form quand tu reviens dessus ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-12-2007 à 11:55:11    

Oui c'est exactement ça, je veux récuperer mes valeurs de form quand je reviens dessus  et ma question est : Comment et dans quel fichier, "clf.php" ou "cf.txt"?. J'aimerais réussir de cette façon dans un 1er temps et je pense, que je m'attaquerais à MySql dès que j'aurais plus de maîtrise des codes de bases PHP.

Reply

Marsh Posté le 08-12-2007 à 11:58:17    

Fais voir la tronche de ton fichier cf.txt.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-12-2007 à 12:30:52    

En fait, "cf.txt" est écrit grace a "clf.php" grace au code :
 

Code :
  1. $fp = fopen($sujet.'cf.txt',"w+" );
  2. fputs($fp,$data);
  3. fclose($fp);


 
Flash a besoin qu'il ai une structure particuliere, le voici au complet, renseigné à la main :
 

Code :
  1. mp3=sons/toto.mp3|sons/tata.mp3
  2. title=artiste - toto|artiste - tata
  3. bgcolor=33CC33
  4. bgcolor1=33CC33
  5. bgcolor2=FFF000
  6. buttoncolor=33CC33
  7. buttonovercolor=999999
  8. slidercolor1=CC0033
  9. slidercolor2=cccccc
  10. sliderovercolor=999999
  11. textcolor=dddddd
  12. playlistcolor=33CC33
  13. currentmp3color=33CC33
  14. scrollbarcolor=cccccc
  15. scrollbarovercolor=f9bf37
  16. showvolume=1
  17. height=200
  18. width=200
  19. volume=200
  20. autoplay=0


 
J'ai essayé de lire les lignes avec

Code :
  1. value="$fread"

 
mais il lit tout l'ensemble a suivre du genre :"mp3=sons/toto.mp3|sons/tata.mp3title=artiste - toto|artiste - tata" mais ce qui m'interresse c'est juste "sons/toto.mp3" , "sons/tata.mp3" etc. Et puis même si j'arrivais a extraire du caractere 5 au caratere 18, il faudrait toujours que mes sons fasse le même nbre de caracteres, choses quasi-infaisable.

Reply

Marsh Posté le 08-12-2007 à 12:45:24    

Code :
  1. $lines = file('cf.txt');
  2. $mp3s_line = $lines[0];
  3. preg_match('#mp3=(.*)#', $mp3s_line, $matches);
  4. $mp3s = explode('|', $matches[1]);


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-12-2007 à 13:11:22    

Ca ne fonctionne pas voici l'extrait de mon code:
 

Code :
  1. URL piste 01:<input type="text" size="20" name="menu[0][" value="<?php $lines = file('player
  2. /cf.txt');$mp3s_line = $lines[0];preg_match('#mp3=(.*)#', $mp3s_line, $matches);$mp3s = explode('|', $matches[1]); ?>">&nbsp;titre <input type="text" size="20" name="menu[1][" value="">


 
Voici le message d'erreur affiché dans le form:
 

Code :
  1. <br /><b>Warning</b>:  file(player/cf.txt) [<a href='function.file'>function.file</a>]: failed to open stream: No such file or directory in <b>/volume1/web/viewpage.php(26) : eval()'d code</b> on line <b>13</b><br />


 
J'ai essayé d'enlever "player" (le dossier où sont placés "cf.txt" & "clf.php" ) et de déplacer les fichiers direct sous la racine et là, plus de message d'erreur mais rien ne s'affiche dans le form.

Reply

Marsh Posté le 08-12-2007 à 13:33:40    

Ben ouais, faut qu'il trouve le fichier, relativement à celui du script en cours d'exécution (ou utiliser $_SERVER['DOCUMENT_ROOT'] pour des chemins absolus si tu n'utilises pas d'alias Apache).
 
Après, évidemment que rien ne s'affiche dans le form, je t'ai juste indiqué comment récupérer ta liste de mp3s. Suffit d'insérer ce qu'il faut dans les value=.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-12-2007 à 13:39:30    

Désolé je ne comprend pas, j'ai bien mis le code que tu m'a donné dans value=. Sans parler de trouver le fichier, que dois-je rajouter de plus dans mon code "value="<?php $lines = file('player
/cf.txt');$mp3s_line (...)" ?

Reply

Marsh Posté le 08-12-2007 à 14:38:30    

[:pingouino]  
 
Ouais, bon là il vaut mieux que tu revoies les bases du HTML et du PHP... [:spamafote]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-12-2007 à 15:01:38    

Heu bah... met moi sur la piste car, les bases, je pense que ca va a peu près mais je sais pas quoi chercher là... c'est vrai que ca fait que quelques semaines que je suis sur le html, je tatonne mais pour le php, c'est les 1er codes que je fais, donc...

Reply

Marsh Posté le 08-12-2007 à 19:08:51    

Essaie déjà de comprendre ce que fait le bout de code que j'ai posté. Tu récupères un tableau avec la liste des paths vers les mp3, donc dans $mp3s[0] tu as le premier (s'il avait été saisi), dans $mp3s[1] le second, etc.  
 
À toi de t'en servir où il faut.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 08-12-2007 à 19:15:48    

sielfried a écrit :

[:pingouino]  
 
Ouais, bon là il vaut mieux que tu revoies les bases du HTML et du PHP... [:spamafote]


+1
 
Tu t'attaques a un trop gros morceau ;)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed