Votre question

Maintenance en php

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
7 Mars 2008 12:49:24

Salut,

J'essaye actuellement de créer une page de maintenance (vu que le site n'existe pas encore) et je rencontre mon premier problème!

J'ai créer une table maintenance avec 2 champs:

verif: qui a pour valeur 0
ip: qui a mon ip

Alors dans mon code php j'ai ceci:

  1. <?php
  2.  
  3. require ('config.php');
  4.  
  5. mysql_connect ("$host", "$bdd", "$pass") or die (mysql_error());
  6. mysql_select_db ("$bdd") or die (mysql_error());
  7.  
  8. $maintenance = mysql_query ("SELECT * from maintenance") or die (mysql_error());
  9. while ($verif_maintenance = mysql_fetch_array($maintenance)) {
  10.  
  11. if ($verif_maintenance['verif'] == 0) {
  12.  
  13. header('Location: maintenance.php');
  14. }
  15.  
  16. elseif ($verif_maintenance['ip'] == $_SERVER['REMOTE_ADDR']);
  17.  
  18. }
  19.  
  20.  
  21. mysql_close();
  22. ?>


Pas de problème il redirige bien le client vers la page de maintenance, mais il me redirige moi aussi...

Je pense que le problème viens de elseif en fait je ne sais pas comment faire en php un (sauf si). sinon je serais obligé de faire un else { echo""; et j'ai pas trop enfie que la variable $verif_maintenance soit ouverte sur toute la page.

J'aurais pu faire cette page de maintenance par le biais d'un .htaccess mais j'en ai déjà un pour les page d'erreurs. Et si je met le code de maintenance dans le .htaccess des pages d'erreur je ne pourrais pas l'utiliser en meme temps que mes pages d'erreur!

Merci de m'aider.

Autres pages sur : maintenance php

Anonyme
7 Mars 2008 13:48:23

Salut, voilà ce que j'essairais pour le 1er if :

  1. if ( ($verif_maintenance['verif'] == 0)&& ($verif_maintenance['ip'] != $_SERVER['REMOTE_ADDR'])) {
  2.  
  3. header('Location: maintenance.php');
  4. }

sans else donc.

Citation :
et j'ai pas trop enfie que la variable $verif_maintenance soit ouverte sur toute la page.

je vois pas de quoi tu parles..
7 Mars 2008 15:00:38

En fait j'ai trouvé encore plus simple...
C'étais inutile de faire $verif_maintenance['verif']

Il suffisait de faire $verif_maintenance['ip'] != $_SERVER['REMOTE_ADDR']

En gros si l'ip du client n'est pas égale à celui qui est dans la bdd, ca renvoit vers la maintenance.

Donc c'est bon, merci!
Contenus similaires
Anonyme
7 Mars 2008 21:39:04

Citation :
En gros si l'ip du client n'est pas égale à celui qui est dans la bdd, ca renvoit vers la maintenance.

ok.. mais dans ce cas, ton site ne sera plus jamais accessible a tes clients non ? à moins que tu ai prévu autre chose
8 Mars 2008 02:06:50

Ah oui j'avais pas pensez à ça... :( 
Pfiou ca me gonfle déjà!
Anonyme
8 Mars 2008 10:03:54

Alors essaie le code que j'ai donné avant
il fait la redirection
si ($verif_maintenance['verif'] == 0
et si l'ip est différente de la base de donnée

Citation :
J'aurais pu faire cette page de maintenance par le biais d'un .htaccess mais j'en ai déjà un pour les page d'erreurs. Et si je met le code de maintenance dans le .htaccess des pages d'erreur je ne pourrais pas l'utiliser en meme temps que mes pages d'erreur!

c'est pas normal, poste le htacess quelqu'un saura peut être ou est l'erreur
8 Mars 2008 14:23:52

Ah j'ai enfin réussi... avec le && merci à toi -Cart-
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