Formular/Löschbutton

PHPStarter

Grünschnabel
Hi erstmal an alle,

ich habe mit HTML ein Formular gemacht. Dieses schicke ich ab un das ganze wird mit PHP wiederrum in einer anderen HTML Datei gespeichert.

2 Fragen :

1. Wie bekomme ich es hin das er mir die neusten eintragungen als oberstes in die HTML Datei schreibt.

2. Ich würde das ganze noch gerne bei jeder eingetragen Nachricht mit einem Löschbutton versehen. Das heißt sobald man die Nachricht gelesen hat man sie auch wieder löschen kann. Es geht mir aber darum es bei jeder Nachricht einzeln zu machen.


Vielen Dank im Vorraus
 
Nutzt du eine Datenbank? MySQL vielleicht? Oder wie speicherst du die Daten ab, die du in deiner zweiten Seite aufrufen möchtest? Datenbank, txt - File,....? A bisserl Code gerne erwünscht!
 
Das ganze wird in einer html Datei abgespeichert. Hier die Codes :

Das Formular:

<html>
<head>
<title>Massage ins Studio</title>
</head>
<body bgcolor="#FF8A00" text="#FFFFFF">
<body>
<form action="feedback.php" method="post">
<font size=2>Dein Name : </font>
<input type="text" name="name"> <p>
<font size=2>Deine E-Mail : </font>
<input type="text" name="email"> <p>
<font size=2>Dein Wohnort : </font>
<input type="text" name="ort"> <p>
<font size=2>Dein Alter : </font>
<input type="text" name="alter"> <p>
<font size=2>Deine Telefonnummer : </font>
<input type="text" name="tele"> <p>
<font size=2>Deine Grüße und Wünsche : </font> <p>
<textarea name="comment" rows=05 cols=30></textarea> <p>
<input type="submit" value="Senden">
</form>
</body>
</html>

Das ist die PHP Datei :

<html>
<head>
<title>Dein Wunsch auf RMNcool</title>
</head>
<body bgcolor="#003366" text="#FFFFFF">
<body>
<img src=Banner.gif> <p>

<font size=4>Du hast folgende Angaben gemacht</font>
<p>
<font size=2>
<b>Dein Name</b> :
<?php
echo $_REQUEST['name'];
?>
<p>
<b>Deine E-Mail</b> :
<?php
echo $_REQUEST['email'];
?>
<p>
<b>Dein Wohnort</b> :
<?php
echo $_REQUEST['ort'];
?>
<p>
<b>Dein Alter</b> :
<?php
echo $_REQUEST['alter'];
?>
<p>
<b>Deine Telefonnummer</b> :
<?php
echo $_REQUEST['artist'];
?>
<p>
<b>Deine Grüße und Wünsche</b> :
<?php
echo $_REQUEST['comment'];
?>
</font>
<p>
<font size=4>Wir bedanken uns für deinen Wunsch und werden ihn sobal wie möglich spielen. Uhgefähre Zeit erfährst du per Mail (Wenn du sie angegeben hast)</font>

</body>
</html>

<?php
$dateiname = 'wunsch_auswertung.html';
$text="<br /> <font size=2> <b> ".$_REQUEST['name']." </b> aus <b> ".$_REQUEST['ort']." </b> hat sich folgendes gewuenscht : <br /><br /> <b>Interpret</b> ".$_REQUEST['artist']." <br /><br /> <b>Titel</b> ".$_REQUEST['titel']." <br /><br /> <b> ".$_REQUEST['name']." </b> ist <b> ".$_REQUEST['alter']." </b> Jahre alt <br /><br /> Die E- Mail Adresse Lautet ".$_REQUEST['email']." <br /><br /> <b>Grüße</b> : <br /> ".$_REQUEST['comment']." <br /><br /> </font> <hr width=100% size=1> <br /><br />";
$file = fopen ($dateiname, "a");
if (is_writable($dateiname)) {
fwrite ($file, $text);
}
fclose($file);
?>

SO das sind mal meine Codes
 
Wozu wird das denn benötigt? Hört sich sehr kompliziert an. Warum nimmst du keine txt Dateien oder gar eine Datenbank?

Einfach in eine txt Datei schreiben, diese dann in ein Array auslesen und das umdrehen.
Anschließend einfach in ner schleife ausgeben.

Grüße Sven
 
Da ich in PHP nich so fit bin wäre super wenn du mir en Beispiel geben würdest mit Code...


Das ganze soll für ein Message ins Studio Script sein.

Dh user füllen en Formular aus und klicken auf senden und ich bekomme das auf einer speziellen Website angezeigt auf der das dann so aussehen soll


xyz schrieb am xyz umd xyz Uhr :

blalblalbvla

xyz ist xyz Jahre alt und kommt aus xyz.


Bei der gelegenheit würde mich noch interessiern wie ich das mit der Zeitanzeige hinbekommen soll. Sowas wie en Timestamp wann die Nachricht abgeschickt wurde wegen "schrieb am xyz um xyz".

Und wenn man die Nachricht dann gelesen hat und übers Radio dann diese Person gegrüßt hat oder deren wunsch gespielt hat man das ganze wieder löschen kann.

LG
 
Zeit:
Mit
PHP:
<?
$ts = time():
$datum = date("m.d.Y" , $ts);
$time = date("H:i:s", $ts);
?>

Bekommst du die aktuelle Zeit in 2 Variablen, die ja selbsterklärend sind
 
Hi,
so nun mal ein kleines Script zum schreiben in eine Textdatei:
PHP:
<?
  // Ermitteln der Zeit (nach Script von GalaxyWarrior)
  $ts = time():
  $datum = date("m.d.Y" , $ts);
  $time = date("H:i:s", $ts);
  
  // Schreiben der Daten in eine Textdatei
  $filename = "textdatei.txt";
 
  $text = $datum.";".$time.";"
  $text.= $_REQUEST['name'].";".$_REQUEST['comment'],...........;
  /* Hier kommen alle deine Werte hinein. z.B. getrennt mit ; */
  $text.= "\n";

  $fp = fopen($filename,"a");
  $fw = fputs($fp,$text);
  $fc = fclose($fp);
?>
...
...
Ausgabe der Bestätigung wie du Sie auch bisher schon gemacht hast. 
...
...
Die Abfrage würde ich einer anderen Datei machen:
PHP:
<?
	// Zweite Datei: ausgabe.php
	$filename = "textdatei.txt";
	$zeilen = file ($filename);

	// Durchgehen des Arrays und Teilen
	foreach ($zeilen as $zeilen_num => $zeile) {
		$ausgabe_array = explode(";",$zeile);
		echo "<b>Eintrag ".$zeilen_num.":</b><br>";
		echo "Eingetragen am ".$ausgabe_array[0]." um ".$ausgabe_array[1].".<br>";
		/*
		...
		Hier kommen deine weiteren Ausgaben hin
		...
		*/
		echo "<hr><br><br>"; // Ende einer Zeile in der txt Datei
	}
?>
In die Datei ausgabe.php kannst du dann all deine Formatierungen einbauen. Desweiteren kannst du dort einfach ein Link namens Löschen hinbauen. Diesem gibst du einfach die aktuelle Zeilennummer ($zeilen_num) mit. Wenn du also eine Zeile gewählt hast kannst du die selbe Schleife nocheinmal durchlaufen lassen. Nur das diesmal nicht ausgegeben wird, sondern der Dateiinhalt neu geschrieben. Bis auf die nicht gewollte Zeile.

Hoffe ich konnte dir weiterhelfen.

Grüße
 
hi ich habe jetzt versucht die PHP Datei auszuführen...

irgend etwas scheint nicht zu stimmen. ich habe es hjetzt so umgeschrieben:

PHP:
<? 
  // Ermitteln der Zeit (nach Script von GalaxyWarrior) 
  $ts = time(): 
  $datum = date("m.d.Y" , $ts); 
  $time = date("H:i:s", $ts); 
   
  // Schreiben der Daten in eine Textdatei 
  $filename = "wunsch.txt"; 

  $text = $datum.";".$time.";" 
  $text.= $_REQUEST['name'].";".$_REQUEST['email'].";".$_REQUEST['ort'].";".$_REQUEST['alter'].";".$_REQUEST['tele'].";".$_REQUEST['comment'].";" 
  $text.= "\n"; 

  $fp = fopen($filename,"a"); 
  $fw = fputs($fp,$text); 
  $fc = fclose($fp); 
?>

es funktioniert leider nich...


und dann noch eine Frage. Bei der Ausgabe: wie muss ich da die Angaben formatiern.

PHP:
<?php 
    // Zweite Datei: ausgabe.php 
    $filename = "wunsch.txt"; 
    $zeilen = file ($filename); 

    // Durchgehen des Arrays und Teilen 
    foreach ($zeilen as $zeilen_num => $zeile) { 
        $ausgabe_array = explode(";",$zeile); 
        echo "<b>Eintrag ".$zeilen_num.":</b><br>"; 
        echo "Eingetragen am ".$ausgabe_array[0]." um ".$ausgabe_array[1].".<br>"; 
        echo "<hr><br><br>"; // Ende einer Zeile in der txt Datei 
    } 
?>

echo "Hat geschrieben ".$comment."<br>; ?

Liebe Grüße
 
hallo

geht das net mit rewind()

einfach nach schreiben des eintrags rewind setzn und er schreibt die Datei wieder von oben
und die alten unten.achja datei mit "a" öffnen.

sorry wenn ich blödsin gesagt habe
 
Hallo Zusammen,

Die Funktion rewind() hatte ich auch schon einmal im Auge, aber:
Haben Sie eine Datei im Append-Modus ("a") geöffnet, werden unabhängig von der Dateiposition alle zu schreibenden Daten angehängt.
Quelle:http://de2.php.net/manual/de/function.rewind.php
Zu dem Fehler
Im umgeschriebenen Script -> du hast vergessen die Variablen $text in jeder Zeile mit einem ";" abzuschließen. Ich in meinem Beispiel allerdings auch. Sorry!

Zu der Formatierung:
Das Script schreibt die Daten in ein Array. Du hast also so wie du die Daten in der Textdatei hast auch alle im Array vorliegen. Diese kannst du nun anhand Ihrer Position bestimmen. (Achtung: Bei 0 wird angefangen zu zählen ;) )
PHP:
$ausgabe_array[0] // enthällt Datum
$ausgabe_array[1] // enthällt Zeit
$ausgabe_array[2] // enthällt Name
$ausgabe_array[3] // enthällt Email
$ausgabe_array[4] // enthällt Ort
...

// Die kannst du natürlich so ausgeben
echo "Hat geschrieben ".$ausgabe_array[n]."<br>";
Grüße Sven
 
Zurück