Kontaktformular in txt

  • Themenstarter Themenstarter koronyl
  • Beginndatum Beginndatum
K

koronyl

Hallo Leute ich bins mal wieder :)

Ich habe ein Kontaktformular script etwas umgeschrieben
ich habe zb. die empty Anweisung geschrieben...
Wie bekomme ich es hin das wenn ein Feld leer ist keine NAchricht gesendet wird?

Meine zweite Frage wäre ich habe einen Adminbereich von dem ich die txt auslesen kann....
Geht das das man auf einen löschen Button klickt und sich dann zB. 3 Zeilen vom Anfang der txt löscht und die ganzen anderen dann 3 nach oben schiebt?
Oder besser noch es ist egal welche Nachricht man löscht alle Nachrichten dadrunter schieben sich nach oben und neben jeder Nachricht ist ein Button


PHP:
<?php


if ($_POST) {

 $text = "Name: " . $_POST["Name"] . "\n<br>" .
  "Email: " . $_POST["Email"] . "\n<br>" .
  "Nachricht: " . $_POST["Nachricht"] . "\n\n<br><br>";

  if (empty($Name)) {
    echo 'Du hast deinen Namen nicht angegeben!<br>';
}
  if (empty($Email)) {
    echo 'Du hast deine Email nicht angegeben!<br>';
}
  if (empty($Nachricht)) {
    echo 'Du hast keine Nachricht geschrieben!<br>';
}



 $file = "Kontakt.txt";
$fp=fopen($file,'a+');
 fPuts($fp, $text);
 fclose ($fp);
 echo "<h4>Ihre Nachricht wurde gesendet!</h4>";
}

foreach (file("Kontakt.txt") as $zeile) {
 if (strstr($zeile, " = ")) {
  list($variable, $value) = explode(" = ", $zeile);
  $$variable = chop($value);
 }
}


echo <<<EOT
<form action="$_SERVER[PHP_SELF]" method="post">
<table>

  <tr><td>Name:</td><td><input type="text" name="Name" value=""></td></tr>

  <tr><td>Email:</td><td><input type="text" name="Email" value=""></td></tr>

  <tr><td>Nachricht:</td><td><textarea name="Nachricht" rows="6"></textarea></td></tr>
  <tr>

  <td>
    <br>
<br>



  <input type="submit" value="Nachricht senden"></td>           </tr>
 </table>   <br>
<br>
  <br>
Hinweis: Schreiben sie auch in ihre Nachricht ob sie eine Antwort wünschen!
</form>
EOT;
?>

Danke im Vor raus :-)
 
1) Setz dir doch einfach eine Fehlervariable wenn ein Fehler aufgetreten ist und überspringe in diesem Fall die Schreibroutine. Oder noch besser: Speicher dir die aufgetretenen Fehler in eine Variable, wenn diese gesetzt ist überspringst du die Schreibroutine und du kannst den Fehlertext an jeder beliebigen Stelle ausgeben.

2) Kenne keine Funktionen die sowas ermöglicht, ich würde die Datei in ein Array übernehmen und dann mit dem Array arbeiten. Das Array dann wieder in die Datei schreiben (Datei so öffnen das sie geleert wird) und damit sollten die Probleme erledigt sein. Wenn möglich würde ich aber empfehlen auf eine Datenbank zurück zu greifen.
 
1) Setz dir doch einfach eine Fehlervariable wenn ein Fehler aufgetreten ist und überspringe in diesem Fall die Schreibroutine. Oder noch besser: Speicher dir die aufgetretenen Fehler in eine Variable, wenn diese gesetzt ist überspringst du die Schreibroutine und du kannst den Fehlertext an jeder beliebigen Stelle ausgeben.

Versteh ich nicht kannst du mal ein Beispiel geben?
 
Muss ich das jetzt echt kommentieren?
Vllt. solltest du dir erst mal ein paar Tutorials raus suchen die die Basics der Webprogrammierung in PHP abdecken ....

Ich meinte damit entweder
PHP:
var $fehler = false;

  if (empty($Name)) {
    echo 'Du hast deinen Namen nicht angegeben!<br>';
   $fehler = true;
}

if (!$fehler)
{
 $file = "Kontakt.txt";
$fp=fopen($file,'a+');
 fPuts($fp, $text);
 fclose ($fp);
 echo "<h4>Ihre Nachricht wurde gesendet!</h4>";
}

oder

PHP:
var $fehlertext = '';
  if (empty($Name)) {
    $fehlertext 'Du hast deinen Namen nicht angegeben!<br>';
}

if (empty($fehlertext))
{
 $file = "Kontakt.txt";
$fp=fopen($file,'a+');
 fPuts($fp, $text);
 fclose ($fp);
 echo "<h4>Ihre Nachricht wurde gesendet!</h4>";
}

...
...
...

echo $fehlertext;
 
Kein Problem, aber wie gesagt, bei dieser Art von Fragen solltest du wirklich mal ein paar Tutorials machen, zumindest wenn du es ernster meinst mit Webprogrammierung und es nicht nur um dieses eine Formular ging (mit ernster beziehe ich auch eine eigene Webseite erstellen ein).
 
Zurück