8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'essaye (en vain) d'écrire dans un fichier xml.
Voici le code que j'essaie d’exécuter qui me renvoie une erreur 500 dans la console...

<?php
ob_start()
$txt_to_store = $_POST['adresses_txt']; // Je récupère en ajax avec un post 
if(file_put_contents('dossier_contenant_le_fichier_a_écrire/mon_fichier.xml' , $txt_to_store) > 0){
	echo 'Bien joué';
}else{
	echo 'mal joué';
}

?>

Pour contextualiser un peu :
Je récupère la chaîne de string via ajax
J'ai donné une autorisation 777 à "dossier_contenant_le_fichier_a_écrire" et "mon_fichier.xml"
C'est un wordpress j'ai donc essayé de supprimer le fichier .htaccess et régénérer les permaliens mais rien n'y fait.
Ensuite pourquoi ayant mon site en HTTPS google me dit ça : "HTTP ERROR 500"
J'ai pu lire que OVH (vous connaissez donc l'hébergeur Smiley lol ) n'acceptait pas chmod 777 et qu'il prenait au max 755 mais cela ne marche pas non plus.
Si j'enlève
ob_start()
je n'ai pu l'erreur mais rien ne s'écrit dans le fichier.

Est-ce que quelqu'un parmi vous aurait une idée s'il vous plait car là je sèche.

Sinon pensez-vous que de mettre se fichier en cookie sur l'ordi du visiteur serait un peu trop...... bourrin ?
Modifié par Soxy95 (27 Jan 2018 - 17:10)
Modérateur
Bonjour,

Essaie d'écrire dans un fichier qui n'existe pas encore à titre de test.

Amicalement,
Bonjour,

Nan malheureusement pas de succès toujours cette meme erreur 500

Déjà j'ai supprimé du serveur mon dossier "dossier_contenant_le_fichier_a_écrire" ainsi que le fichier qu'il contenait....
Ensuite j'ai essayé deux choses :


ob_start()
$txt_to_store = $_POST['adresses_txt'];

if(fwrite('mon_fichier666.txt' , $txt_to_store) > 0){
	echo 'Bien joué';
}else{
	echo 'mal joué';
}

Et

ob_start()
$txt_to_store = $_POST['adresses_txt'];
if(file_put_contents('mon_fichier666.txt' , $txt_to_store) > 0){
	echo 'Bien joué';
}else{
	echo 'mal joué';
}


Pour toujours le même résultat... "nada"
Bonjour,

Et l'instruction fopen() se trouve où dans votre code ? Votre premier essai ne peut-être concluant en l'état...

Pour le second essai...
Qui a créé le fichier mon_fichier666.txt ? Pour que le script puisse écrire dans un fichier il faut qu'il soit créé par lui-même et non par vous (j'ai eu le cas et faire créer le fichier par le script a résolu mes problèmes de droit sans devoir jouer avec les Chmod).

De plus, notez qu'en l'état, votre instruction file_put_contents() est censée écraser le fichier à chaque exécution. Est-ce bien ce que vous désirez ?
Modifié par Greg_Lumiere (28 Jan 2018 - 11:38)
Quand vous dites
Soxy95 a écrit :
résultat... "nada"
cela signifie-t-il que vous n'obtenez rien du tout à l'affichage ou que s'affiche "mal joué" ?
Merci de te pencher sur mon cas

Greg_Lumiere a écrit :
Bonjour,

Et l'instruction fopen() se trouve où dans votre code ? Votre premier essai ne peut-être concluant en l'état...



En effet je pensais que parsimonhi me disait de ne pas mettre fopen() pour voir ce qu'il se passait.
Bon j'ai essayé avec fopen en créant au préalable mon fichier mon_fichier666.txt mais rien n'y fait.

Greg_Lumiere a écrit :

Pour le second essai...
Qui a créé le fichier mon_fichier666.txt ? Pour que le script puisse écrire dans un fichier il faut qu'il soit créé par lui-même et non par vous (j'ai eu le cas et faire créer le fichier par le script a résolu mes problèmes de droit sans devoir jouer avec les Chmod).

De plus, notez qu'en l'état, votre instruction file_put_contents() est censée écraser le fichier à chaque exécution. Est-ce bien ce que vous désirez ?


oui oui ça J'avais compris 'si le fichier n'existait pas alors le système créait ce fichier', donc quand j'ai essayé j'avais supprimé le fichier mon_fichier666.txt qui n'a donc pas été re-créée

Greg_Lumiere a écrit :

cela signifie-t-il que vous n'obtenez rien du tout à l'affichage ou que s'affiche "mal joué" ?


Pardon je n'ai pas été clair, cela voulais dire que j'ai toujours cette erreur 500
Modifié par Soxy95 (28 Jan 2018 - 12:44)
Soxy95 a écrit :
j'ai toujours cette erreur 500

(très) Souvent l'erreur 500 résulte d'un code mal formé.

Dans le bout de code que vous postez je ne vois pas le point virgule qui indique la fin de l'instruction ob_start().

Peut-être une erreur de copier-coller et si c'est le cas, êtes-vous sûr que tous les guillemets, apostrophes, point-virgules, parenthèses, marques de paragraphe [...] sont bien mis partout dans votre page ?
J'ai honte !

C'était le point virgule après ob_start()
Je vais arrêter le code pour ce week-end, au bout d'un moment je crois qu'il faut prendre l'air !

Un grand merci à toi Greg_Lumiere