Se connecter / S'enregistrer

Résolu PHP - Afficher un tableau que si la base est en ligne

Solutions (21)
Tags :
  • Echo
  • Programmation
, OS + (collector) |
Bonjour,

J'ai une page PHP qui affiche un menu, et en dessous un tableau (un select de la base de données).
Je vous passe les détails de la config.

Voici un extrait:

  1. $socket = fsockopen($server_ip, 3306, $codeErreur, $msgErreur, 1);
  2.  
  3. if (!$socket)
  4. {
  5. echo '<u>La base de données est :</u> <font color=red><b>Hors Ligne</b></br></font>';
  6. }
  7. else
  8. {
  9. echo '<u>La base de données est :</u> <font color=green><b>En Ligne</b></br></font>';
  10.  
  11. // Reste de l'affichage du tableau
  12.  
  13. }


LE souci c'est que ... Quand la base est ON, ca marche.

Quand la base est OFF, au lieu de ne mettre que

Citation :
La base de données est Hors Ligne


Il me sort juste ca:

Citation :
Lost connection to MySQL server at 'reading initial communication packet', system error: 61


L'entête de la page n'est pas affiché. Et l'utilisateur ne sait pas que c'est la base de données qui est OFF.

Des pistes pour éclaircir mon souci ?
Contenus similaires
Meilleure solution
partage
|
donne moi en mp ton ip du serveur mysql si ce n'est pas "localhost" avec un login et mot de passe de test (si tu peut créer une base bidon) que je vois ça en testant sur mon serveur.
  • Commenter cette solution |
Score
0
òh
òi
|
RedSux a dit :
t'es pas payé :o 

ah bon [:okinou:1] ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Vas dormir okinou, t'es pas payé :o 
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci j'y croyais plus :p 
  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
Meilleure réponse sélectionnée par TGV6773.
  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
Salut,

j'ai mis ça. Ca mouline, ca mouline et ...

Lost connection to MySQL server at 'reading initial communication packet', system error: 61
  • Commenter cette réponse |
Score
0
òh
òi
|
Ou plus simplement, pourquoi ne pas mettre la gestion de l'erreur dans le config, ce qui donnerait:
config.php
  1. <?php
  2. error_reporting(0);
  3.  
  4. $host = 'xxxx.fr';
  5. $utilisateur = 'xxx';
  6. $mot_de_passe = 'xxx';
  7. $connexion = @mysql_connect($host ,$utilisateur ,$mot_de_passe);
  8. $server_ip = 'xxx.fr';
  9.  
  10. $bdd1 = 'bdd1';
  11. $bdd2 = 'bdd2';
  12. ?>


page.php
  1. <?php
  2. session_start();
  3. require_once('config.php');
  4. if ($connexion)
  5. echo '<u>Base de données :</u><span style="color:green; font-weight:bold;">Online</span><br />';
  6. else
  7. echo '<u>Base de données :</u><span style="color:red; font-weight:bold;">Offline</span><br />';
  8. ?>

  • Commenter cette réponse |
Score
0
òh
òi
|
BINGO mouhahahaha, c'est normal vu que tu fais une connexion dans ton config.php lorsque tu éteind celle ci, normal que tu es le message d'erreur, donc dans ta page php, tu commente ton :

// include 'config.php';

et cela devrait mieux fonctionner

Citation :

<?php
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
// include 'config.php';
?>
<div>
<div style="margin-left:80px;">
<?php
echo '<b><u>Configuration générale</u></b></br>';
if (mysql_connect($host,$utilisateur,$mot_de_passe))
{
echo '<u>Base de données :</u><font color=green><b>Online</b></br></font>';
}
else
{
echo '<u>Base de données :</u><font color=red><b>Offline</b></br></font>';
}
?>


le développement c'est avant tout de la logique dans les étapes de structuration & d'interprétration de ton code/programme
  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
Bien vu

  1. <?php
  2.  
  3. error_reporting(0);
  4.  
  5. //--------les Identifiants pour les Bases de Données---------------------------------------------------------------
  6. $host = 'xxxx.fr';
  7. $utilisateur = 'xxx';
  8. $mot_de_passe = 'xxx';
  9. $connexion = mysql_connect($host ,$utilisateur ,$mot_de_passe) or die(mysql_error());
  10. $server_ip = 'xxx.fr';
  11.  
  12.  
  13. //---------les Bases De Données---------------------------------------------------------------------------------------
  14.  
  15. $bdd1 = 'bdd1';
  16. $bdd2 = 'bdd2';
  17.  
  18. htmlspecialchars($input);
  19. htmlentities($input);
  20. addslashes($input);
  21.  
  22. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
dans ton config.php tu as quoi ? Tu as une connexion à la base de donnée ?
  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
Salut,

Voici le début de la page:

  1. <?php
  2. session_start();
  3.  
  4.  
  5. error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
  6.  
  7. include 'config.php';
  8. ?>
  9. <div>
  10. <div style="margin-left:80px;">
  11. <?php
  12.  
  13.  
  14.  
  15. echo '<b><u>Configuration générale</u></b></br>';
  16.  
  17. if (mysql_connect($host,$utilisateur,$mot_de_passe))
  18. {
  19. echo '<u>Base de données :</u><font color=green><b>Online</b></br></font>';
  20. }
  21. else
  22. {
  23. echo '<u>Base de données :</u><font color=red><b>Offline</b></br></font>';
  24. }
  • Commenter cette réponse |
Score
0
òh
òi
|
tu as une autre connexion sql avant le code la, c'est pas possible sinon d'avoir cette erreur qui intervient à chaque fois ?! Tu as quoi avant comme code ?
  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
crazycat@idn a dit :
Je vais sûrement dire une bétise, mais est-ce que ton niveau de report d'erreur n'est pas un peu élevé ?
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
  3. ?>


J'ai testé a l'instant sans succès

A+
  • Commenter cette réponse |
Score
0
òh
òi
|
Je vais sûrement dire une bétise, mais est-ce que ton niveau de report d'erreur n'est pas un peu élevé ?
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
  3. ?>

  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
Salut,

J'ai fait ta solution :

Lost connection to MySQL server at 'reading initial communication packet', system error: 61

Lorsque la base est arrêtée :s
  • Commenter cette réponse |
Score
0
òh
òi
|
Sinon, comme l'a suggérer crazy :

"Et pourquoi n'utilises-tu pas mysql_connect() pour tester la connexion ? "

donc du genre : if (mysql_connect($host,$login,$pass)) { echo 'on'; } else { echo 'off'; }
  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
Salut,

En Fait j'ai un site sur une plateforme A (Toile-libre.org)
Et la base de données sur une plateforme B (Un serveur dédié)

Quand c'est ON, ça marche. Quand je coupe volontairement pour tester (je dis bien couper juste mysql) ce message est présent: "Lost connection to MySQL server at 'reading initial communication packet', system error: 61"

En haut du site sur la plateforme A j'ai en gros:

Base de données : EN LIGNE

Et bien pour indiquer que la base est hors ligne, je veux ne pas afficher le select de dessous (qui me renvoie un tableau de valeurs) mais juste mettre

Base de données : HORS LIGNE.
  • Commenter cette réponse |
Score
0
òh
òi
|
peut etre un serveur distant qui n'autorise pas la connexion distante mais que local ? bref on va attendre sa réponseeeeeeeeeeeeeeeeeeeeeeeeeeeeeuuuuuuuuuuu
  • Commenter cette réponse |
Score
0
òh
òi
|
Ton souci ne me semble pas venir du fait que le serveur soit hors ligne, car tu aurais alors comme erreur:
Warning: fsockopen(): unable to connect to localhost:3306 (Connection refused)

Et pourquoi n'utilises-tu pas mysql_connect() pour tester la connexion ?
  • Commenter cette réponse |
Score
0
òh
òi
, OS + (collector) |
okinou a dit :
@fsockopen ?


Salut,

Et bien non, toujours le même souci :s :cry: 
  • Commenter cette réponse |
Score
0
òh
òi
|
@fsockopen ?
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS