Beste PHP-freakies(niet slecht bedoeld hé),
Ik zoek al een tijdje een script, waarbij je op een pagina, een php bestand moet includen, waarin staat of je site offline of online is + reden(als hij offline is).
Bijvoorbeeld: ik wil onderhoud aan mijn site doen, dus ik ga naar de admin van dat script, stel het op offline in, stel een reden in, en als je op een pagina komt waarin het script wordt geinclude, staat dat de site offline is + reden.
Kan je der aan uit? :P

alvast bedankt :p
Nille
Het is een eitje om te maken, kwestie van een database verbinding maken en kijken 'of daar een 1 of een 0 staat'. Valt een beetje in de zelfde categorie als mijn banscript wat ik aan het maken ben (krijg je te zien door wie je gebanned bent, tot waneer, en waarom enzo).

Maareh, alles is een beetje afhankelijk van hoe hoog jij jou kennis niveau inschat.
Wel, eigenlijk heb ik niet zoveel ervaring in PHP, ik kan er wel een beetje mee overweg, snap je.
Maar MySQL, forms, etc lukt nog niet zo goed :S
Nils schreef op 01.01.2006 17:17
Wel, eigenlijk heb ik niet zoveel ervaring in PHP, ik kan er wel een beetje mee overweg, snap je.
Maar MySQL, forms, etc lukt nog niet zo goed :S


Wat kan je dan wel?
<?php
echo 'Hello World!';
?>
Forms & MySQL lijken me zowat het belangrijkste/meest gebruikte :)
Tutorials eens doornemen dan ;)
denk je soms dat ik een stomme n00B ben?
Nils schreef op 01.01.2006 17:33
denk je soms dat ik een stomme n00B ben?


'k wil je niet extreem laag inschatten, maar aan je leeftijd te zien zal je er niet zo ver van af zitten.. ;) 't is natuurlijk oppervlakkig om mensen in te schatten adhv hun leeftijd, maar soit :) Fijne reactie trouwens ;)
MySQL table

id INT(2) NOT NULL AUTO_INCREMENT,
offline INT(1) NOT NULL default '',
reason TEXT NOT NULL default '',
PRIMARY KEY(id)
) ENGINE=MyISAM;

config.php (deze include je meestal wel op alle pagina's)

<?
if($var['offline'] == 1){
echo 'De site is offline omdat' . $var['reason'];
} else {
// uitvoer van script
?>
Het is een kwestie van een tabel met daarin:

ID (1 per gedeelte van de site)
Naam (Kan ook alleen een ID gebruiker, maar Naam is duidelijker)
Status (Enum, 0/1, 0 is online, 1 is bijv. offline)
Rede

Eventueel een datum/tijd erin waarop je verwacht klaar te zijn met je onderhoudswerkzaamheden.

Bij het bezoeken van een bepaald onderdeel doe je een query naar de database met iets als 'select status from tabel where id = $bla', waarin bla het id van het onderdeel is.

Vervolgens kijk je of er een 0 of een 1 staat. Bij 0 doe je niks, en bij 1 doe je een exit, met erboven de eventuele tekst/uitleg/datum.

Het 'administratie' systeem is helemaal peanuts, ik ga er vanuit dat je al een lijstje van jou site onderdelen heb, dus hoef je alleen maar te update:

<?php
if(isset($_POST['submitform']))
{
if(isset($_POST['id']) && isset($_POST['status']) && isset($_POST['rede'])
{
$id = mysql_real_escape_string($_POST['id']);
$status = mysql_real_escape_string($_POST['status']);
$rede = mysql_real_escape_string(nl2br($_POST['rede']));

$result = mysql_query("UPDATE tabel SET status=".$status.", rede=".$rede." WHERE id=".$id."")
or die(mysql_error());
}
}
?>

Overigens, ipv de halve site down te halen. Kan je niet beter eerst je 'updates' locaal testen, en dan alles huppakee! uploaden?
Al bedankt voor alle codes.
arjan, daar zeg je al zoiets,
dat doe ik ook veel hoor :)
maar stel nu dat je de site nu even voor een week ofzo offline moet halen voor een of andere, famiale reden of weet ik veel :P
De volgende code komt rechtstreeks uit de php manual:


Example 1. fsockopen() Example
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";;
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>

Dit zou je kunnen omvormen naar:


<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "Webserver is offline";
} else {
echo "Webserver is online";
fclose($fp);
}
?>
Arend, het is dat niet wat ik bedoel ;)
maar toch bedankt

Reageren