PHP, eintrag in textfile per formular
freak
- php
Tag,
Ich habe ein script geschrieben, das in einer tabelle daten aus einem textfile anzeigt
textfile: zbsp:
link-pfad#link-text#datum#status
test1.doc#testdokument1#20-03-2003#done
test1.doc#testdokument1#20-03-2003#done
test1.doc#testdokument1#20-03-2003#done
script:
[PHP]
<HTML>
<HEAD>
<link rel="STYLESHEET" href="http://intranet.sbb.ch/apps/stylesheets/standard.css"
type="text/css">
<TITLE> Change Request Anträge</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#003399"><font color="#FFFFFF"><b> Change Request Anträge</b></font></td>
</tr>
</table>
<table border="0" width="500">
<TABLE width="500" border="0" cellpadding="0" cellspacing="0">
<TR>
<TD width="40%"><b>Antrag</b></TD>
<TD width="40%"><b>Datum</b></TD>
<TD width="20%"><b>Status</b></TD>
</TR>
<?php
$datei = fopen("liste.txt", "r") ;
while (!feof($datei)) {
$zeile = fgets($datei, 512) ;
$eintrag = explode("#", trim($zeile)) ;
?>
<TR>
<TD><b><A href="<?php echo $eintrag[0]; ?>">
<?php echo ($eintrag[1]); ?></A></b></TD>
<TD><b><?php echo $eintrag[2]; ?></b></TD>
<TD><b><?php echo $eintrag[3]; ?></b></TD>
</TR>
<?php
}
fclose($datei) ;?>
</TABLE>
</BODY>
</HTML>
[/PHP]
jetzt sollte ich ein formular haben, mit dem man neue einträge in das textfile machen kann, also den pfad eingeben, den link, das datum, und den status per dropdown auswählen kann, allerdings habe ich ab hier keine ahnung mehr wie ich das machen soll.
Hi,
Na du könntest folgendes machen:
$datei = fopen("liste.txt", "a");
fwrite($datei,"$pfad#$text#$datum#$status");
fclose($datei);
Das macht Dir die Datei auf und schreibt die Zeile ans ende der Datei.
mfg
PHP_Dude
ich schnalls leider net ganz, wie ich das dann mitnem formular verknüpfen muss??
Hi,
Na du könntest folgendes machen:
$datei = fopen("liste.txt", "a");
fwrite($datei,"$pfad#$text#$datum#$status");
fclose($datei);
wenn ich das mache kommt die meldung undefined variable
und $pfad@$test etc hab ich je wirklich nirgends definiert??
Hier mal mit Formular:
<?php
if($_POST['submit']) {
$datei = fopen("liste.txt", "a");
fwrite($datei,$_POST['link'].'#'.$_POST['pfad'].'#'.$_POST['datum'].'#'.$_POST['status']);
fclose($datei);
}
?>
<html>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
Link:<input type="text" name="link"><br>
Pfad:<input type="text" name="pfad"><br>
Datum:<input type="text" name="datum"><br>
Status:<select name="status">
<option>done</option>
<option>sonstwas</option>
</select><br>
<input type="submit" name="submit" value="Eintragen">
</form>
</body>
</html>
hi
alles funktioniert, danke
jetzt hab ich nur nopch ein problem...
wen der status "done" angewählt is, schreibts im textfile immer doneonee
merkwürdig oder?
haste ne erklkärung?
Ersetz diese Zeile
fwrite($datei,$_POST['link'].'#'.$_POST['pfad'].'#'.$_POST['datum'].'#'.$_POST['status']);
mal durch diese
fwrite($datei,$_POST['link'].'#'.$_POST['pfad'].'#'.$_POST['datum'].'#'.$_POST['status']."\n");
mfg
PHP_Dude
jetzt siehts so aus
testlink2#testpfad2#23-03-2003#done
nee
es gitb einfach n zeilenumbruch u nd dan kommt das nee
aber WOHER kommt diese nee???
jetzt siehts so aus
testlink2#testpfad2#23-03-2003#done
nee
es gitb einfach n zeilenumbruch u nd dan kommt das neeaber WOHER kommt diese nee???
Keine Ahnung, bei mir passiert das nicht.
Poste doch Deinen Code nochmal hier rein.
eintragen.php (dein file)
_______________
<?php
if($_POST['submit']) {
$datei = fopen("liste.txt", "r+");
fwrite($datei,$_POST['link'].'#'.$_POST['pfad'].'#'.$_POST['datum'].'#'.$_POST['status']."\n");
fclose($datei);
}
?>
<html>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
Link:<input type="text" name="link"><br>
Pfad:<input type="text" name="pfad"><br>
Datum:<input type="text" name="datum"><br>
Status:<select name="status">
<option>done</option>
<option>canceled</option>
</select><br>
<input type="submit" name="submit" value="Eintragen">
</form>
</body>
</html>
anzeige.php
___________
<HTML>
<HEAD>
<link rel="STYLESHEET" href="http://intranet.sbb.ch/apps/stylesheets/standard.css"
type="text/css">
<TITLE> Change Request Anträge</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#003399"><font color="#FFFFFF"><b> Change Request Anträge</b></font></td>
</tr>
</table>
<table border="0" width="500">
<TABLE width="500" border="0" cellpadding="0" cellspacing="0">
<TR>
<TD width="40%"><b>Antrag</b></TD>
<TD width="40%"><b>Datum</b></TD>
<TD width="20%"><b>Status</b></TD>
</TR>
<?php
$datei = fopen("liste.txt", "r") ;
while (!feof($datei)) {
$zeile = fgets($datei, 512) ;
$eintrag = explode("#", trim($zeile)) ;
?>
<TR>
<TD><b><A href="<?php echo $eintrag[0]; ?>">
<?php echo ($eintrag[1]); ?></A></b></TD>
<TD><b><?php echo $eintrag[2]; ?></b></TD>
<TD><b><?php echo $eintrag[3]; ?></b></TD>
</TR>
<?php
}
fclose($datei) ;?>
</TABLE>
</BODY>
</HTML>
Das passiert weil du zum öffnen der Datei "r+" verwendest.
wenn du "a" nimmst dann funktoniert alles bestens.
Wenn du die Einträge sortiert nach dem neusten Eintrag haben willst, dann solltest du folgenes ausprobieren:
<HTML>
<HEAD>
<link rel="STYLESHEET" href="http://intranet.sbb.ch/apps/stylesheets/standard.css" type="text/css">
<TITLE> Change Request Anträge</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#003399"><font color="#FFFFFF"><b> Change Request Anträge</b></font></td>
</tr>
</table>
<table border="0" width="500">
<TABLE width="500" border="0" cellpadding="0" cellspacing="0">
<TR>
<TD width="40%"><b>Antrag</b></TD>
<TD width="40%"><b>Datum</b></TD>
<TD width="20%"><b>Status</b></TD>
</TR>
<?php
$datei=array_reverse(file('liste.txt'));
foreach($datei as $line) {
$eintrag=explode("#", trim($line));
echo'
<TR>
<TD><b><A href="'.$eintrag[0].'">'.$eintrag[1].'</A></b></TD>
<TD><b>'.$eintrag[2].'</b></TD>
<TD><b>'.$eintrag[3].'</b></TD>
</TR>';
}
?>
</TABLE>
</BODY>
</HTML>
DAAAAAAAAAAAAANKE jeztt funktioniert alles
:-) *freu*
schönen tag noch :-)
Das passiert weil du zum öffnen der Datei "r+" verwendest.
wenn du "a" nimmst dann funktoniert alles bestens
ok, ich habs selber jetzt noch angepast und \n vor dem ersten eintrag gehängt, damits nich ne leere zeile macht und ne fehlermeldung generiert.
jetzt is fas alles gut bis auf 1 sache. wie kann ich es jetzt machen das die neuesten posts zuoberst im textfile sind??