Brauche kleine Hilfestellung

Ich habe dein Script nun folgendermaßen ergänzt.
Ich habe in diesem fall einfach mal die Datei mit den Daten settings.php genannt
und die Datei über die wir die Daten ändern config.php
Das müsstest du halt dann evtl. ändern wenns dir nicht gefällt.
Ach ja, natürlich brauchst du dann für die settings.php die erforderlichen Lese/Schreibrechte.
Probier's einfach mal aus. Es sollte eigentlich funktionieren.

In der Datei mit den Daten (settings.php) sollte lediglich folgendes drin stehen.


yes<22.12.2007<24:00<24.12.2007<24:00


Das Zeichen "<" dient als Trennzeichen und kann durch ein anderes ersetzt werden.

Nun der Code für die config.php:




<?php
extract($_POST);


if ($action == "update"){ //Update wird nur ausgeführt wenn der Submitbutton angeklickt wurde
$handle = fopen("settings.php","w"); //Datei wird zum schreiben geöffnet
fputs ($handle, "$wartung<$wartung_von_date<$wartung_von_time<$wartung_bis_date<$wartung_bis_time");
fclose($handle);
}


$handle = fopen("settings.php", "r"); //Datei wird zum lesen geöffnet
$import = fgets($handle);
$data = explode("<",$import); //Dieser Array enthält die einzelnen Werte der settings.php

$wartung = "$data[0]";
$wartung_von_date = "$data[1]";
$wartung_von_time = "$data[2]";
$wartung_bis_date = "$data[3]";
$wartung_bis_time = "$data[4]";

fclose($handle);


echo "

<form method='POST' action='config.php'> //Das Script ruft sich selber wieder auf
<input type=\"hidden\" name=\"action\" value=\"update\"> //damit das Update nur beim submitt erfolgt
<table border='0'>
<tr>
<td colspan='2' valign='center'>
<table border='0'>
<tr>
<td>
<IMG SRC='images/attention.gif'></img>
</td>
<td>
<b>ACHTUNG!</b> Mit dem aktivieren<br>des Wartungsmodus ist das<br>Erreichen der Webseite nicht möglich!
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan='2'>
<br>
<select name='wartungsarbeiten'>";

if ($wartung == "no"){
echo "<option selected>Normal</option>\n<option>Wartungsmodus</option>";
}

elseif ($wartung == "yes"){
echo "<option>Normal</option>\n<option selected>Wartungsmodus</option>";
}

echo "
</select>
</td>
</tr>
<td colspan='2'>
<br><b>Vom:</b><br>
<input type='text' value='$wartung_von_date' name='wartung_von_date' size='10'>
<input type='text' value='$wartung_von_time' name='wartung_von_time' size='5'> Uhr
</td>
</tr>
<tr>
<td colspan='2'>
<br><b>Bis:</b><br>
<input type='text' value='$wartung_bis_date' name='wartung_bis_date' size='10'>
<input type='text' value='$wartung_bis_time' name='wartung_bis_time' size='5'> Uhr
</td>
</tr>
<tr>
<td colspan='2'>
<br>
<input type='submit' class='button' value='Übernehmen'>
</td>
</tr>
</table>
";

?>
 
Hmmm danke schon einmal für deine Mühe!

Habe aber nun das Problem, dass ich nicht weiß, wie ich die Variablen in meine index.php bekomme! Weil in dieser Frage ich die Variable $wartung folgendermaßen ab;

PHP:
<?php 

include("service/admin/wartung.php");

if ($wartung == "yes")

{

header("Location: errordocuments/wartung.php");

}

else

