Page 1 sur 2

Resource id #4

Posté : 02 juin 2019, 20:52
par Brambling
J'ai un peu cherché, mais ce que j 'ai trouvé ne porte que sur l'utilisation de MySQL, or je voudrait juste gérer des documents textes.

<?php
$sc = (string)$_POST["supp"];
$re = (string)$_POST["rep"];
$file = fopen("players.txt", "w");
$result = str_replace($sc,$re,$file);
fwrite($file, $result);
fclose($file);
?>

Ce code m'écrit dans le document texte : Resource id #4 et je ne comprend pas pourquoi, je ne fait pas appel a la ressource mysql, et je ne travaille qu avec des chaines de caractères. Mais je débute juste donc j'ai peu être fait une grossière erreur mais je ne la voit pas.

Re: Resource id #4

Posté : 02 juin 2019, 21:05
par Saian
Salut, si tu regardes la doc de fopen ici https://www.php.net/manual/fr/function.fopen.php, tu verras dans la partie "Valeurs de retour" : "Retourne une ressource représentant le pointeur de fichier, ou FALSE si une erreur survient.". Il s'agit bien d'une ressource qui, lorsque tu la traites comme une chaine, affiche quelque chose du style "Resource id #n". Rien de plus normal au résultat que tu obtiens.

Je pense que tu cherches en fait à récupérer le contenu du fichier, le modifier avec $sr et $re et remettre le contenu modifié dedans. Si c'est bien le cas je te conseillerais d'utiliser pour faire simple file_get_contents et file_put_contents.
Et petite remarque les valeurs présentes dans $_POST seront je pense toujours des chaines quoique tu écrives dans les input, et même s'il s’agissait de valeurs numériques ça ne poserait à priori pas de problème pour le str_replace, donc pas besoin de faire un cast en string. ;)

file_get_contents : https://www.php.net/manual/fr/function. ... ntents.php
file_put_contents : https://www.php.net/manual/fr/function. ... ntents.php

Re: Resource id #4

Posté : 03 juin 2019, 17:20
par Brambling
Merci de t'être penché sur mon code, car cela m'a aidé et a résolu le problème initial, donc merci beaucoup, mais est apparu une autre erreur que je ne comprend pas.
Image
<?php
$sc = (string)$_POST["supp"];
$re = (string)$_POST["rep"];
$text=file_get_contents ("players.txt")
$result=str_replace($sc,$re,$text)
file_put_contents ("players.txt",$result)
?>
voila donc le code modifié qui grâce à ton aide a réglé le problème.
et voici comment j'y fait appel :
$.ajax({url : "remove.php",type : "POST",data : { supp: "["+name+"]"+"["+pgx+"]["+pgy+"]", rep:"["+name+"]"+"["+gy+"]["+gx+"]"},dataType: "text"});

Re: Resource id #4

Posté : 03 juin 2019, 17:34
par Saian
Tu as une erreur 500 c'est souvent lorsque tu as une erreur fatal dans ton script mais ça peut provenir d'autre chose.
Donc tu peux déplier la requête dans tes outils de développeur dans le navigateur (t'es sur chrome ?) et tenter de regarder l'onglet Réponse voir si tu as autre chose qu'une page blanche (peut être un message d'erreur).
Sinon il faudrait que tu regardes dans le log d'erreurs de ton serveur web.

Re: Resource id #4

Posté : 03 juin 2019, 18:29
par Brambling
(Merci d'encore bien vouloir m'aider) , donc effectivement je suis bien sur chrome, mais qu'est ce que tu entend par "l'onglet réponse" ?

Re: Resource id #4

Posté : 03 juin 2019, 18:36
par Saian
Le screenshot que tu as fait, tu peux déplier la ligne en cliquant sur le triangle à gauche et tu dois avoir je pense un onglet réponse.

EDIT : je viens de vérifier et pas d'onglet réponse. Tu peux quand même cliquer droit sur le lien et faire Ouvrir dans un nouvel onglet. Tu verras si c'est une page blanche où s'il y a un message d'erreur.

Re: Resource id #4

Posté : 03 juin 2019, 18:40
par Brambling
Image
Et voici, c'est bien ça ?

Re: Resource id #4

Posté : 03 juin 2019, 18:42
par Saian
J'ai édité mon post précédent. Oui c'est ça et il n'y a pas d'onglet Réponse, donc tu peux cliquer droit sur le lien et faire Open in new tab. Tu verras si c'est une page blanche où s'il y a un message d'erreur.
Si page blanche regarde dans le log d'erreur du serveur web.

Re: Resource id #4

Posté : 03 juin 2019, 18:51
par Brambling
"Cette page ne fonctionne pas Impossible de traiter cette demande via ajslearner.zapto.org à l'heure actuelle.
HTTP ERROR 500"
donc je vais me documenter pour avoir le log

Re: Resource id #4

Posté : 03 juin 2019, 19:04
par Saian
Tu peux aussi tenter de mettre ça au début du fichier remove.php :
ini_set('display_errors', 'On');
error_reporting(E_ALL);
Si le ini_set est autorisé le message d'erreur devrait s'afficher.

Re: Resource id #4

Posté : 03 juin 2019, 19:13
par or 1
l'erreur 500 vient probablement de la fin de ces lignes :
$text=file_get_contents ("players.txt")
$result=str_replace($sc,$re,$text)
file_put_contents ("players.txt",$result)
vu qu'il manque un micro détail.

Re: Resource id #4

Posté : 03 juin 2019, 19:18
par Brambling
or 1 :
Il manquerais quoi ?

Re: Resource id #4

Posté : 03 juin 2019, 19:19
par Brambling
Saian :
Je verrais le message où ?
NB: pour récupérer le log du serveur, comme je ne peux pas installer de programmes sur mon pc pour l'instant je ne peux pas le mettre en place, mais ce soir je vais récupérer une session admin pour le faire.

Re: Resource id #4

Posté : 03 juin 2019, 19:20
par Saian
En effet, bien vu or 1 j'ai pas vraiment fait gaffe comme Brambling disait que c'était résolu. ^^
Et bien tu devrais voir une magnifique syntaxe error. Tu verras le message d'erreur sur la page remove.php, là où elle se produit.

Re: Resource id #4

Posté : 03 juin 2019, 19:26
par Brambling
Image
je n'ai que ça comme erreur