Trotz <> in if bedingung Fehlermeldung ausgabe

Hallo bin gerade mit youtube am php lernen.
Geht ziemlich gut voran, allerdings tat sich mir nun ein kleines Problemchen auf und zwar wollte ich folgendes Script ausgeben (es handelt sich hierbei um einen Terminfinder der einfachen Art) im Tutorial kommt es ohne eine Fehlermeldung raus ich hab alles zig mal nachkontrolliert aber es kommt immer das selbe dabei raus.

Hier das HTML ------>NICHT VALIDE IST NUR ZUM TESTEN<-------

[HTML]

Name:


15.07.10
01.08.10
15.08.10

[/HTML]

Hier das PHP
[PHP]

<?php $name = $_GET['name']; $name = trim($name); if ( $name <> "" ) { echo "Name: $name"; echo "
"; $tag1 = $_GET['tag1']; if ( $tag1 <> "X" ) { $tag1 = "-"; } echo "Tag1: $tag1"; echo "
"; } else { echo "

Fehlermeldung...

"; } ?>[/PHP]

Ist das hier normal denn eigentlich sollte ja bei nicht aktivierter Checkbox nur ein " - " ausgegeben werden und nicht noch die Notiz

Notice: Undefined index: tag1 in C:\xampp\htdocs\umfragespeichern.php on line 11

Kapier ich nicht tag1 sollte ja definiert sein auch wenn nicht angewählt ist.

Danke schonmal vorweg

LG Devilseye

Hallo,

wenn die Checkbox nicht ausgewählt ist, wird sie nicht gesendet.

[php] $tag1 = $_GET[‚tag1‘];
if ( $tag1 <> „X“ )
{
$tag1 = „-“;
}[/php]
ersetzen durch
[php] $tag1 = isset($_GET[‚tag1‘]) ? $_GET[‚tag1‘] : ‚X‘;
if ( $tag1 <> „X“ )
{
$tag1 = „-“;
}[/php]

So wird erst geprüft, ob sie ausgewählt ist und dann entsprechend ein Wert zugewiesen.

Gruß

ha danke macht Sinn

und wenn ich dass nun mit mehreren checkboxen machen will?

so tuts nicht

[PHP]

<?php $vorname = $_GET['vorname']; $nachname = $_GET['nachname']; $tag1 = $_GET['tag1']; $tag2 = $_GET['tag2']; $tag3 = $_GET['tag3']; $vorname = trim( $vorname ); $nachname = trim( $nachname ); if ( $vorname <> "" and $nachname <> "" ) { echo "Vorname: $vorname "; echo "
"; echo "Nachname: $nachname "; echo "
"; $tag1 = isset($_GET['tag1']) ? $_GET['tag1'] : 'X'; if ( empty ($tag1) ) { $tag1 = " - "; } echo "Tag1: $tag1"; echo "
"; $tag2 = $_GET['tag2']; if ( empty ($tag2) ) { $tag2 = " - "; } echo "Tag2: $tag2"; echo "
"; $tag3 = $_GET['tag3']; if ( empty ($tag3) ) { $tag3 = " - "; } echo "Tag3: $tag3"; echo "
"; } if ( $vorname == "" or $nachname == "" ) { echo "Formular anzeigen"; ?> Vorname:

Nachname:


/> 15.07.10
/> 01.08.10
/> 15.08.10

<?php } ?>

[/PHP]weder wenn mit der isset noch wenn normal mit $_GET gearbeitet wird.

LG devilseye

Tag 2 und 3 änderst du genauso wie 1 um…
[php]$tag2 = isset($_GET[‚tag2‘]) ? $_GET[‚tag2‘] : ‚X‘;[/php]

Hallo zusammen,

Dem Stimme ich zu. Allerdiengs hier:

wäre es besser keinen Wert zuzuweisen, da das wert ja aus der Form kommen soll. Dementsprechend die Zeile wie folgt ändern:
[php] $tag1 = isset($_GET[‚tag1‘]) ? $_GET[‚tag1‘] : „“;
if ( $tag1 <> „“ )
{
$tag1 = „-“;
}[/php] Weiterhin sollte eine Prüfung für den Fall gemacht werden, wenn keine der Boxen ausgewählt wurde. Damit soll es funktionieren.

Allgemein am Rande:
Die Daten aus einem Formular sollten mit „post“ versendet werden.
PORTAL