{

?>

Mit include wird mir natürlich nun die ganze Seite angezeigt! Wie hole ich mir nur die Variablen aus einer Datei?
 
Achso und meine Select-Box bleibt ebenfalls leer!

PHP:
<?php
extract($_POST);


if ($action == "update"){ 
$handle = fopen("settings.php","w"); 
fputs ($handle, "$wartung<$wartung_von_date<$wartung_von_time<$wartung_bis_date<$wartung_bis_time");
fclose($handle);
}


$handle = fopen("settings.php", "r");
$import = fgets($handle);
$data = explode("<",$import);

$wartung = "$data[0]";
$wartung_von_date = "$data[1]";
$wartung_von_time = "$data[2]";
$wartung_bis_date = "$data[3]";
$wartung_bis_time = "$data[4]";

fclose($handle);


echo "

<form method='POST' action='wartung.php'>
<input type=\"hidden\" name=\"action\" value=\"update\">
<table border='0'>
<tr>
<td colspan='2' valign='center'>
<table border='0'>
<tr>
<td>
<IMG SRC='images/attention.gif'></img>
</td>
<td>
<b>ACHTUNG!</b> Mit dem aktivieren<br>des Wartungsmodus ist das<br>Erreichen der Webseite nicht möglich!
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan='2'>
<br>
<select name='wartungsarbeiten'>";

if ($wartung == "no"){
echo "<option selected>Normal</option>\n<option>Wartungsmodus</option>";
}

elseif ($wartung == "yes"){
echo "<option>Normal</option>\n<option selected>Wartungsmodus</option>";
}

echo "
</select>
</td>
</tr>
<td colspan='2'>
<br><b>Vom:</b><br>
<input type='text' value='$wartung_von_date' name='wartung_von_date' size='10'>
<input type='text' value='$wartung_von_time' name='wartung_von_time' size='5'> Uhr
</td>
</tr>
<tr>
<td colspan='2'>
<br><b>Bis:</b><br>
<input type='text' value='$wartung_bis_date' name='wartung_bis_date' size='10'>
<input type='text' value='$wartung_bis_time' name='wartung_bis_time' size='5'> Uhr
</td>
</tr>
<tr>
<td colspan='2'>
<br>
<input type='submit' class='button' value='Übernehmen'>
</td>
</tr>
</table>
";

?>
 
Ich bin dein Script nochmal genau durchgegangen und hab noch ein paar kleine Fehler entdeckt, die ich vorher übersehen hatte.

Die settings.php sieht nun so aus:


Wartungsmodus<22.12.2007<24:00<24.12.2007<24:00

Das Script in der config.php sieht nun folgendermaßen aus:

<?php
extract($_POST);

if ($action == "update"){
$handle = fopen("settings.php","w");
fputs ($handle, "$wartung<$wartung_von_date<$wartung_von_time<$wartung_bis_date<$wartung_bis_time");
fclose($handle);
}

$handle = fopen("settings.php", "r");
$import = fgets($handle);
$data = explode("<",$import);

$wartung = "$data[0]";
$wartung_von_date = "$data[1]";
$wartung_von_time = "$data[2]";
$wartung_bis_date = "$data[3]";
$wartung_bis_time = "$data[4]";

fclose($handle);

echo "

<form method='POST' action='config.php'>
<input type=\"hidden\" name=\"action\" value=\"update\">
<table border='0'>
<tr>
<td colspan='2' valign='center'>
<table border='0'>
<tr>
<td>
<IMG SRC='images/attention.gif'></img>
</td>
<td>
<b>ACHTUNG!</b> Mit dem aktivieren<br>des Wartungsmodus ist das<br>Erreichen der Webseite nicht möglich!
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan='2'>
<br>
<select name='wartung'>";

if ($wartung == "Normal"){
echo "<option>Normal</option>\n<option>Wartungsmodus</option>";
}

elseif ($wartung == "Wartungsmodus"){
echo "<option>Wartungsmodus</option>\n<option>Normal</option>";
}

echo "
</select>
</td>
</tr>
<td colspan='2'>
<br><b>Vom:</b><br>
<input type='text' value='$wartung_von_date' name='wartung_von_date' size='10'>
<input type='text' value='$wartung_von_time' name='wartung_von_time' size='5'> Uhr
</td>
</tr>
<tr>
<td colspan='2'>
<br><b>Bis:</b><br>
<input type='text' value='$wartung_bis_date' name='wartung_bis_date' size='10'>
<input type='text' value='$wartung_bis_time' name='wartung_bis_time' size='5'> Uhr
</td>
</tr>
<tr>
<td colspan='2'>
<br>
<input type='submit' class='button' value='Übernehmen'>
</td>
</tr>
</table>
";

?>



Und das Script für die index.php sieht so aus:

<?php

$handle = fopen("settings.php", "r"); //Datei wird zum lesen geöffnet
$import = fgets($handle);
$data = explode("<",$import); //Dieser Array enthält die einzelnen Werte der settings.php

$wartung = "$data[0]";
$wartung_von_date = "$data[1]";
$wartung_von_time = "$data[2]";
$wartung_bis_date = "$data[3]";
$wartung_bis_time = "$data[4]";

fclose($handle);

if ($wartung == "Wartungsmodus"){
header("location: http://deine_domain.de/errordocuments/wartung.php"); //Vollständigen Pfad angeben
}

?>


Ich habe das Script getestet und es funktioniert...

Gruß,
Norbert
 
Ooooh vielen Dank es funktioniert :)

