Se connecter avec
S'enregistrer | Connectez-vous

Maintenance en php

Dernière réponse : dans Programmation
Expert Programmation

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

Lassé par la pub ? Créez un compte

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..
Expert Programmation

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!

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

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
Lassé par la pub ? Créez un compte
Tom's guide dans le monde