• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Gästebuch - Einträge bearbeiten

Perfekt, vielen, vielen Dank! :)

Ich habe noch ein kleines, weiteres Problem.
In der gb.php:
| Gästebuch

soll folgender Abschnitt:
Code:
<?php
include("db_connect.php");
if (isset($_POST['_abschicken']))
{
   $Name   = mysql_real_escape_string(trim($_POST["Name"]));
   $EMail   = mysql_real_escape_string(trim($_POST["EMail"]));
   $Datum   = mysql_real_escape_string(trim($_POST["Datum"]));
   $Text   = mysql_real_escape_string(trim($_POST["Text"]));

   if (empty($Name) AND empty($Text))
   {
      echo "Bitte Namen und einen Text angeben.";
   }
   else
   {
      $mysql_abfrage = "INSERT INTO eintraege (ID, Name, EMail, Datum, Text)
         VALUES ('','$Name', '$EMail', '$Datum', '$Text')";
      $abfrage = mysql_query($mysql_abfrage);
   }
}
...
...

verhindert, dass die Felder "Name" sowie "Text" leer bleiben.
Diese Abfrage funktioniert aber leider noch nicht.
Weißt du, was daran falsch ist?
 
Werbung:
Denke empty ist es nur wenn es noch nie gesetzt wurde die Variable. Denke du brauchst da eher: PHP: strcmp - Manual
Wenn es "" ist dann ist es leer :D
Würde dann auch eher anstatt ein echo ein header("Location: guestbook.php") machen
 
Ich hab es nun mal so probiert:
Code:
 if($Name == "" AND $Text == "")
   {
      echo "Bitte Namen und einen Text angeben.";
   }
   else
   {
      $mysql_abfrage = "INSERT INTO eintraege (ID, Name, EMail, Datum, Text)
         VALUES ('','$Name', '$EMail', '$Datum', '$Text')";
      $abfrage = mysql_query($mysql_abfrage);
   }

Allerdings ohne Erfolg.
 
Werbung:
Keine Ahnung ob in PHP AND geht. ich machs immer mit &&, aber bei deiner Anweisung muss der Name und der Text leer sein. Ist denn beides Leer?
 
Ich hab es nun mal mit "&&" ersetzt.
Nachdem man auf "Abschicken" klickt: | Gästebuch
wird halt direkt ein neuer Eintrag gespeichert.
"Trim" sollte ja eigl. die Zeichen entfernen.
 
Mach mal sämtliche Ausgaben. Ob dir das irgend einen Wert wieder gibt. Ach und btw. nicht && sondern du brauchst ein oder. ||
Soll ja sagen wenn Text oder Name fehlen.
 
Werbung:
Werbung:
lass mal bitte ein var_dump von der post variable machen.

PHP:
echo "------------------------------<br/><br/>";
var_dump($_POST);
echo "<br/><br/>------------------------------<br/>";
 
Werbung:
Code:
<?php
header("location:gb.php");
include("db_connect.php");
$ID= $_POST["ID"];
$Name= $_POST["Name"];
$EMail= $_POST["EMail"];
$Text= $_POST["Text"];

$Datum = date("Y").date("m").date("d").date("H").date("i").date("s");

$mysql_abfrage = "INSERT INTO eintraege (ID, Name, EMail, Datum,  Text)
VALUES ('','$Name', '$EMail', '$Datum', '$Text')";

$abfrage = mysql_query($mysql_abfrage);
?>
 
Werbung:
Dachte eher an den Inhalt von gb.php :D
Aber muss für heute passen ^^ Will heute noch bisschen Ruhe haben :D
Teste einfach mal aus indem du mal var_dumps von den posts machts und guckst ob die Abfragen richtig sind usw :)
Viel Glück. Und ansonsten bis morgen :p
 
Guten Morgen,
Mich wundert es, dass überhaupt irgend etwas eingetragen wird, bzw du wieder auf der Seite landest ^^
Denn nach dem abschicken gelangst du auf anlegen.php. Dort steht als erste Anweisung, dass man dich zu gb.php weiter leiten soll. Dadurch gehen dann die POST und GET Variable verloren.
Das wäre dann Fall 1: Es wäre nichts eingetragen worden und du wärst wieder auf der hauptseite.

Da location aber klein geschrieben ist, kann es sein, dass er einen nicht weiterleitet als ersten Befehl und stattdessen die Sachen einträgt. Danach passietr dann aber nichts mehr und man sollte sich auf der anlegen.php befinden.

Fall 2 also: Eintragen der Daten und kein Weiterleiten.

Bei dir wird aber Beides gemacht, was mich ein wenig verwirrt. Dein Quelltext sieht jetzt auch sehr zusammen gebastelt aus :D halt keine ordnung drin. Vielleicht solltest du die Anwendungsfälle mal in 3 einzelnen Dateien gut geordnet durchspielen :) (Hilft mir oft, wenn ich den Prototypen vom eigentlichen Programm abkapsle und es dann später erst über eine Schnittstelle einfüge :))
 
Werbung:
Zurück
Oben