sirblack1986
Cadet 2nd Year
- Registriert
- Juni 2008
- Beiträge
- 16
Hallo,
ich habe eine etwas komplizierte Webseite am laufen. Leider besitzt diese keinen SQL Server. Soll jedoch trotzdem dynamisch sein.
Die Daten liegen deshalb in txt Dateien.
Jede Zeile entspricht einem Eintrag.
Ich habe bereits ein Formular über das ich neue Zeilen hinzufügen kann.
Jetzt möchte ich ein weiteres haben in dem ich die vorhandenen Zeilen bearbeiten kann.
Dazu habe ich alle Zeilen in ein großes Formular einlesen lassen und als Value anzeigen lassen.
Dann sollen die Daten bearbeitet werden und neu danach neu geschrieben werden.
Jetzt funktioniert das Bearbeiten ohne Probleme. Jedoch nicht das Schreiben.
Ich habe zum schreiben eine Zweite Datei die dann alles erledigen soll.
Das sieht bis jetzt ungefähr so aus.
Die Daten werden scheints übertragen aber nicht richtig geschrieben.
Mein Problem scheinen die Arrays aus dem Forumlaur zu sein.
Ich habe gelesen das PHP die Indizes selber setzt, aber auch ein setzen der Indizes schon im Formular brachte nicht den gewünschten erfolg. Habt ihr vielleicht ein paar Ideen was ich anders machen könnte.
Das Übertragen habe ich mit print_r($_REQUEST) getestet. Die daten sind alle da.
mfg
ich habe eine etwas komplizierte Webseite am laufen. Leider besitzt diese keinen SQL Server. Soll jedoch trotzdem dynamisch sein.
Die Daten liegen deshalb in txt Dateien.
Jede Zeile entspricht einem Eintrag.
Ich habe bereits ein Formular über das ich neue Zeilen hinzufügen kann.
Jetzt möchte ich ein weiteres haben in dem ich die vorhandenen Zeilen bearbeiten kann.
Dazu habe ich alle Zeilen in ein großes Formular einlesen lassen und als Value anzeigen lassen.
Code:
for($i=1;!feof($fp);$i++)
{
$zeile = fgets($fp, 2048);
$eintrag = explode("|", trim($zeile));
echo "Eintrag - $i <br>
<table align=\"center\">
<tr><td>Title:</td><td><input name=\"title[]\" type=\"text\" class=\"input\" size=\"40\" maxlenght=\"40\" value=\"$eintrag[4]\"></td></tr>
<tr><td>Subtitle:</td><td><input name=\"stitle[]\" type=\"text\" class=\"input\" size=\"40\" maxlenght=\"40\" value=\"$eintrag[5]\"></td></tr>
<tr><td>Datum (raus):</td><td><input name=\"datum[]\" type=\"text\" class=\"input\" size=\"40\" maxlenght=\"40\" value=\"$eintrag[6]\"></td></tr>
<tr><td>Kopf:</td><td><input name=\"kopf[]\" type=\"text\" class=\"input\" size=\"40\" maxlenght=\"40\" value=\"$eintrag[2]\"></td></tr>
<tr><td>Kommentar:</td><td><textarea name=\"text[]\" cols=\"30\" rows=\"8\" wrap=\"physical\">$eintrag[3]</textarea></td></tr>
</table>";
}
$i--;
echo" <table>
<tr><td>Benutzer:</td><td><input type=\"text\" name=\"user\"></td></tr>
<tr><td>Passwort:</td><td><input type=\"password\" name=\"pass\"></td></tr>
<tr><td></td><td><input name=\"hidden\" type=\"hidden\" value=\"$i\"></td></tr>
<tr><td><input type=\"submit\" value=\"Absenden\"></td></tr>
</table>
</form>";
Jetzt funktioniert das Bearbeiten ohne Probleme. Jedoch nicht das Schreiben.
Ich habe zum schreiben eine Zweite Datei die dann alles erledigen soll.
Das sieht bis jetzt ungefähr so aus.
Code:
<?
$user = isset($_REQUEST['user']) ? trim($_REQUEST['user']) : "";
$pass = isset($_REQUEST['pass']) ? trim($_REQUEST['pass']) : "";
$hidden = isset($_REQUEST['hidden']) ? trim($_REQUEST['hidden']) : "";
function date2time ($date)
{
$date_array = explode(".",$date);
return mktime(0,0,0,(int)$date_array[1],(int)$date_array[0],(int)$date_array[2]);
}
$fp = fopen("events1.txt","a+");
$i=$hidden;
while($i>0)
{
echo"$i";
echo"$title[$i]";
if (($user == "admin") and ($pass == ""))
{
$title[$i] = isset($_REQUEST['title[$i]']) ? trim($_REQUEST['title[$i]']) : "";
$stitle[$i] = isset($_REQUEST['stitle[$i]']) ? trim($_REQUEST['stitle[$i]']) : "";
$datum[$i] = isset($_REQUEST['datum[$i]']) ? trim($_REQUEST['datum[$i]']) : "";
$kopf[$i] = isset($_REQUEST['kopf[$i]']) ? trim($_REQUEST['kopf[$i]']) : "";
$text[$i] = isset($_REQUEST['text[$i]']) ? trim($_REQUEST['text[$i]']) : "";
$time = date("H:i");
$datum1=date2time($datum[$i]);
$nl = chr(13) . chr(10);
$eintrag = preg_replace("/\r\n|\r|\n/", "<br>", $text[$i]);
$eintrag = ereg_replace("ä","ä",$eintrag);
$eintrag = ereg_replace("Ä","Ä",$eintrag);
$eintrag = ereg_replace("ö","ö",$eintrag);
$eintrag = ereg_replace("Ö","Ö",$eintrag);
$eintrag = ereg_replace("ü","ü",$eintrag);
$eintrag = ereg_replace("Ü","Ü",$eintrag);
$eintrag = ereg_replace("ß","ß",$eintrag);
$ein = "$nl$datum1|$time[$i]|$kopf[$i]|$eintrag|$title[$i]|$stitle[$i]|$datum[$i]";
$schreib = fwrite($fp,$ein);
echo"Fertig ";
}
else
{
echo "<b>Falsche Zugangsdaten.</b>";
}
$i--;
}
fclose($fp);
Mein Problem scheinen die Arrays aus dem Forumlaur zu sein.
Ich habe gelesen das PHP die Indizes selber setzt, aber auch ein setzen der Indizes schon im Formular brachte nicht den gewünschten erfolg. Habt ihr vielleicht ein paar Ideen was ich anders machen könnte.
Das Übertragen habe ich mit print_r($_REQUEST) getestet. Die daten sind alle da.
mfg