sqlite - PHP - Programmation
Marsh Posté le 05-11-2010 à 09:22:21
Etant donné le peu de réponse à ma question, je pense que je n'ai pas du etre assez clair.
Donc :
J'ai un serveur de jeu avec une adresse IP sur lequel, une base SQLITE3 est alimentée avec les scores des joueurs.
J'ai également un site web avec une autre adresse IP sur lequel j'aimerai afficher les scores des joueurs. Pour cela, il faut que je puisse aller chercher les informations de la base SQLITE3 dans le serveur de jeu et je ne sais pas comment il faut faire.
En localhost, ca marche bien.
Merci d'avance.
Marsh Posté le 05-11-2010 à 09:25:46
Aucune façon simple et propre de le faire, SQLite n'est pas fait pour ça.
Marsh Posté le 05-11-2010 à 10:04:29
je te dirais de passait par un script PHP pour consulter à distance ta base SQLite3,
mais comme le dit esox_ch : Aucune façon simple et propre de le faire, SQLite n'est pas fait pour ça.
Marsh Posté le 05-11-2010 à 10:48:37
sqlite3 c'est juste un fichier, et faudrait qu'il sois accessible, faudrait a chaque requête télécharger la base complète, pas top quoi...
Marsh Posté le 05-11-2010 à 14:07:28
Merci pour ces précisions.
Si je voulais dons rapatrier la base sur mon site (une fois par jour par exemple avec un script validant la date), quel serait les commandes PHP de téléchargemernt pour le faire.
Merci,
Marsh Posté le 05-11-2010 à 14:16:45
Non mais pourquoi tu te prends pas un vrai serveur SQL, avec une vrai base dessus, que tu attaques depuis les 2 sites?
Marsh Posté le 05-11-2010 à 15:42:20
parce que le fichier SQLITE3 est implémenté par le jeu lui meme et que je ne peut le changer.
Marsh Posté le 05-11-2010 à 15:56:08
plutôt que de repatrier la base complété ce qui peut être lourds suivants le nombres de joueurs et les infos enregistrés.
je te dirais de passait par un script PHP avec une authentification, pour consulter à distance ta base SQLite3, le script pouvant te répondre en utilisant la fonction serialize et d'autres pour "crypter" le résultat (protection)
Marsh Posté le 05-11-2010 à 17:04:07
Merci stef_dobermann, c'est ce que j'aimerai bien faire, mais c'est trop pointu pour moi. t'aurais pas un script déja la dessus que je pourrais modifier ??
Marsh Posté le 05-11-2010 à 18:11:13
Trop pointu ?
Non mais quel est ton niveau de PHP, parce que là vraiment je vois pas ce qu'il y a de pointu
Marsh Posté le 06-11-2010 à 16:15:18
Commence par faire un script PHP qui t'affiche les infos que tu as besoin,
ensuite on le modifie, mais il y a rien de très compliqué ...
Marsh Posté le 06-11-2010 à 21:38:48
Désolé d'être nul !!!!
Voila donc le code :
<?php
Tentative de récuoération de données Sqlite3 depuis un autre serveur
$ftp_server="nom serv";
$ftp_user_name="user";
$ftp_user_pass="mdp";
$serveur_file='/css/orangebox/cstrike/addons/sourcemod/data/sqlite/sourcemod-local.sq3';
$monmicro_file='sourcemod-local.sq3';
echo "je suis l'echo ".$monmicro_file;
// Création de la connexion
$conn_id = ftp_connect($ftp_server);
// Authentification avec nom de compte et mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
echo "La connexion FTP a échoué!";
echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
die;
} else {
echo "Connecté à $ftp_server, avec $ftp_user_name";
}
echo "Dossier courant : " . ftp_pwd($conn_id) . "\n";
// Tentative de modification du dossier en "somedir"
if (ftp_chdir($conn_id, "/css/orangebox/cstrike/addons/sourcemod/data/sqlite/" )) {
echo "Le dossier courant est maintenant : " . ftp_pwd($conn_id) . "\n";
} else {
echo "Impossible de changer de dossier\n";
}
// tentative de connections à à la base
try
{
// On se connecte à SQLITE
$bdd = new PDO('sqlite:sourcemod-local.sq3', '', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$resultats=$bdd->query("SELECT * FROM players ORDER BY score DESC limit 10" ); // on va chercher tous les joueurs de la table qu'on trie par ordre croissant de score
$resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
print ("<TABLE BORDER=\"1\">
<CAPTION> Classement du FFA </CAPTION>
<TR>
<TH> Rank</TH>
<TH> Name....................</TH>
</TR>" );
while( $ligne = $resultats->fetch() ) // on récupère la liste des joueurs
{
print ("<TD>" );
echo ''.$ligne->score.''; // on affiche les scores
print ("</TD>" );
print ("<TD>" );
echo ''.$ligne->name.'<br />'; // on affiche les joueurs
print ("</TD>" );
print ("<TR>" );
}
$resultats->closeCursor(); // on ferme le curseur des résultats
print ("</TABLE>" );
// Fermeture de la connexion FTP.
ftp_quit($conn_id);
?>
Merci stef_dober
Marsh Posté le 06-11-2010 à 23:29:56
donc tu passe quand même par la récupération de la base sur ton autre serveur via un FTP puis tu te connecte ?
à faire sur le serveur de jeu, où la base originale ce situe
Code :
|
ensuite j'ai plus le script en tête mais je me rappelle que quand je l'ai fais, je suis passé par CURL pour réceptionner le résultat.
Marsh Posté le 09-11-2010 à 11:19:14
le connect sur le serveur1 fonctionne avec le ftp, mais je n'arrive pas à dl la base sur le serveur2 (faudrait pourvoir ouvrir une autre session ftp je pense).
donc mon problème n'est pas résolu.
et quand je me connecte à la la base sqlite, c'est forcément sur le serveur2 mais comme je ne l'est pas dl, ca ne marche pas et je n'arrive pas à me connecter sur la base sqlite du serveur 1.
merci
Marsh Posté le 09-11-2010 à 15:02:56
sur le serveur 1 tu "installe" le script précédent et depuis le serveur 2 tu consulte
pas besoin de FTP...
Marsh Posté le 09-11-2010 à 15:07:57
Code :
|
ou simplement
Code :
|
Marsh Posté le 09-11-2010 à 15:19:54
aussi c'est plus rapide mais vu que ce n'est pas le même serveur, j'ai préféré passer uniquement les données sans être dépendant d'autre chose.
Marsh Posté le 10-11-2010 à 11:51:21
Vous aller me trouver lourd mais :
1 - c'est un serveur de jeux donc PHP n'est pas installé sur ce serveur.
2 - et si cela marche quand même, comment je consulte.
J'y connait pas grand chose, j'essaie juste d'améliorer mon site.
Un grand merci pour votre patience.
Marsh Posté le 10-11-2010 à 14:43:31
si PHP n'est pas présent sur le serveur
- soit tu l'installe,
- soit tu est obligé de télécharger depuis le serveur 2 (où PHP est installé, ton site Web) ta base SqLite3 , ensuite de consulter ta base fraichement téléchargée.
Marsh Posté le 03-11-2010 à 23:57:01
Bonjour,
Est-il possible de se connecter à une base sqlite3 situé sur une autre adresse que celle du site web.
si oui comment car dans le connect de sqlite3, je ne vois pas de nom de host, mdp, port, etc...
Merci de votre réponse.