GB Problem!

vodka

Mitglied
Also ich wollte im GB eine funktion einsetzten das man den Name und den Text eingeben muss und nicht einfach posten kann ohne etwas eigegeben zu haben!

Aber folgendes geht nicht:

PHP:
if (trim ($_POST["text"]) == "")
  {
    echo "Bitte geben sie ihren Text ein!<br>";
  }
   if (trim ($_POST["name"]) == "")
  {
    echo "Bitte geben sie ihren Name ein!<br>";
  }
  else
  {
    echo "Erfolgreich eingetragen";

Jetzt muss man nur den Name eingeben aber den Text nicht, also wen man den Name nicht eingibt kommt das man den Name und den Text nicht eingegeben hat und wen man den Name eingibt trägt es einfach ein ohne ein Text eingegeben zu haben!

Ich hoffe mir kann jemand weiterhelfen!
 
Mit trim() entfernst du lediglich überflüssige Leerzeichen an Anfang und Ende eines Strings
PHP:
<?
$str = " Ich hab hunger ";
echo $str; // gibt » Ich hab hunger « aus
$str = trim($str);
echo $str; // gibt »Ich hab hunger« aus
?>

Was du machen musst, ist schauen ob die gesendeten Variablen leer oder halt "voll" sind. gibt eine Menge Möglichkeiten das zu machen ...
PHP:
<?
#zB
if($_POST['var'] == "") { ...
if(empty($_POST['var'])) { ...
?>
 
Geht leider immer noch nicht schauen sie den Ganze Code an:

PHP:
<?
if (isset ($send) )
{
// Verbindung mit der Datenbank erstellen //
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");

if(empty($_POST['name']))
{
echo "Bitte geben sie ihren Name ein!<br>";
  }
if(empty($_POST['text']))
  {
    echo "Bitte geben sie ihren Text ein!<br>";
  }
  else
  {
    echo "Erfolgreich eingetragen";
    
$query = "INSERT INTO $tabellegb(name, email, text, page, datum)
VALUES('$_POST[name]','$_POST[email]','$_POST[text]','$_POST[page]', now())";
$result = mysql_query($query);
echo "<meta http-equiv='refresh' content='0; URL=$php_self'>";

  }
}
?>
 
was heisst geht nicht?
Gibt er die Meldung gar nicht aus?
Oder gibt er die Meldung aus und läuft weiter im Code?
Wenn ja wäre ein exit; oder ein die() ganz gut, z.B. so:

PHP:
if( ! $_POST['name'] )
{
    die("Bitte einen Namen eingeben!");
}
elseif( ! $_POST['text'] )
{
   echo "Bitte einen Text eingeben";
    exit;
}

//Das Else kannst du dir sparen, denn wenn er weder ins If noch ins Elsif geht gehts sowieso hier weiter.

was auch sein kann, dass du die Daten des Formulars per GET schickst, dann musst du sie auch it $_GET oder um sicher zu gehen gleich mit $_REQUEST auslesen.
 
Das problem ist wen man den Name nicht eingibt kommt oben "Text wurde nicht eingegeben" und unten dran steht "Erfolgreich eingetragen" und es wurde auch eingetragen!
 
was meinst du mit "Text wurde nicht eingegeben" Steht "Text" als Sysnonym für den Namen der fehlt oder wie?

Wenn du einen Namen nicht angibst, Text jedoch schon läuft das folgendermassen, du gibst aus das der Name nicht eingegeben wurde,
danach schaust du ob $_POST['text'] leer ist, ist es nicht und du gehst ins else. um aber alle drei bedingungen zu verinden musst du die Zeile it dem Text so abändern:

PHP:
if(empty($_POST['text'])) 

//ändern in 

elseif(empty($_POST['text']))
 
Warum parkst du die eine if-Anweisung IN der anderen ?

Würd das eh mit einem elseif versuchen:
PHP:
<?
if (empty($_POST["text"]))
  {
  echo "Bitte geben sie ihren Text ein!<br>";
  }
elseif(empty($_POST["name"]))
  {
  echo "Bitte geben sie ihren Name ein!<br>";
  }
else
  {
  echo "Erfolgreich eingetragen";
  }

## ODER AUCH SO ?!

if(empty($_POST["text"]) || empty($_POST["name"])) echo "Vollständig ausfüllen!";
else echo "Erfolgreich eingetragen";
?>
 
Original geschrieben von _voodoo
Warum parkst du die eine if-Anweisung IN der anderen?
Weil das das einzig sinnvolle Struktur ist. Von der logischen Struktur her brauche ich gar nicht erst überprüfen, ob ein Text eingegeben wurde, wenn sowieso kein Name eingegeben wurde.
 
Original geschrieben von Tim Comanns
Weil das das einzig sinnvolle Struktur ist. Von der logischen Struktur her brauche ich gar nicht erst überprüfen, ob ein Text eingegeben wurde, wenn sowieso kein Name eingegeben wurde.

Ich finde es Sinnvoller wenn dasteht was alles Fehlt, statt nur eins der Dinge der fehlenden Dinge...
 
Original geschrieben von EngelchenB
Ich finde es Sinnvoller wenn dasteht was alles Fehlt, statt nur eins der Dinge der fehlenden Dinge...
Auch ok, aber die elseif Struktur ist an dieser Stelle meiner Meinung nach wenig sinnvoll, da nicht ausreichend aussagekräftig. Die elseif Konstruktion macht meiner Meinung nach die "Verknüpfung" der beiden Eingabewerte nicht stark genug klar.
 
Zurück