Page 1 sur 1

Probleme connection bdd...pourtant cherché mais pas trouvé !

Posté : 08 mars 2006, 00:31
par ratdelabo
Bonsoir,
Voici le message renvoyé:
Warning: mysql_query(): A link to the server could not be established in /var/www/sdc/f/4/objectifsvt/livre_or.php on line 102
Et voici le code php:
<div id="haut">
	<form method="post" name="formulaire">
	<h1>Contribuez au site, déposez vos commentaires</h1>
</div>
<div id="contenu">
	<div id="livreor">
	<fieldset>
	<legend>Balises de formatage du texte</legend>
	<p>
		<input type="button" onclick="nxbbcode('B', 'message');" id="B" value="B" />
		<input type="button" onclick="nxbbcode('S', 'message');" id="S" value="S" />
		<input type="button" onclick="nxbbcode('G', 'message');" id="G" value="G" />
		<input type="button" onclick="nxbbcode('I', 'message');" id="I" value="I" />
		<input type="button" onclick="nxbbcode('url', 'message');" id="url" value="url" />
		<input type="button" onclick="nxbbcode('IMG', 'message');" id="IMG" value="IMG" />
		<input type="button" onclick="nxbbcode('MAIL', 'message');" id="MAIL" value="MAIL" />
	</p>
	<p>
		<select id="couleur" onchange="addnxselectbbcode('couleur', 'message');">
			<option value="">couleur</option>
			<option value="blue">Bleu</option>
			<option value="black">Noir</option>
			<option value="red">Rouge</option>
			<option value="yellow">Jaune</option>
			<option value="green">Vert</option>
			<option value="gray">Gris</option>
		</select>
	
		<select id="size" onchange="addnxselectbbcode('size', 'message');">
			<option value="">Taille</option>
			<option value="small">Petit</option>
			<option value="medium">Moyen</option>
			<option value="large">Large</option>
			<option value="x-large">X-large</option>
		</select>
	</p>
	
	<div class="smilies">
	<p>
		<a href="#" onclick="javascript:addsmile(':ange:'); return false;"><img src="smilies/ange.png" alt="ange" /></a>
		<a href="#" onclick="javascript:addsmile(':clindoeil:'); return false;"><img src="smilies/clindoeil.png" alt="clin d'oeil" /></a>
		<a href="#" onclick="javascript:addsmile(':angry:'); return false;"><img src="smilies/angry.gif" alt="en colère" /></a>
		<a href="#" onclick="javascript:addsmile(':blink:'); return false;"><img src="smilies/blink.gif" alt="clin d'oeil" /></a>
		<a href="#" onclick="javascript:addsmile(':diable:'); return false;"><img src="smilies/diable.png" alt="diable" /></a>
		<a href="#" onclick="javascript:addsmile(':heureux:'); return false;"><img src="smilies/heureux.png" alt="heureux" /></a>
		<a href="#" onclick="javascript:addsmile(':hihi:'); return false;"><img src="smilies/hihi.png" alt="hihi" /></a>
		<a href="#" onclick="javascript:addsmile(':huh:'); return false;"><img src="smilies/huh.png" alt="huh" /></a>
		<a href="#" onclick="javascript:addsmile(':langue:'); return false;"><img src="smilies/langue.png" alt="langue" /></a>
		<a href="#" onclick="javascript:addsmile(':magicien:'); return false;"><img src="smilies/magicien.png" alt="magicien" /></a>
		<a href="#" onclick="javascript:addsmile(':mechant:'); return false;"><img src="smilies/mechant.png" alt="mechant" /></a>
		<a href="#" onclick="javascript:addsmile(':ninja:'); return false;"><img src="smilies/ninja.png" alt="ninja" /></a>
		<a href="#" onclick="javascript:addsmile(':pinch:'); return false;"><img src="smilies/pinch.png" alt="ouille" /></a>
		<a href="#" onclick="javascript:addsmile(':pirate:'); return false;"><img src="smilies/pirate.png" alt="pirate" /></a>
		<a href="#" onclick="javascript:addsmile(':pleure:'); return false;"><img src="smilies/pleure.png" alt="pleure" /></a>
		<a href="#" onclick="javascript:addsmile(':rire:'); return false;"><img src="smilies/rire.gif" alt="rire" /></a>
		<a href="#" onclick="javascript:addsmile(':rougi:'); return false;"><img src="smilies/rougi.png" alt="honteux" /></a>
		<a href="#" onclick="javascript:addsmile(':rouge:'); return false;"><img src="smilies/rouge.gif" alt="honteux" /></a>
		<a href="#" onclick="javascript:addsmile(':siffle:'); return false;"><img src="smilies/siffle.png" alt="siffle" /></a>
		<a href="#" onclick="javascript:addsmile(':smile:'); return false;"><img src="smilies/smile.png" alt="smile" /></a>
		<a href="#" onclick="javascript:addsmile(':soleil:'); return false;"><img src="smilies/soleil.png" alt="classe" /></a>
		<a href="#" onclick="javascript:addsmile(':triste:'); return false;"><img src="smilies/triste.png" alt="triste" /></a>
		<a href="#" onclick="javascript:addsmile(':unsure:'); return false;"><img src="smilies/unsure.gif" alt="pas sûr" /></a>
		<a href="#" onclick="javascript:addsmile(':waw:'); return false;"><img src="smilies/waw.png" alt="waw" /></a>
		<a href="#" onclick="javascript:addsmile(':zorro:'); return false;"><img src="smilies/zorro.png" alt="zorro" /></a>
	</p>
	</div>
	</fieldset>
	
	<p>Pseudo : <input type="text" name="pseudo"  value="" class="obligatoire" /></p>
	<div class="saisie"><textarea name="message" id="message" class="obligatoire" cols="40" rows="7"></textarea></div>
