Chat : SimpleXML ou SQLite? [Fermé]

Signaler
Messages postés
32
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
6 août 2014
-
 DarkSide -
Bonjour à tous.

J'ai créée un chat privé en PHP/MySQL/Javascript pour un site (ça c'est bon ça fonctionne), seulement en voulant l'uploader sur mon hébergeur (1and1) j'ai vu la phrase suivante :
"Une base de données MySQL ne doit en aucun cas être utilisée pour des évaluations de log, des clics publicitaires, des systèmes de chat, des systèmes de rotation de bannières, ou toute autre application qui pourrait encombrer votre base de données de charges trop importantes."
Génial...

Ne voulant pas me faire bannir de mon hébergement, j'ai alors cherché une nouvelle manière de gérer ma base de données pour sauvegarder les conversations :

1) Je suis premièrement tombé sur le SimpleXML.
J'ai compris le fonctionnement, mais j'ai par contre un problème avec l'encodage des caractères.
Tout au début de mon XML j'ai :
<?xml version="1.0" encoding="ISO-8859-1"?>

Au début de ma page PHP j'ai :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

Malgré tout à chaque fois que je veux ajouter du contenu à mon XML, pour ne pas avoir de problèmes avec les accents, je dois ajouter les lignes suivantes :
$chaine = 'chapitre';
$chaine = utf8_encode($chaine);

Et pour la lecture du XML les lignes suivantes :
$chaine = $chapitre->titre;
$chaine = utf8_decode($chaine);

Avec ça, ça marche, mais vu comment ça n'est pas pratique, je me dis qu'il doit quand même y avoir un problème!
Quelqu'un a une solution?

2) Ce matin j'ai découvert SQLite.
Ca a l'air d'être une alternative intéressante, surtout que mon code MySQL est déjà fait et que ça y ressemble pas mal, mais j'ai lu que certaines fonctions MySQL n'étaient pas prises en compte par SQLite.

Voici les requêtes MySQL que j'utilise :
mysql_query("SELECT ami_from, ami_to, ami_date, ami_lastpost, membre_pseudo, membre_avatar, online_id, conv_texte, conv_date, conv_pseudo, conv_id
FROM forum_amis
LEFT JOIN forum_membres ON membre_id = ami_from
LEFT JOIN forum_whosonline ON online_id = ami_from
LEFT JOIN chat_prive ON chat_prive.conv_id = forum_amis.ami_lastpost
WHERE ami_to = '".$_SESSION['id']."' AND ami_confirm = '1'
ORDER BY ami_date, online_id DESC");

mysql_query("SELECT * FROM chat_prive WHERE conv_from = $am_from && conv_to = $am_to || conv_from = $am_to && conv_to = $am_from ORDER BY conv_id DESC LIMIT 0,50");

mysql_query("INSERT INTO chat_prive VALUES('', '$am_from', '$am_to', '$conv_texte', '".$temps."', '$conv_pseudo')");

$derniermess = mysql_insert_id();

mysql_query("UPDATE forum_amis SET ami_lastpost = '".$derniermess."' WHERE ami_from = '".$am_from."' && ami_to = '".$am_to."' || ami_to = '".$am_from."' && ami_from = '".$am_to."' ");

Je voudrais savoir si je ne risque pas d'avoir des problèmes pour le passage du MySQL au SQLite, et lequel, entre SimpleXML et SQLite, serait plus adapté à mes besoins (chat, donc il risque d'y avoir beaucoup de texte) ?

Merci pour vos réponses.

1 réponse

Bonjour,

Le XML a pour "defaut" d'etre visible par un navigateur directement, si quelqu'un tombe sur ton fichier XML, il pourrait je pense sans trop de probleme le modifier ou l'effacer. Si on tombe sur ton fichier SQlite, en le telechargeant et en changeant l'extension en .txt, on a aussi acces aux informations contenues. Les niveaux de sécurités sont quasi inexistants dans les 2 cas (sauf htacces).

à l'utilisation, Simplexml pourrait ce montrer limité et tu devra passer par des fonction DOMXML (quand meme plus compliquées)

Tes requetes SQL etant deja rédigées, il te sera facile de les réutiliser pour sqlite

si jétais toi, j'utiliserai plutot SQlite

voila, bonne continuation