Besoin d'un pro pour probléme étrange

WRInaute occasionnel
Bonjour,

volà j'ai un script qui permet d'afficher des données provenant d'une radio.
Les données qu'il y a dans la partie Fputs s'affiche bien dans la page qui est créée via titre_1.html.
en gros
Code:
<span class='bleu'>" . stripslashes($_POST['artist']) . "</span>
affiche bien le nom de l'artist.


Par contre tout les echo que je peu faire en dehors de l'fputs ne fonctionne pas et c'est là que sa coince et que je ne comprend pas.
En plus je voudrai recupérer les infos artiste, title... pour les ajouter a ma base de données mais comme un simple echo ne fonctionne pas je ne voi pas comment faire.
Voilà le code au cas ou quelqu'un pourrait me donner une explication et eventuellement une solution.
Code:
$fichier2 = "mapage.html";
$inF = fopen($fichier2,"w");
fputs($inF,"<html>
			<head>
			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />					
			<meta http-equiv='refresh' content='30'>
			<link href='../styleplayer.css' rel='stylesheet' type='text/css' />
			</head>
			<body>
			<span class='bleu'>" . stripslashes($_POST['artist']) . "</span> <br/> 
			<span class='orange'>" . stripslashes($_POST['title']) . " </span><br/> 
			<span class='bleu txtdroite'>" . stripslashes($_POST['starttime']) . " - " . stripslashes($_POST['runtime']) . "</span>
			</body>
			</html>");

echo stripslashes($_POST['artist']) . " - " . stripslashes($_POST['title']) ."<br><br>";
echo "<font size='-2'>TITLE file written for ". $_POST['radio'] .".</font><br>"; fclose ($inF);
 
WRInaute discret
Si ton script php est placé dans ta page titre_1.html c'est normal que le php ne soit pas executé ( ca m'étonne d'ailleurs que le fputs marche ... ) renomme ton fichier en .php et ca devrait fonctionner.
 
WRInaute accro
edit : j'ai ecrit une annerie que je supprime ...

Par ailleurs si tes pages sont nommées .html, pense a declarer dans ton htaccess qu'elles embarquent du php ...
 
WRInaute occasionnel
La fonction fputs se trouve bien dans un fichier php c'est pourquoi je ne comprend pas pourquoi dès que je sort de cette fonction les $post ne retournent plus rien.

j'aurai voulu essayé dans fput de faire un insert sql mais comme l'écriture dans l'fputs est assez particuliere je ne voi pas comment faire. En effet pour afficher par exemple l'artist je fai :
Code:
<span class='bleu'>" . stripslashes($_POST['artist']) . "</span>
sans echo san rien et sa fonctionne très bien.

Alors comment mettre des infos de connexionsql + insert......... dans cette meme partie.



Comment dans l'htaccess on ecrit que html embarque du php ? Qu'elle but y'a til a faire cela ? n'est il pas plus simple d'enregistrer la page directement en .php ?
 
WRInaute discret
Il faudrait que tu nous donne plus de détails sur les fichiers que tu utilise.
Dans ton premier post tu parle d'un fichier titre_1.html, c'est quoi ce fichier ? il y a quoi dedans ?
 
WRInaute occasionnel
ah ok je me suis mal exprimé désolé.

En fait, j'ai 2 fichiers.

1- titre.php, qui va donc ajouté les données dans une autre page html (titre_1.html) grace à la fonction fputs
2- ma page html (titre_1.html) qui affiche les données transmisent par titre.php (dans le code c'etait $fichier2 = "mapage.html";)
 
WRInaute discret
Bon je viens de tester ton script et il marche chez moi ... Le script que tu as mis dans ton premier post, c'est le contenu entier de ton fichier titre.php ?
 
WRInaute occasionnel
non il n'est pas complet car il est très long et le reste du code n'a rien a voir avec cette partie.
par contre je me pose une question. serait'il possible dans un fichier php d'interdire les echo ???
 
WRInaute discret
fais des tests, si tu place un echo avant le fputs ca marche ? si tu supprime la partie fopen / fputs tes echo s'affichent ? si tu supprime tout ... tes echos s'affichent ? ^^ fais des tests et tu trouvera d'ou ca vient.
 
WRInaute occasionnel
je viens de testé et peut importe l'endroit ou je met mon echo le $_POST['artist'] ne retourne jamais rien.
si je fais un
Code:
echo 'bonjour';
l'echo s'affiche bien mais je fais :
Code:
echo $_POST['artist'];
rien ! nada !

$_POST['artist'] ne retourne quelque chose que dans l'fputs !!!! Je n'y comprend rien !
 
WRInaute discret
Ah c'est seulement la variable qui ne s'affiche pas ? Le tiret entre les 2 s'affiche par ex ? soit plus precis ...

EDIT: ok voila c'est plus clair :)

Bon j'avoue que je vois pas trop, mais essaye en placant tes variables $_POST dans des variables avant le fputs ( $artiste = $_POST['artiste']; )
 
WRInaute occasionnel
bon alors voilà. en debut de code on verifie si les post ne sont pas vide :

Code:
if (isset($_POST['starttime']) && isset($_POST['eventtype']) && isset($_POST['title']) && isset($_POST['artist']) && isset($_POST['runtime']) && isset($_POST['radio'])) 
{
		// On vérifie que les données ne sont pas vides
		if ($_POST['starttime'] <> "" && $_POST['eventtype'] <> "" && $_POST['title'] <> "" && $_POST['artist'] <> "" && $_POST['runtime'] <> "" && $_POST['radio'] <> "") 
		{

Si je fai un echo de $_POST['artist'] j'ai aucun resultat alors que juste après dans l'fputs j'affiche bien artist, title...


Code:
				fputs($inF,"<html>
							<head>
							<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />					
							<meta http-equiv='refresh' content='30'>
							<link href='../styleplayer.css' rel='stylesheet' type='text/css' />
							</head>
							<body>
							<span class='bleu'>" . stripslashes($_POST['artist']) . "</span> <br/> 
							<span class='orange'>" . stripslashes($_POST['title']) . " </span><br/> 
							<span class='bleu txtdroite'>" . stripslashes($_POST['starttime']) . " - " . stripslashes($_POST['runtime']) . "</span>
							</body>
							</html>");
				fclose ($inF);

Je ne comprend vraiement pas pourquoi sa fait ça ! Si j'affiche rien avec mon echo pourquoi sa fonctionne avec l'fputs ????????????????????

Dailleur meme si en tout debut de code avant le if je fais un echo sur $_POST['artist'] je n'ai rien qui s'affiche... pas de resultat.... Mais dans lfputs sa fonctionne ... :oops:
 
WRInaute discret
Tu es sur que dans le fputs ca marche ? si tu vide la page html dans laquelle le fputs écrit, après avoir relancé le script tu as de nouveau les bons résultats qui s'affichent ?
 
WRInaute discret
bon beh ta variable est vide ... a mon avis tu crois que ca ecrit dans ton fichier, mais en le visualisant tu vois des anciennes données ... non ?
 
WRInaute occasionnel
et bien ce qui est étrange c'est que se qui s'affiche dans le fichier titre_1.html correspond parfaitement a se que l'on doit avoir.
De plus le fichier titre_1.html est actualisé toutes les 30 secondes et on a bien les changement de titre et artistes qui se font.
 
WRInaute discret
Essaye de faire comme je t'ai dit au lieu de travailler avec les variables $_POST sur ta page, met les dans des variables ($artist = $_POST['artist']) et utilise les pour le reste de la page ( echo et fputs )
Sinon si tu me dis que l'affichage marche quand tu enleve le fputs, essaye plutot avec la fonction file_put_contents().
http://fr.php.net/file_put_contents
 
WRInaute occasionnel
je viens de remplacé $artist = $_POST['artist'];
dans fputs j'ai donc mis $artist au lieu $_POST['artist'].
Le soucis est identique. dans l'fputs sa fonctionne et en dehors $artist ne ressort rien
 
Discussions similaires
Haut