<p><input type="submit" value="Poster" class="poster" /></p>
</form>

<?php
if (!empty($_POST['pseudo']) AND !empty($_POST['message']))
{
  $pseudo = htmlentities($_POST['pseudo']);    
  $message = htmlentities($_POST['message']); 
  $message = nl2br($message);
  $ip = $_SERVER['REMOTE_ADDR'];
  $timestamp = time();
	
	$look_ip = mysql_query('SELECT COUNT(*) `ip_exist` FROM `livreor` WHERE `ip` = "'.$ip.'"');
	$reponse = mysql_fetch_array($look_ip);
	
	if($reponse['ip_exist'] == 0)
	{
	   //enregistrement dans la bdd
	  mysql_query('INSERT INTO `livreor` VALUES("", "'.$ip.'", "' . $pseudo . '", "' . $message . '", "' . $timestamp . '")') or die(mysql_error());
	  
	  header("Location:".$_SERVER['PHP_SELF']); //On redirige vers la page pour éviter les messages en double si on actualise
	}
	
	else
	{
		echo '<p>P\'tit con, le flood est interdit !</p>';
	}
}

$nombreDeMessagesParPage = 6; //Voici le nombre de messages à afficher par page

	$requete = mysql_query('SELECT COUNT(id) AS nb_messages FROM livreor') or die(mysql_error()); //On compte le nombre de messages du livre d'or
	$donnees = mysql_fetch_array($requete);
	$totalDesMessages = $donnees['nb_messages']; //On crée une variable contenant le nombre total de messages
	$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); 

if (isset($_GET['page']))
{
  $page = intval($_GET['page']);
}
else
{
  $page = 1;
}

  echo '<p style="text-align: center;">'; 

	if($totalDesMessages >= $nombreDeMessagesParPage)
	{
		for ($i = 1; $i <= $nombreDePages; $i++) //On fait une boucle pour écrire les liens vers chacune des pages
		{
			if ($page == $i) //Si on se trouve sur la page
			{
			  echo $i; //On enlève le lien vers cette page pour montrer que c'est sur celle là qu'on se trouve
			}
			else
			{
			  echo '<a href="index.php?p=livre_or&page=' . $i . '">' . $i . '</a> '; //On fait un lien vers les autres pages du livre d'or
			}
		}
	}
 echo '</p>';
	$prems = ($page - 1) * $nombreDeMessagesParPage;
	$reponse = mysql_query('SELECT * FROM `livreor` ORDER BY `id` DESC LIMIT '.$prems.','.$nombreDeMessagesParPage) or die(mysql_error());
	while ($donnees = mysql_fetch_array($reponse))
		{
		$texte= $donnees['message'];

		echo '<h4>' . $donnees['pseudo'] . ' a écrit :</h4>
			<div>' .preg_replace('!</p>(<br />)+!', '</p>', smilies(bbcode($texte))). '</div>
			<p class="infos">Le '. date('d/m/Y \à H\hi', $donnees['timestamp']) . '</p>';
		
		}
?>
</div>
</div>
Merci de votre aide

Posté : 08 mars 2006, 00:34
par pjl
1. merci de ne pas mettre une tartine de code surtout quand il n'a rien à voir avec le problème.
2. ou est la partie du code assurant la connectiion à la base de données ?

Posté : 08 mars 2006, 10:00
par ratdelabo
Je fonctionne avec une include en début de page index:
<?php
ob_start();
require('include.php');
require('bbcode.php');
require('connect.php') ;
?>
les identifiants sont les bons dans le "fichier connect.php".
Et avec une autre include dans le block "centre" qui mène vers la page livre_or ou autre:
<div id="centre">
		<?php include($page) ?>
	</div>
Voilà pourquoi j'avais mis le code de la page livre_or.php. L'erreur signalée vient de cette page...mais où ?

Posté : 08 mars 2006, 10:48
par Ryle
Ben là.. comme ça... à vue de nez... juste en lisant l'erreur... j'dirais que ça vient de la ligne 102 :)

Et si on regarde ligne 102 :
$requete = mysql_query('SELECT COUNT(id) AS nb_messages FROM livreor') or die(mysql_error()); //On compte le nombre de messages du livre d'or 
on trouve justement une requête :)

Un p'tit coup d'oeil sur php.net et on trouve la syntaxe et les explications de mysql_query :
"resource mysql_query ( string query [, resource link_identifier] )"

- query
Une requête SQL. La chaîne de requête ne doit pas se terminer par un point-virgule.

- link_identifier
La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

voili voilo :)

Posté : 08 mars 2006, 11:36
par ratdelabo
Ce que je ne comprends pas c'est que je n'ai rien touché ! D'ue connexion à l'autre, le serveur n'a plus répondu...Enfin, si j'ai bien compris, je vire le ";" à la fin de la requête c'est ça? Parce que la connexion est bien déjà ouverte grâce au fichier "connect.php" ?!

Posté : 08 mars 2006, 12:01
par Ryle
Bah le message dit "A link to the server could not be established" donc c'est pas la requête qui pose problème (qui n'a pas de ; de toute façon ;)), mais bien la connexion à la base... :)

As tu bien le mysql_connect() dans ton connect.php ? pas d'erreur ou de warning avant celui-ci ? pas de @ qui t'empêcherait de constater une erreur ? ...
A vérifier : ta base est elle bien démarée ? son emplacement n'a pas été modifié ? les login / mot de passe sont ils correct ? etc.


(Sinon petite remarque en passant, même si je partage ton avis, la ligne 96 n'est pas très netiquette ;))

Posté : 08 mars 2006, 13:59
par ratdelabo
non je ne vois pas. Voici mon code dans "connect.php" (les identifiants ont été vérifiés, les requêtes sur la base marchent parfaitement...):
<?php
mysql_connect("*****", "****", "******");
mysql_select_db("******");
?>
Alors là...je nage :cry: