Tom's Guide > Forum > Programmation > Site fermé ou ouvert

Site fermé ou ouvert

Forum Programmation : Site fermé ou ouvert

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

Je cherche quelqu'un qui sache compléter mon script, je ne trouve pas...

ouvert.html :

Code :
  1. <html>
  2. <body>
  3. <form method="post" action="post_ouvert.php">
  4.   <p>
  5.       <label>
  6.           Site ouvert ou fermé br />
  7.           <select name="ouvert">
  8.               <option value="Ouvert">ouvert</option>
  9.               <option value="fermé">fermé</option>
  10.                         </select>
  11.       </label>
  12.   </p>
  13. </form>
  14. </body>
  15. </html>




post_ouvert.php

Code :
  1. <?
  2. if ( $_POST== "ouvert" ) //
  3. {
  4. //script qui me manque
  5. }
  6. else
  7. {
  8. //script qui me manque
  9. }
  10. ?>



En faite je voudrai soit ouvrir le site, soit le fermer.

J'avais pensé à un sorte d'include, mais je n'y arrive pas.

Merci de m'aider !

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Je ne connait pas le PHP. Désolé.

Répondre à Mdy@IDN

Citation :


mdy a écrit :
Je ne connait pas le PHP. Désolé.



Ne répond pas au topic alors...

Répondre à resdee

En fait, ce que je veux faire, c'est si site=ouvert, affiche cette page, sinon, affiche celle la.

Merci de m'aider !!

Répondre à frynfo

Bonjour,

essaye:

Code :
  1. <?
  2. if ( $_POST== "ouvert" ) //
  3. {
  4.   include ("site_ouvert.php" );
  5. }
  6. else
  7. {
  8.   include ("site_ferme.php" );
  9. }
  10. ?>



A+

Répondre à furansu

2 erreur, la premiere dans ton tableau $_POST tu ne met aucune valeur, quest ce que tu veux qu'il compare ? Le nom de l'input est "ouvert" (<select name="ouvert"> ) donc $_POST['ouvert']

De plus, lorsque tu fais la comparaison, tu a ecris Ouvert dans la valeur du select, donc tu devras ecrire Ouvert, et pas ouvert.

Enfin...

<?
if ( $_POST['ouvert'] == "Ouvert" ) {
// Inclusion de la page du site ouvert
} else {
//Inclusion du site fermé
}

?>

Répondre à okin@IDN

Citation :


Okin a écrit :
2 erreur, la premiere dans ton tableau $_POST tu ne met aucune valeur, quest ce que tu veux qu'il compare ? Le nom de l'input est "ouvert" (<select name="ouvert"> ) donc $_POST['ouvert']

De plus, lorsque tu fais la comparaison, tu a ecris Ouvert dans la valeur du select, donc tu devras ecrire Ouvert, et pas ouvert.

Enfin...

<?
if ( $_POST['ouvert'] == "Ouvert" ) {
// Inclusion de la page du site ouvert
} else {
//Inclusion du site fermé
}

?>



Ok, merci d'avoir corrigé mes erreurs !

J'avais déjà pensé à un include, sauf que ca inclut dès qu'on envoi la requete, mais moi je voudrai que la requete s'enregistre (j'avais pensé avec du sql).

En fait, ce script se situe dans la partie admin, donc seul l'administrateur peux choisir si le site est ouvert ou fermé : si le site est fermé, quand les visiteurs arrive sur le site, une page indique que le site est fermé, donc les visiteurs ne peuvent rien faire sur le site, car il n'y a aucun lien ni rien sur la page. Mais si le site est ouvert, la page par défault avec tous les liens et tous les scripts s'affiche, donc le visiteur peut visiter le site.

C'est assez compliqué ce que je veux faire, mais pour ceux qui connaise un peu XOOPS, quand on veut fermer le site dans l'administration du site, un page spécial "fermeture du site" s'affiche.

Il faudrai en fait que si site=fermé, ca active une certaine page.

Merci beaucoup !

Répondre à frynfo

Et cela depend de quoi ouvert et fermé ?

Répondre à SiM07

Cela dépend si l'administrateur l'active ou pas !

D'où mon premier script en html, pour choisir si le site est ouvert ou fermé !!

Répondre à frynfo

tu t'y prends mal. Tu n'y arrieras pas avec juste des scripts en testant des variables.

Il faut sauvegarder le rsultat du formulaire dans un fichier. Et il faut ensuite que le chargement de la page dépende du contenu de ce fichier

Répondre à khayyam

Comme dit au dessus, pour une petite info, cree un fichier .php avec divers parametre du site, dont ouvert ou fermé, quand tu traitera ton script, tu ecrira dedant sa valeur.

regarde sur php.net "fopen" tu aura le reste des fonction accompagné qui te serviront

Répondre à okin@IDN

Ok, merci, je vais voir ca tout de suite !

Répondre à frynfo

Moi j'utiliserai un fichier text ou une BDD (admettons le fichier text)

et tu fait :


-l'admin dit ouvert : le ouvert.txt contient a l'interieur un 1
-l'admin dit fermé ouvert.txt contient 0

ensuite tu va lire le fichier et :

if $lavarialble == 1

else


et le tour est joué !

Répondre à SiM07

Cela dit, il n'y a pas qu'avec PHP que l'on peut résoudre le problème, avec un autre langage aussi, comme le java script, ...

Répondre à Mdy@IDN

En Javascript, pourquoi faire ? PHP s'execute coté serveur, Javascript coté client, le JS est désactivable.

Si le webmaster un jour, desactive le JS ou a eventuellement un probleme avec son naviguateur(je suis pas parano, j'explique) en PHP, il est sur qu'une fois la valeur validé sur son interface d'admin lui permettra d'obtenir ou non sa maintenance sur le site.

Répondre à okin@IDN

Il vaut mieux stocker ca dans une BDD (ca a plein d'avantages divers).

Deja, première remarque :

Code :
  1. <form method="post" action="post_ouvert.php">
  2.   <p>
  3.       <label>
  4.           Site ouvert ou fermé br />
  5.           <select name="ouvert">
  6.               <option value="Ouvert">ouvert</option>
  7.               <option value="fermé">fermé</option>
  8.                         </select>
  9.       </label>
  10.   </p>
  11. </form>


Manquerait-y pas un chti bouton "submit" ?
Zut, alors....

Ensuite :

Code :
  1. <?
  2.     if ( $_POST['ouvert'] == "Ouvert" ) {
  3.     // Inclusion de la page du site ouvert
  4.     } else {
  5.     //Inclusion du site fermé
  6.     }
  7.     ?>


- on écrit pas <? mais <?php
- manquerait-il pas un ptit isset ?

Pour la base mysql, je te conseille de faire un table "site_etat" avec ces trois variables :
id, date, ouvert.

À chaque visite tu lis la dernière entrée ('SELECT ouvert FROM site_etat WHERE id=LAST_INSERT_ID()')
Et tu regarde si le champ ouvert vaut 0 (fermé) ou 1 (ouvert).

À chaque passage dans l'adminisitration tu lis la dernière entrée pour vérifier que le site n'était pas déja fermé/ouvert, et si c'est bien un changement d'état tu ajoutes le nouvel état ("INSERT INTO site_etat(id, date, ouvert) VALUES('', NOW(), $ouvert)" ).

On pourrait stocker un seul champ, mais avec ma méthode tu pourras faire de zolies stats pour faire palir d'envie les autres webmasters (le site a été fermé 12.7% du temps, les fermetures durent en moyennes 5 heures 4 secondes...)

Répondre à bluedylc

Non il ne manque rien, ici ce n'est pas necessaire un ISSET, vu que c'est une liste déroulante et qu'il ne traitera que cela. De plus si il y'a vraiment que ce script d'ouverture/fermeture de site pour maintenance, inutile d'utilisé mysql. (Surtout si il ne veut pas de stats)

Répondre à okin@IDN

Sinon vu qu'il n'y a pas le submit il peu faire onclick="document.lenomduformulaire.submit()"

Répondre à SiM07

Citation :

Non il ne manque rien, ici ce n'est pas necessaire un ISSET, vu que c'est une liste déroulante et qu'il ne traitera que cela.

Ha ha ha....
Si, l'isset est bien nécessaire, car je peux très facilement valider le formulaire en donnant la valeur que je veux à ce $_POST. C'est pas une faille de sécurité _en soit_ mais ca provoque quand meme une erreur PHP assez grave, et ca arrête le script, donc il vaut mieux l'éviter.

Répondre à bluedylc

Rigole, rigole...

Tu ne sais meme pas à quoi sert l'isset. ISSET verifie si la variable est DECLARE mais ne controle pas sa valeur.

Donc ici, le isset comme je le disais n'est pas necessaire car c'est un choix dans un select, il contiendra a l'origine forcement une valeur, et vu qu'il ny'a pas d'autre champ input, cette variable sera toujours déclaré.

Pour la suite tu script tu peut utilisé un switch


switch ($_POST['Ouvert']) {
case 'ouvert':
case 'ferme':
//Execution du script
break;

default:
// Condition si la valeur n'est pas egale a ouvert ou fermé.
}

T'a raison de rire, quest ce que je me marre ! :)

Répondre à okin@IDN

hum, effectivement j'ai fait l'amalgamme "besoin d'isset"/"besoin de controle de la valeur".

Cependant le besoin d'isset est toujours vrai : exemple, le submit dirige vers 'validation.php'. Que ce passe-t-il si j'ouvre firefox, je tape l'adresse de son site, suivit de 'validation.php' ?

Boum ! il execute le code, mais le $_POST n'est pas défini, d'où gros bug : soit le php s'arrete, soit il donne la valeur FALSE par exemple à $_POST['ouvert'], et il essaie de l'inserer dans la BDD, d'où gros bordel en perspective.

Répondre à bluedylc

Dans ce cas oui, mais je partas du principe que cette zone sera protegé par session/htaccess. M'enfin....

Répondre à okin@IDN

Si il faut l'isset c pratiquement indipendable tou comme trim


le mieu c'est de faire isset(trim($_POST['letruc'])) meme pour le select car si il n'y a rien tu renvoir u petit message ou tu ramene en arriere dans le forumalaire qui convient

Répondre à SiM07

OK, merci pour toute vos réponses, je vais regarder ca de près !

Répondre à frynfo
Tom's Guide > Forum > Programmation > Site fermé ou ouvert
Aller à :

Il y a 865 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens