Page 1 sur 3
Minichat
Posté : 07 mai 2012, 20:40
par Larker
Bonjour,
Je viens vers vous car j'ai un problème dans l'installation de mon tchat...
En effet un message d'erreur s'affiche alors que je suis sur d'avoir mit les bons identifiants dans le fichiers bdd.
Impossible de se connecter à la base de données, vérifiez vos identifiants de connexion à mysql. Warning: mysql_query() expects parameter 2 to be resource, boolean given in /public_html/minichat/minichat.php on line 13 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
Voici le code de sa connexion
Code : Tout sélectionner
<?php
define('MYSQL_HOST', ' ');
define('MYSQL_PSEUDO', ' ');
define('MYSQL_MOT_DE_PASSE', ' ');
define('MYSQL_NOM_DATA', ' ');
$link = @mysql_connect(HOST, USER, PASS);
$db = @mysql_select_db(DBASE, $link);
if(!$link || !$db)
{
echo 'Impossible de se connecter à la base de données, vérifiez vos identifiants de connexion à mysql.';
}
?>
Ici j'ai supprimé le nom des identifiants par mesure de sécurité
Merci à tous ceux qui pourront m'aider et si vous avez besoin de plus amples informations n'hésitez pas à me demander.
Re: Minichat
Posté : 07 mai 2012, 20:49
par Larker
Enfaite j'ai oublié de vous faire parvenir le script principal
<?php
// Mise à jour le 23/09/2010
include('./includes/includes.inc.php');
define('SUP_ENTREE', 0); // Remplacé 0 par 1 si vous voulez supprimer les N dernières entrées
$nb_max = 150; // Nombre d'entrées max
$n = 50; // Nombres d'entrées à supprimer lorsque le nombre d'entrées max est atteint
$lm = 120; // La taille maximum du message (caractères maximum)
$nmpp = 8; // Nombres de messages par pages
$sql_ret = "SELECT COUNT(*) AS nb_post FROM script_minichat";
$retour = mysql_query($sql_ret, $link) or die(mysql_error());
$data_Post = mysql_fetch_array($retour);
$totalPost = $data_Post['nb_post'];
$nombreDePages = ceil($totalPost / $nmpp);
if (isset($_POST['pseudo'], $_POST['message'])) // Si les variables existent
{
if (!empty($_POST['pseudo']) && !empty($_POST['message'])) // Si on a quelque chose à enregistrer
{
if (empty($_POST['info'])) // Le $_POST['info'] est une ruse pour les spammeurs
{
if (strlen($_POST['message']) < $lm) // Si le message ne dépasse pas la taille autorisée
{
$expire = time() + 24*3600; // Le cookie expirera dans 24h
setcookie('pseudo', $_POST['pseudo'], $expire); // On écrit un cookie
setcookie('joker', md5(uniqid().$_POST['pseudo']), $expire); // On écrit un second cookie
// On utilise la fonction mysql_real_escape_string() pour la sécurité
$pseudo = trim(mysql_real_escape_string(utf8_decode($_POST['pseudo'])));
$message = mysql_real_escape_string(utf8_decode($_POST['message']));
$time = time()+3600; // On ajoute 1 heure pour gmt+1
// Ensuite on enregistre le message
$sql = "INSERT INTO script_minichat VALUES('', '".$pseudo."', '".$message."', '".$time."')";
$insert = mysql_query($sql, $link) or die(mysql_error());
if($insert == TRUE)
{
header('Location: minichat.php');
}
else
{
header('Location: minichat.php?erreur=send');
}
mysql_free_result($insert);
}
else
{
header('Location: minichat.php?erreur=solong');
}
}
else
{
header('Location: minichat.php?erreur=spam');
}
}
else
{
header('Location: minichat.php?erreur=vide');
}
}
else
{
?>
<!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" lang="fr">
<head>
<?php echo utf8_encode('<title>Mini-chat (Démo)</title>'); ?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript">
function addText(instext) {
var mess = document.mess.message;
//IE support
if (document.selection) {
mess.focus();
sel = document.selection.createRange();
sel.text = instext;
document.guestbook.focus();
}
//MOZILLA/NETSCAPE support
else if (mess.selectionStart || mess.selectionStart == "0") {
var startPos = mess.selectionStart;
var endPos = mess.selectionEnd;
var chaine = mess.value;
mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);
mess.selectionStart = startPos + instext.length;
mess.selectionEnd = endPos + instext.length;
mess.focus();
} else {
mess.value += instext;
mess.focus();
}
}
</script>
<style type="text/css">
body
{
width: 86%;
margin-top: 16px;
margin-right: 64px;
margin-bottom: 32px;
margin-left: 64px;
background-color: #F9F9F9;
}
.chat
{
width: 55%;
margin-left: 32px;
margin-top: 16px;
font-size: 11px;
font-family: Verdana, Arial, "Times New Roman", Sans-Serif;
text-align: left;
border-style: dashed;
border-width: 1px;
padding: 10px;
background-color: #FFFFFF;
}
.erreur
{
font-family: Verdana, Arial, "Times New Roman", Sans-Serif;
font-size: 13px;
text-align: left;
color: red;
}
h3
{
text-align: center;
}
#smileys
{
margin: 2px;
}
.souligne
{
text-decoration: underline;
}
.input
{
display: none;
}
</style>
</head>
<body>
<?php
}
// On supprime les entrées supérieur à N Si SUP_ENTREE est défini à 1
if(SUP_ENTREE == 1)
{
$sql_d = "SELECT COUNT(*) AS nb_entrees FROM script_minichat";
$res_d = mysql_query($sql_d, $link) or die(mysql_error());
$data = mysql_fetch_array($res_d);
if ($data['nb_entrees'] > $nb_max)
{
$sql_d2 = "DELETE FROM script_minichat ORDER BY id LIMIT ".$n;
$res_d2 = mysql_query($sql_d2, $link)or die(mysql_error());
mysql_free_result($res_d2);
}
}
$url = trim(strip_tags($_SERVER['REQUEST_URI']));
$url = ereg_replace('/', ' ', $url);
$uri = explode('=', $url);
//$uri_final = explode('.', $uri[2]);
$p = $uri_final[1];
if (isset($_GET['p']) && !empty($_GET['p']) && intval($p) <= intval($nombreDePages))
{
$page = intval($_GET['p']);
}
else
{
$page = 1;
}
$ppaa = ($page - 1) * intval($nmpp);
$ppaa = mysql_real_escape_string($ppaa);
// Maintenant on doit récupérer les N dernières entrées de la table
// On utilise la requête suivante pour récupérer les N derniers messages :
$sql_rep = "SELECT pseudo, message, time FROM script_minichat ORDER BY time DESC LIMIT " . $ppaa . ", " . $nmpp;
$reponse = mysql_query($sql_rep, $link) or die(mysql_error());
echo utf8_encode('<div class="chat"><h3>Bienvenue sur le MiniChat (Démo)</h3>');
if(mysql_num_rows($reponse) > 0)
{
// Gestion des erreurs
if(isset($_GET['erreur']) && $_GET['erreur'] == 'vide')
{
echo utf8_encode('<p class="erreur">Un ou plusieurs champs sont restés vides.</p>');
}
if(isset($_GET['erreur']) && $_GET['erreur'] == 'send')
{
echo utf8_encode('<p class="erreur">Une erreur est survenue lors de l\'envoi du message.</p>');
}
if(isset($_GET['erreur']) && $_GET['erreur'] == 'solong')
{
echo utf8_encode('<p class="erreur">Le message dépasse la taille autorisée de '.$longueur_message.' caractères</p>');
}
if(isset($_GET['erreur']) && $_GET['erreur'] == 'spam')
{
echo utf8_encode('<p class="erreur">Les spammeurs n\'ont rien à faire ici.</p>');
}
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse))
{
echo utf8_encode('<b>'.$donnees['pseudo'].'</b> a écrit le <span style="color:green;font-size:10px;font-style:italic;">'.date('d/m/Y à H\hi', $donnees['time']).'</span> : <br/>'.stripslashes(controle($donnees['message'])));
echo '<br/><br/>';
}
// Fin de la boucle, le script est terminé !
}
else
{
echo utf8_encode('<p class="erreur">Il n\'y a encore aucun message d\'envoyé dans le minichat.</p>');
}
mysql_free_result($reponse);
$i = intval($i);
echo '<p>Page : ';
echo get_list_page($page, $nombreDePages, './minichat.php');
?>
<h5>Postez un message:</h5>
<form method="post" action="minichat.php" name="mess">
<div id="smileys">
<a onclick="addText(' :O ');return(false)"><img src="./images/1.gif" border="0" alt="" /></a>
<a onclick="addText(' ^^ ');return(false)"><img src="./images/2.gif" border="0" alt="" /></a>
<a onclick="addText(' lol ');return(false)"><img src="./images/3.gif" border="0" alt="" /></a>
<a onclick="addText(' o_O ');return(false)"><img src="./images/4.gif" border="0" alt="" /></a>
<a onclick="addText(' ;) ');return(false)"><img src="./images/5.gif" border="0" alt="" /></a>
<a onclick="addText(' :p ');return(false)"><img src="./images/6.gif" border="0" alt="" /></a>
<a onclick="addText(' :( ');return(false)"><img src="./images/23.gif" border="0" alt="" /></a>
<a onclick="addText(' O_O ');return(false)"><img src="./images/19.gif" border="0" alt="" /></a>
<a onclick="addText(' :love: ');return(false)"><img src="./images/26.gif" border="0" alt="" /></a>
<a onclick="addText(' :ange: ');return(false)"><img src="./images/37.gif" border="0" alt="" /></a>
<a href="#" onclick="addText('');return(false)"><b style="text-decoration:none;">G</b></a>
<a href="#" onclick="addText('');return(false)"><i style="text-decoration:none;">i</i></a>
<a href="#" onclick="addText('[s][/s]');return(false)"><u style="text-decoration:none;">s</u></a>
</div>
<table border="0" cellpadding="1" cellspacing="1">
<tr>
<td>Pseudo :</td> <td><input type="text" name="pseudo" value="<?php echo $_COOKIE['pseudo'] ?>" size="20" maxlength="20" /></td></tr>
<tr>
<td>Message :</td> <td><textarea name="message" cols="50" rows="7" ></textarea></td></tr>
<tr><td><input class="input" type="text" name="info" /></td></tr>
<tr>
<td colspan="3" align="center"><input type="submit" value="Envoyer" /></td></tr>
</table>
<a href="javascript:window.document.mess.submit()"></a>
</form></div>
<?php
echo '<br/>';
echo '<center><a href="http://sourceforge.net/donate/index.php?group_id=325199"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" /> </a></center>';
?>
</body>
</html>
<?php
// On éteint la lumière en sortant
mysql_close($link);
?>
Re: Minichat
Posté : 07 mai 2012, 20:50
par xTG
Enlèves les @ dans le premier code pour avoir une remontée d'erreur.
Re: Minichat
Posté : 07 mai 2012, 20:57
par Larker
Maintenant ça me met ça
Warning: mysql_connect(): Lost connection to MySQL server at 'reading initial communication packet', system error: 111 in /public_html/minichat/includes/connect.inc.php on line 8 Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in /public_html/minichat/includes/connect.inc.php on line 9 Impossible de se connecter à la base de données, vérifiez vos identifiants de connexion à mysql. Warning: mysql_query() expects parameter 2 to be resource, boolean given in /public_html/minichat/minichat.php on line 13 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
Re: Minichat
Posté : 08 mai 2012, 00:04
par dix2
salut,
il semblerait qu'il y ait une erreur dans le fichier :
<?php
define('MYSQL_HOST', ' ');
define('MYSQL_PSEUDO', ' ');
define('MYSQL_MOT_DE_PASSE', ' ');
define('MYSQL_NOM_DATA', ' ');
$link = @mysql_connect(HOST, USER, PASS);
$db = @mysql_select_db(DBASE, $link);
if(!$link || !$db)
{
echo 'Impossible de se connecter à la base de données, vérifiez vos identifiants de connexion à mysql.';
}
?>
il faut mettre :
$link = @mysql_connect(MYSQL_HOST, MYSQL_PSEUDO, MYSQL_MOT_DE_PASSE);
$db = @mysql_select_db(MYSQL_NOM_DATA, $link);
@+
dix2
Re: Minichat
Posté : 08 mai 2012, 06:58
par xTG
C'était ce que je voulais qu'il trouve de par lui même en lisant les erreurs, sauf que manque de bol elle est pas aussi explicite que prévue.

Re: Minichat
Posté : 08 mai 2012, 09:35
par Larker
Le problème persiste même après avoir modifié ce fichier...
Mais normalement ce script est sensé s'installer dans une base de donnée nommé "test" d'après le fichier lisez moi mais je souhaiterais l'installer dans un nom de base différent car mon hébergeur donne des noms automatique aux bases.
Cela change t'il quelque chose dans ce qu'il faut changer ?
Script complet disponible ici
http://scripts.toocharger.com/fiches/sc ... t/5126.htm
Re: Minichat
Posté : 08 mai 2012, 11:03
par xTG
La constante MYSQL_NOM_DATA est là pour cibler la bonne base de données.
Quand à l'erreur persistante, arrives-tu à te connecter à la base de données avec tes identifiants via un logiciel tel que phpmyadmin ou autre (voir dans le panel admin de l'hébergement) ?
Re: Minichat
Posté : 08 mai 2012, 11:07
par Larker
Voici ce que ça m'affiche
Impossible de se connecter à la base de données, vérifiez vos identifiants de connexion à mysql. Warning: mysql_query() expects parameter 2 to be resource, boolean given in /public_html/minichat/minichat.php on line 18 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
La base de donnée fonctionne très bien car j'ai déjà différentes tables dessus.
Re: Minichat
Posté : 08 mai 2012, 11:11
par Larker
Donc c'est quand même bizzare, le script fonctionne t-il chez vous ?
Re: Minichat
Posté : 08 mai 2012, 11:17
par Larker
Donc maintenant voici ce que ça m'affiche
Table 'tchat.script_minichat' doesn't exist
Donc le problème vient, je pense du fait que le script veut lire
la table "tchat.script_minichat' au lieu de "tchat".
Mais y a t-il une façon d'arranger ça ?
Re: Minichat
Posté : 08 mai 2012, 12:36
par xTG
Non il cherche à lire la table script_minichat qui se trouve dans la base de données tchat.

Donc la base de données est mal renseignée.
Re: Minichat
Posté : 08 mai 2012, 12:37
par Larker
Mais comment peut on arranger le problème ?
Re: Minichat
Posté : 08 mai 2012, 14:12
par Larker
C'est bon j'ai arranger le problème, j'avais oublié de changer le nom de ma table ^^
Par contre j'ai encore un message d'erreur au dessus du tchat :
Deprecated: Function ereg_replace() is deprecated in /public_html/minichat/minichat.php on line 182
Et dedans:
Deprecated: Function eregi_replace() is deprecated in /public_html/minichat/includes/fonctions.inc.php on line 56 Deprecated: Function eregi_replace() is deprecated in /public_html/minichat/includes/fonctions.inc.php on line 57 Hackensolo a écrit le 03/11/2008 à 04h56 :
Bonjour à tous, ceci est mon premier minichat.
Vous en pensez quoi ?
Re: Minichat
Posté : 08 mai 2012, 14:40
par dix2
les fonctions ereg_replace() et eregi_replace() sont obsolètes
maintenant, il faut utiliser preg_replace()
@+
dix2