Jetzt noch eine kleine Frage;

Wie kann ich es realisieren, wenn ich auf "auto" in der settings gestellt habe, dass dann:

wartung_von_date
wartung_von_time
wartung_bis_date
wartung_bis_time

berüchsichtigt werden? Also Wenn bei $wartung = "auto" steht, und die aktuelle Zeit zwischen Wartung_von_date, wartung_von_time und wartung_bis_date, wartung_bis_time liegt, soll dann bei "auto" - Betrieb folgendes ausgeführt werden:

PHP:
header("location: http://www.domain.com/errordocuments/wartung.php");

Aber eben nur, wenn bei $wartung = "auto" steht!

Also aktuell sieht es in der index.php folgendermaßen aus:

PHP:
<?php

$handle = fopen("service/admin/settings.php", "r"); 
$import = fgets($handle);
$data = explode("<",$import); 

$wartung = "$data[0]";
$wartung_von_date = "$data[1]";
$wartung_von_time = "$data[2]";
$wartung_bis_date = "$data[3]";
$wartung_bis_time = "$data[4]";

fclose($handle);

if ($wartung == "yes")
{
header("location: http://www.secret-deejays.com/errordocuments/wartung.php");
}

?>

Vielleicht etwa so in der Richtung;

PHP:
elseif ($wartung == "auto") && 

{
header("location: http://www.secret-deejays.com/errordocuments/wartung.php");
}

Danke! Tolles Forum! :)
 
Zuletzt bearbeitet:
Also in dem bisherigen Script kommt ja der Wert "Auto" in der Variable "$wartung" gar nicht vor. Den müsste man natürlich dann zusätzlich in die select-box des Formulars einfügen.

Befor ich mir aber die Arbeit mache das Script zu erweitern, möchte ich dich fragen wozu das mit dem "Auto" denn nötig ist...?

Während der Wartungsarbeiten hast du ja sowieso auf "Wartungsmodus" umgestellt
und wenn du mit den Wartungsarbeiten fertig bist, stellst du ja wieder "Normal" ein.

also wozu noch ein "Auto" Modus...?

Gruß,
Norbert
 
Also in dem bisherigen Script kommt ja der Wert "Auto" in der Variable "$wartung" gar nicht vor. Den müsste man natürlich dann zusätzlich in die select-box des Formulars einfügen.

Befor ich mir aber die Arbeit mache das Script zu erweitern, möchte ich dich fragen wozu das mit dem "Auto" denn nötig ist...?

Während der Wartungsarbeiten hast du ja sowieso auf "Wartungsmodus" umgestellt
und wenn du mit den Wartungsarbeiten fertig bist, stellst du ja wieder "Normal" ein.

also wozu noch ein "Auto" Modus...?

Gruß,
Norbert
 
Also "auto" habe ich bereits definiert! Das t auch!

Ich möchte gern Automatikmodus haben, denn die möchte ich später noch erweitern! Z.B. die Besucher informieren, wann die nächsten Wartungsarbeiten stattfinden und dann automatisch umschalten!
 
Ich weiß jetzt nicht wozu du diese Auto-Funktion brauchst, aber ich halte sie für völlig überflüssig. Die kannst du dir sparen...

Wenn du mit den Wartungsarbeiten beginnst, dann schaltest du einfach manuell um. Das halte ich für eine wesentlich bessere Methode.

Gruß,
Norbert
 
Zuletzt bearbeitet:
Also! Ich möchte zu bestimmten Zeiten Wartungsarbeiten ausführen und dazu möchte ich gern eine Auto-Funktion, um nicht jedesmal auf "yes" stellen zu müssen!

Ich habe einige Scripte, die zu bestimmten Zeiten z.B. die Datenbank aufräumen!

Verstehst du mich?

Ist das viel Aufwand soetwas zu realisieren? :confused:
 
Zurück