Problème de sauvegarde PHP


#1

Bonjour ! Cela faisait un moment que je n’étais plus venu. Depuis l’abandon du projet Astral Masane, en fait… Bref, j’ai décidé de refaire un jeu avec GDevelop, avec la version 4 plus précisément, car la version 5, c’est pas possible pour moi.

Mon jeu est une sorte de remake du tout premier jeu qu’on a fait avec BladyDB (c’était “Super Thomas Galaxy”), mais en plus “légit”.

Dans ce jeu, j’essaye de faire un système de sauvegarde en ligne via PHP… Une sauvegarde simple : seul le meilleur score serait sauvegardé. Seulement voilà, même en suivant le tuto de “Bouh”, je ne parviens pas à faire ça. Pourtant j’ai tout : une BDD MySQL, les extensions activées, etc. Mais j’ai forcément mal fait quelque chose, mais quoi ?

C’est pourquoi je viens demander de l’aide, pour aider à éclairer ma lanterne. :slight_smile:
Merci d’avance


#2

Salut!
Pour essayer de trouver ce qu’il ne va pas, il faut déterminer l’origine du problème. Je te conseille de tester ton API PHP via curl ou ton navigateur internet d’abord pour voir si le problème vient de ton serveur/code ou de GDevelop.
Le mieux serait de demander a @Bouh directement vu que c’est lui qui a crée le tutoriel.
Bonne Chance!


#3

Merci du tuyau ! J’ai utilisé la console, et voilà ce que ça m’a donné :

A reprodução automática é apenas permitida quando aprovada pelo utilizador, o site está ativado pelo utilizador, ou multimédia está silenciada. code.js:18:21721
NotAllowedError: The play method is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
XMLHttpRequest síncrono na thread principal foi descontinuado devido ao seu efeito negativo na experiência do utilizador. Para mais ajuda http://xhr.spec.whatwg.org/ code.js:5:9528
Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em http://www.cicciu.fr/page.php. (Motivo: cabeçalho CORS ‘Access-Control-Allow-Origin’ em falta).
Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em http://www.cicciu.fr/page.php. (Motivo: cabeçalho CORS ‘Access-Control-Allow-Origin’ em falta).
Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em http://www.cicciu.fr/page.php. (Motivo: cabeçalho CORS ‘Access-Control-Allow-Origin’ em falta).

Si je ne dis pas de bêtise, ça m’a tout l’air d’être un problème de permissions…
Ah oui j’avais oublié de préciser : mon jeu se trouve sur ce site : http://cicciu.fr/stg/


#4

C’est cette ligne je pense dans ton fichier php.

header("Access-Control-Allow-Origin: http://localhost:2828");

Il faudrais que tu mette l’ip d’où est ta base de donné/site.
Après je dit pas que c’est toujours du code valide, la version de PHP à changer je ne sais pas a quel point. Cherche des info à propos des erreur de persmission CORS ‘Access-Control-Allow-Origin’ en php


#6

Après quelques recherches, notamment dans les archives des forums, je me suis penché vers d’autres pistes, notamment sur les permissions dans le FTP. J’ai mis les permissions “755” qui, apparemment, semblent meilleures. À ça il faut ajouter le fait que le “page.php” était mal placé.

En définitive, j’ai d’abord ce message…

XMLHttpRequest síncrono na thread principal foi descontinuado devido ao seu efeito negativo na experiência do utilizador. Para mais ajuda http://xhr.spec.whatwg.org/

Puis celui-là :

Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em http://www.cicciu.fr/stg/data/page.php. (Motivo: cabeçalho CORS ‘Access-Control-Allow-Origin’ em falta).

Moins d’erreurs, mais le problème demeure. J’ai jeté un oeil du côté de phpmyadmin, mais je ne vois rien concernant le CORS. Idem pour le manager OVH, puisque j’ai ma BDD chez eux. Rien à faire. :confused:

Merci en tout cas pour ta réponse.


#7

Ta base de donnée doit être sur le même serveur que ton fichier php.
Et ton fichier php doit avoir le header avec l’ip et le port (il faut la racine pas besoin de tout les chemin jusqu’au fichier) où est ton jeu, pour autorisé l’ip du serveur où est ton jeu a accédé au fichier php de l’autre serveur et interagir avec la base de donnée.

Idéalement met tout sur le même serveur ça pose pas de soucis. Dans ce cas met localhost, mais il te faudra le bon port.


#8

Me revoilà après de nouveaux essais.
Dans la mesure où ma BDD n’est pas associée à un hébergement web, j’ai du utiliser le SFTP pour pouvoir mettre le page.php (désormais nommé stg.php) sur le même serveur. Malheureusement, le SFTP, c’est très limité, et seul le répertoire “dump” est accessible en écriture.

Ainsi, dans GDevelop, j’ai mis “ct15698-001.privatesql.ovh.net:45500” comme nom d’hôte, et “/dump/stg.php” comme chemin vers la page. Et le jeu détecte bien le fichier PHP, car quand j’avais mis la nouvelle adresse la première fois, j’avais fait une faute de frappe, et le jeu me renvoyait “Not found”. Or, après avoir corrigé la faute de frappe, la requête se fait…

En définitive, ça ne fonctionne toujours pas, mais le message d’erreur est différent !

Pedido de origem cruzada bloqueado: A política da mesma origem não permite a leitura do recurso remoto em ct15698-001.privatesql.ovh.net:45500/dump/stg.php. (Motivo: pedido CORS não http).

Concrètement, il me reproche que ce n’est pas du HTTP… :confused:

PS : Voici la dernière révision de mon jeu, avec ce fameux message d’erreur :
http://cicciu.fr/stg/stgalpha1r6/
Il faut taper “debug” dans le menu de choix de difficulté pour voir apparaitre les “boutons” relatifs au SQL (des sprites du vaisseau, comme les boutons de choix de la difficulté), qui apparaitront alors en bas à droite du menu. Le rouge sert à recevoir les données, le orange sert pour supprimer les données SQL existantes, et le bleu foncé sert à écrire sur le serveur SQL.