Brauche kleine Hilfestellung

Lektor21

Erfahrenes Mitglied
Hallo!

Also ich habe ein Formular, mit dem ich gern die Variablen in einer settings.php ändern möchte!

PHP:
<?php
include("settings.php");

echo "

<form method='POST' action='settings.php'>

<b>WARTUNGSARBEITEN</b>

<br><br>

<select name='wartungsarbeiten'>
<option>Wartungsarbeiten</option>
<option>keine</option> 
</select>

<br><br><b>Von:</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
<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

<br><br>

<input type='submit' class='button' value='Übernehmen'>";

?>

Die settings.php sieht so aus;

PHP:
<?

$wartung = "yes";
$wartung_von_date = "22.12.2007";
$wartung_von_time = "24:00";
$wartung_bis_date = "24.12.2007";
$wartung_bis_time = "24:00";

?>

Was muss ich noch ändern, damit $wartung = "yes" or "no" aus der settings.php in dem Formular bei
PHP:
<select name='wartungsarbeiten'>
<option>Wartungsarbeiten</option>
<option>keine</option> 
</select>
angezeigt wird?

Und vor allem was muss ich machen, um diese Daten auch zu editieren?
 
heey,
für solche sachen würde ich allgemein eine Datenbank empfehlen. Das macht meistes wenieger probleme.
Ich habe ma kurz ein kleines script geschrieben das dein Problem lösen sollte.
Ich hatte noch keine Zeit es zu testen aber eigentlich sollte das so funktionieren
PHP:
<?
$datei=fopen("settings.php",w);
$text=$datei;
if($_REQUEST['wartungsarbeiten'] == "keine")
{
$text =strreplace("wartungsarbeiten", "keine", $text);
}
else
{
$text =strreplace("keine", "wartungsarbeiten", $text);
}

fwrite($datei,$text);
fclose($datei);
?>
 
Zuletzt bearbeitet:
Ne das habt ihr falsch verstanden! Ich möchte gern dass das Selectfeld "Wartungsarbeiten" auswählt, wenn in der Datei bei $wartung = "yes" steht und "Keine" auswählt wenn in der Datei bei $wartung = "no" steht!

PHP:
<select name='wartungsarbeiten'>
<option>Wartungsarbeiten</option>
<option>keine</option> 
</select>

PS: An dem Code ist was falsch!

PHP:
$datei=fopen("settings.php",w);
$text=$datei;
if($_REQUEST['wartungsarbeiten'] == "Keine")
{
$text =strreplace("Wartungsarbeiten", "Keine", $text);
}
else
{
$text =strreplace("Keine", "Wartungsarbeiten", $text);
}

fwrite($datei,$text);
fclose($datei);

Eer meckert das hier an:

PHP:
$text =strreplace("Keine", "Wartungsarbeiten", $text);
 
Ich würde folgendes vorschlagen:

Erstens würde ich nicht das ganze Formular in den PHP Code packen, sondern nur die Teile, die auch wirklich vom PHP-Script gesteuert werden sollen. Den Rest würde ich ganz normal als HTML schreiben.

Zweitens, statt:

<select name='wartungsarbeiten'>
<option>Wartungsarbeiten</option>
<option>keine</option>
</select>

würde ich dann schreiben:

<select name='wartungsarbeiten'>
<?php
if ($wartung == "yes"){
echo "<option selected>Wartungsarbeiten</option>\n<option>keine</option>"
}
elseif ($wartung == "no"){
echo "<option>Wartungsarbeiten</option>\n<option selected>keine</option>"
}

?>
</select>


Ich hoffe, dir damit geholfen zu haben
Gruß, Norbert
 
Ich moechte darauf hinweisen, dass die Arbeit mit $_REQUEST moeglichst vermieden werden sollte.
Man sollte wissen ob Daten per POST oder GET uebertragen werden und entsprechend auch mit $_POST oder $_GET arbeiten.
Fuer den auessert seltenen Fall dass Daten wirklich mal ueber beide Wege kommen koennten kann man mit $_REQUEST arbeiten, ansonsten sollte es aber, wie gesagt, vermieden werden. Mir ist bislang ein einziger Fall begegnet bei dem ich $_REQUEST brauchte, und dies war ein Proxy-Script.
 
Sooo dankeschön schoneinmal! Es t!

Sieht nun so aus:

PHP:
<?php

include("settings.php");

echo "

<form method='POST' action='settings.php'>
<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>
";

?>


Wie kann ich nun noch realisieren, dass wenn ich die Daten in den Formularfeldern ändere, dass diese per Submit - Button geändert werden?
 
Sobald du den Submit-Button anklickst, werden die geänderten Daten auch übermittelt.
Die Frage ist, wo sollen die geänderten Variablen hin...?
Das PHP-Script wertet die übergebenen Variablen ja nur aus und gibt dann,
je nachdem wie es programmiert ist eine Seite aus, oder schreibt Daten in eine Datenbank(oder externe Datei).

Auf keinen fall speichert das PHP-Script irgendwelche übergebenen Variablen in sich selbst.

Vielleicht teils du uns noch mit, ob dir eine Datenbank zur verfügung steht.

Gruß,
Norbert
 
Ja, aber dieses Script ist Bestandteil einer Adminoberfläche!

Also die Variablen sind ja in der settings.php folgendermaßen formatiert;

PHP:
<?

$wartung = "yes";
$wartung_von_date = "22.12.2007";
$wartung_von_time = "24:00";
$wartung_bis_date = "24.12.2007";
$wartung_bis_time = "24:00";

?>

Hmmm... Funktioniert das nicht? Ich habe das aber schon oft gesehen, dass die Variablen in einer z.B. config.php per Formular geändert werden können!!
 
Das ist schon richtig, daß die Variablen in einer config.php per Formular geändert werden können.
Die Variablen sind aber selbst nicht in dieser Datei die das Formular enthält, sondern in einer externen Datei oder einer Datenbank gespeichert.
Aus dieser externen Datei (o. Datenbank) werden dann die Variablen ausgelesen und ausgewertet.

Wenn man dann in dem Formular der config.php die Daten ändert,
kann man sie natürlich anschließend von einem php-Script in die externe Datei schreiben lassen
(bzw. den Inhalt der externen Datei mit den neuen Daten überschreiben).

Gruß,
Norbert
 
Zurück