Frage von EGitarre, 66

PHP- Problemlösung gesucht?

Hallo! Ich soll mich momentan in meiner Ausbildung eigenständig mit PHP auseinandersetzen, da wir eigentlich ein Seminar dazu haben sollen, aber dieses ausfällt. Prinzipiell ist das jetzt nicht so schwierig in den Grundzüge, erinnert mich an eine Mischung aus HTML und Java, allerdings habe ich folgendes Problem: Ich habe einfach mal eine kleine Seite gemacht, bei der geguckt wird, welche Buchstaben und Zahlen eingegeben werden und diese werden dann ausgegeben

(Ja, das hätte ich auch ganz simple machen können, wollte nur die If funktion angucken und mir ist kein besseres Beispiel eingefallen =P )

Allerdings bekomme ich, wenn ich das erste mal die Seite aufrufe, also noch keine Variablen angegeben habe, die Errormeldung

Notice: Undefined index: Buchstabe in C:\xampp\htdocs\Seite1.php on line 30

Notice: Undefined index: Zahl in C:\xampp\htdocs\Seite1.php on line 32

Ist ja ziemlich offensichtlich, er sagt halt, dass er keine Eingabe entnehmenkonnte, da diese nicht gemacht wurde.

Allerdings bin ich grade etwas ratlos, da ich das Problem nicht beseitigen kann. Habe schon probiert, die Variable an verschiedenen Stellen mit anderen Vorgaben zu initialisieren, aber habe es noch nicht hingekriegt.... Hat jemand ne Lösung?

Mein Quellcode: Siehe Bild in den Antworten, die Darstellung hier war ne Katastrophe =D 

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von MonkeyKing, 15

Das sind ja "Notices" also eher Hinweise als Fehlermeldungen. Du kannst das zum Beispiel lösen indem du abfragst ob der Index überhaupt gesetzt ist:

$Buchstabe = isset($_POST['Buchstabe]) ? $_POST['Buchstabe] : '';

Da wird übrigens der nützliche Ternäre Operator verwendet. Kannst du auch mit einer if Abfrage machen.

Antwort
von MonkeyKing, 26

Noch ein kleiner Tipp: wenn du so mit dem Programmieren anfängst, solltest du dir von Anfang angewöhnen deinen Code gut zu formatieren, dazu gehört zum Beispiel das Einrücken von Codeblöcken. Variablen sollten mit einem kleinen Buchstaben anfangen, Variablen mit einem großen Buchstaben am Anfang werden eher für Klasseninstanzen verwendet (OOP).

Kommentar von EGitarre ,

Alles klar!

Prinzipiell mache ich das auch, wenn wir in z.B. in der Berufsschule Programmieren, aber für diesen kleinen Code hatte ich jetzt nicht die Lust groß auf die Formatierung zu achte, da der ja recht überschaubar ist =P Aber danke^^

Antwort
von MagicalMonday, 37

Ich würde den Wert einer anderen Variable zuweisen, die schon definiert ist. Also etwa so:

$buchstabe = "";

if(isset($_POST["Buchstabe"])) $buchstabe = $_POST["Buchstabe"];

Und dann halt mit $buchstabe weiterarbeiten.

Antwort
von ceevee, 35

Mit "isset" kannst du überprüfen, ob eine Variable überhaupt existiert, also (ungetestet)

if (isset($_POST["Buchstabe"], $_POST["Zahl"]) {

// dein weiterer Code

}

http://php.net/manual/de/function.isset.php

Kommentar von EGitarre ,

Perfekt, danke =P

Kommentar von LiFe0 ,

du hast einfach nur die seite ohne variablrn aufgerufen

Kommentar von EvilMastermind ,

Du weißt schon das die ganze Frage drüber geht, dass ne Fehlermeldung ausgegeben wird eben weil die Variable nicht gesetzt ist? :D

Antwort
von EGitarre, 51

Jetzt ist das ganze hier verrutscht, hoffe man kann den Quellcode trotzdem lesen...

Antwort
von EGitarre, 39

Der Quellcode:

Antwort
von EvilMastermind, 22

Also kenne mich mit PHP (noch) nicht aus, aber theoretisch müsstest du doch einfach das so machen können like

 if (Buchstabe != NULL AND Zahl != NULL) {
  Ausgaben und checks und so
} 

Wie gesagt, kaum Ahnung von PHP, deswegen kanns sein, dass der Syntax BS ist, aber vom Prinzip her sollte das so gehen.


Hab schnell was raus gesucht was dir vielleicht eher hilft als die Antwort von jemanden der kein Plan von PHP hat :D http://stackoverflow.com/questions/8236354/php-is-null-or-empty


Kommentar von ceevee ,

Das würde nicht funktionieren. Das Problem ist, dass im Array $_POST der Index "Buchstabe" nicht existiert (also $_POST["Buchstabe"] existiert nicht - die Variable ist nicht NULL). Wenn du mal in die kleine Tabelle in der zweithöchsten Antwort bei deinem Stackoverflow-Link schaust, dann wären isset() oder array_key_exists() die richtigen Lösungen.

Kommentar von EvilMastermind ,

Also, war mit einigermaßen sicher, dass ich richtig lag und habs ausprobiert...

Es funktioniert. #Fail

Glaube in der Tabelle die du meintest stand das sogar da so drinnen.. 

Keine passende Antwort gefunden?

Fragen Sie die Community