Base MySQL sur FREE pour un Chat

Fermé
tablarock Messages postés 100 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 11 avril 2012 - 22 oct. 2010 à 18:45
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 12 nov. 2010 à 13:55
Bonjour,
Voilà mon problème :
Je créer un site ou je devrais mettre un Chat.
Je vais prendre le même que dans ce tuto : https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914663-tp-un-minichat .
Le probleme c'est que je ne comprend rien a comment se servir de la basse de donné MySQL.
Quelqu'un peut m'éclaircir ?

Merci

Félix


A voir également:

13 réponses

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
22 oct. 2010 à 19:56
Salut,

as-tu été voir déjà sur http://phpmyadmin.free.fr/ ? Il faut que tu commences par créer une table. Commence déjà par ça et reviens poser tes questions, qui seront plus précises ;)
0
tablarock Messages postés 100 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 11 avril 2012 1
26 oct. 2010 à 11:40
Voilà j'ai tout bien appris ( ^^' ) mais maintenant je n'arrive pas a me connecter sur ma base mySQL de FREE ... Roo le Chat est dure il y a des probleme partout ... Ou bien c'est moi qui est nul !

Donc j'essaie et je cherche comment me connecter a MYSQL sur Free pour créer mon CHAT. Oui je suis bien parti voir http://sql.free.fr et j'ai importer mes tables mais je n'arrive a me connecter via php !
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
26 oct. 2010 à 14:40
Alors perso je me suis fait un include (si tu connais) avec une fonction qui me connecte à ma base et qui la paramètre pour communiquer en UTF-8.
function dbconnect() {
	$host = "sql.free.fr";
	$login = >> ton login <<;
	$mdp = >> ton mot de passe <<;
	$db = >> le nom de ta base <<;

	mysql_connect($host, $login, $mdp)
		or log_error(mysql_error(), true);
	mysql_select_db($db);

	$sql = "SET NAMES UTF8";
	mysql_query($sql)
		or log_error(mysql_error());
}

Le truc important c'est surtout mysql_connect et mysql_select_db.
log_error c'est une fonction à moi pour enregistrer les messages d'erreur au lieu de les afficher. Je t'encourage à t'en faire une également. L'idée c'est de ne pas montrer tes messages d'erreur à n'importe qui...

Et voilà la doc officielle : https://www.php.net/manual/fr/function.mysql-connect.php
Chez Free, il y a certaines limitations, par exemple on ne peut pas utiliser ini_set() pour changer les identifiants SQL par défaut. Voir https://www.free.fr/assistance/947-acces-libre-php-fonctions-php-interdites.html

;)
0
Re bonjour,
Tout d'abort merci beaucoup beaucoup pour ta reponce qui est très clair ! C'est vraiment gentil à toi de vouloir m'aider ...
Bon le problème c'est que ca marche pas !
voilà l'erreur :

function dbconnect() { $host = "sql.free.fr"; $login =mon pseudo; $mdp =mon passe; $db =jeux_video; mysql_connect($host, $login, $mdp) or log_error(mysql_error(), true); mysql_select_db($db); $sql = "SET NAMES UTF8"; mysql_query($sql) or log_error(mysql_error()); }
Fatal error: Call to a member function on a non-object in /mnt/132/sda/2/f/testfelix/index.php on line 5

Voilà tout mon code source ! ( je ne risque rien j'ai pris un exemple sur site du zeros pour voir si ça marche ! ;)

<?php include('LE FICHIER INCLUDE QUE TU M A CONSEILLE.php') ?>

<?php

$reponse = $bdd->query('SELECT * FROM jeux_video');

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<strong>Jeu</strong> : <?php echo $donnees['nom']; ?><br />
Le possesseur de ce jeu est : <?php echo $donnees['possesseur']; ?>, et il le vend à <?php echo $donnees['prix']; ?> euros !<br />
Ce jeu fonctionne sur <?php echo $donnees['console']; ?> et on peut y jouer à <?php echo $donnees['nbre_joueurs_max']; ?> au maximum<br />
<?php echo $donnees['possesseur']; ?> a laissé ces commentaires sur <?php echo $donnees['nom']; ?> : <em><?php echo $donnees['commentaires']; ?></em>
</p>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>

Voilà !

Merci encore

Félix
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tablarock Messages postés 100 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 11 avril 2012 1
30 oct. 2010 à 13:29
Personne ?
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
3 nov. 2010 à 19:50
Salut, je reviens de vacances ;)

Alors ton erreur parle de la ligne 5. Suivant la façon dont tu as recopié ton code, ça peut être celle-ci :
$reponse = $bdd->query('SELECT * FROM jeux_video'); 

ou celle-là :
while ($donnees = $reponse->fetch())

Dans les deux cas, l'erreur peut correspondre. Le problème c'est que tu utilises l'opérateur flèche (->) sur un truc qui n'est pas un objet. À mon avis c'est une variable qui n'est pas bien initialisée. Tu devrais avoir des warnings... Ajoute ceci au début de ta page :
<?php
error_reporting(E_ALL);
?>


Refais un essai, copie les erreurs et les warnings et montre-les moi :)
0
tablarock Messages postés 100 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 11 avril 2012 1
4 nov. 2010 à 20:39
Bonjour, j'ai trouvé ! https://www.developpez.net/forums/d241878/php/php-base-donnees/connexion-mysql-free/ Génial 'y arrive maintenant !
0
tablarock Messages postés 100 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 11 avril 2012 1
6 nov. 2010 à 21:32
Peux tu me passer ton code source ( en enlevant ce que je ne dois pas voir ) avec la connection s'il te plaît.

Félix
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
8 nov. 2010 à 14:01
Voici un exemple tiré de mon ancien blog :
function Billet($id) {
    $this->id = $id;
    $query = "SELECT author, datetime, category, title, subtitle, body, tags
        FROM billets WHERE ID = {$this->id}";
    dbconnect();
    $dataset = mysql_query($query)
        or log_error(mysql_error());
    mysql_close();
    $fetch = mysql_fetch_array($dataset);
    
    $this->author = $fetch["author"];
    $this->datetime = $fetch["datetime"];
    $this->category = $fetch["category"];
    $this->title = $fetch["title"];
    $this->subtitle = $fetch["subtitle"];
    $this->body = bbparse($fetch["body"]);
    $this->tags = $fetch["tags"];
    
    if (Billet_TRACE_FLAG) trace("[Billet#{$this->id}::construct]");
} // constructeur

Les fonctions log_error et trace sont de mon cru.

Depuis, j'ai changé d'habitude, je ne code plus en « procédural » avec les fonctions mysql_*, mais j'utilise les PDO :
http://www.siteduzero.com/tutoriel-3-34790-pdo-interface-d-acces-aux-bdd.html

;)
0
tablarock Messages postés 100 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 11 avril 2012 1
10 nov. 2010 à 17:13
Merci mais j'utilse deja PDO et ca marche pas :/ ... Bon je crois que je vais aller chez OVH il ont l'air serieux et pas cher pour la préstation
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
12 nov. 2010 à 11:07
J'approuve pour OVH, je suis chez eux depuis un an et j'ai pas été contrarié :)

Euh quand tu dis « ça marche pas » tu pourrais être plus précis ?
0
tablarock Messages postés 100 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 11 avril 2012 1
Modifié par tablarock le 12/11/2010 à 11:56
Ba je vient de comprendre : Free n'est dispo qu'en local ! Sinon OVH accpte les connections avec PDO ? Et leurs bases MySQL marchent t'elles en ligne ( en gros pas en local ) ?

Merci beaucoup beaucoup !


Félix
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
12 nov. 2010 à 13:55
Par « Free n'est dispo qu'en local » si tu entends qu'on ne peut se connecter au serveur de base de données que depuis le serveur de tes pages persos, c'est normal, et la plupart des hébergeurs font ainsi (OVH compris). C'est pour protéger leur bande passante, et aussi parce qu'un serveur de BDD est un backend, et n'a pas vocation d'être accessible depuis tout le réseau. C'est une question de sécurité.

Sinon, vérifie que tu n'as pas fait de mélange entre ta config de tests en local (tu utilises quoi en local ? WAMP ?) et ta config de production.

;)
0