sqlite

sqlite - PHP - Programmation

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.

Reply

Marsh Posté le 03-11-2010 à 23:57:01   

Reply

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.

Reply

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.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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.


---------------
Tout à commencé par un rêve...
Reply

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...

Reply

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,

Reply

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?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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.

Reply

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)


---------------
Tout à commencé par un rêve...
Reply

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 ??

Reply

Marsh Posté le 05-11-2010 à 17:04:07   

Reply

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 :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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é ...


Message édité par stef_dobermann le 06-11-2010 à 16:15:45

---------------
Tout à commencé par un rêve...
Reply

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

Reply

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 :
  1. // tentative de connections à à la base
  2. try
  3. {
  4. // On se connecte à SQLITE
  5. $bdd = new PDO('sqlite:sourcemod-local.sq3', '', '');
  6. }
  7. catch(Exception $e)
  8. {
  9. // En cas d'erreur, on affiche un message et on arrête tout
  10.         die('Erreur : '.$e->getMessage());
  11. }
  12. $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
  13. $resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
  14. $tab = array();
  15. while( $ligne = $resultats->fetch() ) // on récupère la liste des joueurs
  16. {
  17. $tab[] = $ligne;
  18. }
  19. $resultats->closeCursor(); // on ferme le curseur des résultats
  20. echo serialize($tab);


 
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.


Message édité par stef_dobermann le 06-11-2010 à 23:30:57

---------------
Tout à commencé par un rêve...
Reply

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

Reply

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...


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 09-11-2010 à 15:07:57    

Code :
  1. $resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
  2. $tab = array();
  3. while( $ligne = $resultats->fetch() ) // on récupère la liste des joueurs
  4. {
  5. $tab[] = $ligne;
  6. }
  7. $resultats->closeCursor();


 
ou simplement  
 

Code :
  1. $tab = $resultats->fetchAll(PDO::FETCH_OBJ);

;)

Reply

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.


---------------
Tout à commencé par un rêve...
Reply

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.


Message édité par Bushido14 le 10-11-2010 à 12:30:06
Reply

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.


---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed