Automatisch zondag gesloten script

Status
Niet open voor verdere reacties.

Markez

Gebruiker
Lid geworden
6 okt 2012
Berichten
29
Goedenavond,

Kan iemand mij helpen met het zondag gesloten script werkend te krijgen.
Ik heb hier al in dit forum gesnuffeld en stuite op de html en de php code.
Waar kan ik deze het beste plaatsen?
ik heb zelf al wat gebropeerd maar dit lukt niet.
Wat is makkelijker de html of de php code?
Deze kwam ik tegen
<html>
<head>
<title>test</title>
<script type="text/javascript">
function test() {
vandaag=new Date();
dag=vandaag.getDay();
if (dag==0) {
document.getElementById('inhoud').style.display = "none";
document.getElementById('zondag').style.display = "block";
}
}
</script>
</head>
<body onload='test()'>
<div id="inhoud">
<p>inhoud van de site</p>
</div>
<div id="zondag" style="display:none;">
<p>Op zondag is onze site gesloten.</p>
</div>
</body>
</html>

Ik hoor het graag.
 
ik zeg maar lees ff je code door :)

je doet:

vandaag = new Date()
dag = vandaag.getDag()

je geeft alleen aan dat 'vandaag' een date gaat krijgen, maar niet welke date...dus hij blijft leeg. Ik ben geen php-er maar denk dat het in dat stuk zit. En vandaag is alleen maar een naam ej, je had het desnoods piet kunnen noemen...

Google ff op:
set Date today PHP
 
Of je het beste javascript of php kunt gebruiken hangt af van wat je precies wilt. Javascript werkt in de browser, in dat geval zal de site dus gesloten zijn als de PC van de bezoeker denkt dat het zondag is. PHP werkt op de server en zal de site dus sluiten wanneer het volgens de server zondag is. Als de server in NL staat en je voornamelijk Nederlandse bezoekers krijgt maakt dat verschil natuurlijk weinig uit, maar als er veel mensen uit andere tijdzones op je site komen kan het uitmaken. Daarbij komt ook dat de gebruiker Javascript uit kan zetten en dan dus wel op zondag bij de site zou kunnen komen.

@EdjeCageman: Die code is javascript, geen PHP, hij werkt ook gewoon. Leesvoer over het Date() object.
 
Laatst bewerkt:
zoals ik al zei, ben geen webdeveloper, probeerde alleen maar ff mee te denken. :)
 
Bedankt voor de reacties.
Ik wil dan het liefst dat deze naar de server kijkt aangezien het het hier alleen om Europa gaat.
Kan ik dan deze code gebruiken:
<?php
$dag = strftime("%w"); /* Geeft nummer voor dag van week aan, 0=zondag en 6=zaterdag */
?>
<html>
<head>
<title>test</title>
</head>
<body>
<?php
if ($dag == 0) {
?>
Op zondag is onze site gesloten
<?php
} else {
?>
Inhoud van de site
<?php
}
?>
</body>
</html>

Ik vraag mij dan wel af ik deze dan in de huidige index pagina tussen de body's moet plaatsen.
Of moet ik hier een aparte index voor maken.
En moet ik dan nog wat aan deze code wijzigen behalve de tekst gesloten dan natuurlijk.
Ik zie opeens inhoud van de site staan in de code .Moet ik het daar soms tussen plaatsen wat ik op de site heb staan?
 
Allereerst moet je zorgen dat je pagina's PHP pagina's zijn en gene HTML pagina's anders zal de code überhaupt niet werken.

Wat je wellicht het beste kunt doen (zonder je site te zien blijft het gokken) is de stukjes php code, dat zijn de stukken tussen <?php ?>, in je site te zetten, op dezelfde plek waar ze ook in deze code zitten.
Code:
<?php
 $dag = strftime("%w"); /* Geeft nummer voor dag van week aan, 0=zondag en 6=zaterdag */
 ?>
Komt dan bovenaan elke pagina te staan.
Code:
<?php
 if ($dag == 0) {
 ?>
 Op zondag is onze site gesloten
 <?php
 } else {
 ?>
Net onder de <body> tag. En
Code:
<?php
 }
 ?>
Net boven de </body> tag.

PS: Als je code op het forum zet, altijd even tussen [code*] [/code*] (zonder *) zetten.
 
Het probleem is wel dat je op al je pagina's dit moet doen. Tenzij dat de gebruikers bijvoorbeeld alleen via index.php naar alle pagina gaat dus dat al het verkeer over 1 bestand gaat. Indien dit niet het geval is moet je dus voor alle pagina's dit uitvoeren.

Daarnaast op het moment dat er php tussen html komt te staan kan je beter : gebruiken dan } aangezien dit net iets fijner leest en iets duidelijker is dan me de } (vind ik ook persoonlijk).

PHP:
<?php
// je gebruikte hier strfttime maar dat is eigenlijk voor het omzetten van bijvoorbeeld de maanden naar een andere taal. 
// Alleen is het zo dat je dat nu niet nodig hebt ik zou dan ook gaan voor date
$dag = date('w'); /* Geeft nummer voor dag van week aan, 0=zondag en 6=zaterdag */

//eventueel zou je het bovensten nog weg kunnen laten en dit meteen doen in de if statement
?>
<html>
<head>
<title>test</title>
</head>
<body>
<?php
// minder code:
// if (date('w') == 0)

if ($dag == 0) :
?>
Op zondag is onze site gesloten
<?php else : ?>
Inhoud van de site
<?php endif; ?>
</body>
</html>

Puur nieuwsgierig, waarom wil je dat je website niet te bezoeken is op zondag?
 
Laatst bewerkt:
Oké het word al iets duidelijker.Ik heb een index.htm pagina waar alles overheen loopt.
Dus kan ik de php code gebruiken als ik de :gebruik i.p.v }
Deze code had ik uit dit forum dus waarom er * staat weet ik niet.
Ik kan het testen op een zondag zelf neem ik aan anders niet.
Deze site ben ik aan het maken voor iemand anders de veel waarde hecht aan de geloofs overtuiging,vandaar.
Klaaspeter moet ik de oranje tekst weglaten of kan ik het erin laten staan.
 
deze index.html moet een index.php worden anders gaat het script sowieso niet werken.

op het moment dat php en html door elkaar staan gebruik je : op het moment dat het tussen alleen php staat gebruik je }

Je kan het inderdaad testen op een zondag maar je zou ook voor het testen een andere dag kunnen pakken dat maakt niet uit :)

die tekst kan je gewoon laten staan dat zijn opmerkingen en zullen niet voorkomen op de pagina als de extensie .php :)
 
Ik ben even bezig geweest met deze code. index.htm veranderd naar index.php.
En de code zoals je beschreef getracht er tussen te zetten.
Ik doe dit in dream weaver daar zie ik gelijk dat er linksboven staat ( op zondag is onze site gesloten) en ik krijg de normale homepage te zien.
Nu zet ik het op de server en dan krijg ik al mijn plaatjes en opvullingen niet te zien.De tekst zondag gesloten is ook weg maar dat kan ik begrijpen dat deze alleen op zondag dan zichtbaar moet zijn.Mijn tekst staat er tevens nog wel.
Doe ik nu iets niet goed?
Het lijkt wel of hij mijn map niet vind van mijn plaatjes en kleuren erin.
 
Zou je de code die je nu hebt eens kunnen posten?

Dan kan ik kijken of ik eventueel iets vind.
Daarnaast kan het zijn dat die ook gedeeltelijk nog een cache laad maar weet niet zeker, je zou eens alle geschiedenis kunnen wissen en dan opnieuw naar de pagina gaan. Maar ik zou eerst maar eens je code posten :)
 
Het was even pielen maar ik heb het voor elkaar.
Ik heb het nog eens goed bekeken en het lukte, ik heb het ook nog een getest om de dag op 3 te zetten en het werkt.
Nu alleen nog een logo ertussen zetten de tekst aanpassen en dan is het compleet.
Thanks
 
Het probleem is wel dat je op al je pagina's dit moet doen. Tenzij dat de gebruikers bijvoorbeeld alleen via index.php naar alle pagina gaat dus dat al het verkeer over 1 bestand gaat. Indien dit niet het geval is moet je dus voor alle pagina's dit uitvoeren.
[...]

Dit probleem kan je ondervangen door de code in een include te zetten en deze op elke pagina te 'includen'...
Zie ook php.net.
 
Correct! Dat moet je doen als je de site op zondag helemaal waterdicht wilt aftimmeren.
Anders kan een willekeurige achterliggende pagina door Google gevonden worden, en kan men er toch bij komen - tenzij je alle achterliggende pagina's van een "noindex" opdracht hebt voorzien; maar dan komen die ook niet op de weekdagen uit Google stromen.

En nog even iets anders.
Het lijkt me wel zo sympathiek voor de bezoeker als er iets meer komt te staan dan een kil "website gesloten op zondag".
  • Een mogelijkheid is bv. om een speciale "zondag-pagina" te maken, waarin wordt uitgelegd wat de zondagsrust voor de mensen van de site betekent. Dan hoeft dat niet in de php-broncode van elke pagina te worden gezet. *)
  • Er kunnen eventueel ook wat summiere bereikbaarheids-gegevens voor noodgevallen op worden gezet (hangt er van af wat voor soort organisatie het is).
  • Die pagina kan dan eveneens via een php-include (binnen de andere include) getoond worden: alleen op zondag plaatsvervangend. - Kan verder ook als gewone losse pagina opgenomen worden in het menu.
  • En misschien staat het al op de contact-pagina of ergens anders (bv. in een voetregel), maar een kleine waarschuwing dat de site op zondag dicht is (+ link naar de toelichting op de zondag-pagina) kan bezoekers voor teleurstellingen behoeden.

Met vriendelijke groet,
CSShunter
__________
*) Zoals op de site [url]www.betuwehof.nl[/URL] (even wachten tot zondag).
 
Laatst bewerkt:
Dit probleem kan je ondervangen door de code in een include te zetten en deze op elke pagina te 'includen'...
Zie ook php.net.

Een include is inderdaad beter, maar houd nog steeds in dat je alle pagina's moet aanpassen, want hij zal nog steeds die statement moeten maken snapje en op elke pagina de include toevoegen overigens is dit natuurlijk wel mooier :) vanaf het moment dat alle pagina's zijn kan je natuurlijk gewoon kopiëren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan