Variable angeblich leer, trotz vorhandenem Inhalt

franzbauer

Grünschnabel
Moin Leute,

bin neu hier im Forum und verzweifel gerade an einem Problem.
Ich habe ein HTML Formular mit zwei Feldern für Benutzer und Passwort. Dies übergebe ich via POST typischerweise an PHP.

Folgendes Phänomen: Ich gebe einen Benutzer ein "franzbauer" und das Kennwort "passwort".
Ich klicke auf absenden und es wird an
index.php?p=login&m=1 (p = seite, m = modus (0 formular anzeigen, 1 einloggen))
übergeben.

Dort frage ich die beiden Felder ab: $_POST['username'] und $_POST['passwd]...
Jetzt kommt das verwirrende: Ich speichere die Werte in Variablen zum testen zwischen.
PHP:
$username = $_POST['username'];
$passwd = $_POST['passwd'];

Mittels echo gebe ich das ganze aus
PHP:
echo $username."+".$passwd;
und es erscheint "franzbauer+passwort".

Frage ich allerdings mittels if folgendes ab:
PHP:
if (empty($username)) {
 echo "Kein Nutzername angegeben!";
}
// ... oder ...
if ($username == "") {
 echo "Kein Nutzername angegeben!";
}
// ... oder ...
if (isset($_POST['username']) {
 echo "Nutzername eingegeben!";
} else {
 echo "Kein Nutzername angegeben!";
}

Erhalte ich immer die Ausgabe "Kein Nutzername angegeben!". Es ist hier unabhängig davon, ob ich entweder direkt $_POST['username'] oder den zwischengespeicherten Wert überprüfe.
Das ganze läuft auf PHP 7.1 unter IIS 10.0. Hinweis: Ähnliche Probleme hatte ich auch schon unter Apache unter Linux.
Noch verwirrender: Das ganze fing urplötzlich an. Vor etwa zwei Stunden versuche ich herauszufinden, warum dieses verhalten plötzlich auftritt.
Noch verwirrender: Obwohl die Variable ja einen Wert enthält (sonst könnte ich ihn nicht ausgeben) kann ich damit in keiner Weise weiterarbeiten außer ausgeben.

Hat jemand eine Idee was ich noch versuchen kann?

LG von einem halbwegs PHP-erfahrenem...
 
Hi

Code:
if (isset($_POST['username'])
Da fehlt ein ) und damit müssten zumindest Parsefehler kommen.

Kann es evt. sein, dass du eine Datei änderst, aber eine andere (alte Kope davon) ausführst?
 
Oh sorry, das hatte ich von Hand flott geschrieben. Die Klammern sind alle richtig gesetzt, sonst zeigt mir der IIS einfach nur einen 500 Error an.

Dass eine alte Kopie ausgeführt wird glaube ich kaum, da ich jede Änderung beim aktualisieren der Seite sehe (Ausgabe da, Ausgabe weg, Ausgabe geändert, einfach mal "DEBUG" ausgegeben...)

LG
 
Hm... kannst du einmal eine vollständige Datei, genau so wie bei dir ausgeführt, herzeigen?
 
Okay, witzigerweise wird nun plötzlich wieder ein Inhalt übergeben - nach einigen Stunden nichts tun (Cache eventuell???)...
Dafür habe ich nun ein anderes Problem, dass aber in meiner Logik liegt das ich selbst lösen muss.
 
Meistens liegt es am Cache.
Bei mir ist es oft so dass der IE den ich selten Verwende, immer einen Cahce falsch läd, da der die Alten nicht löscht, warum auch immer :D

Wo bei es nicht zwangsläufig am Cache des Browsers liegen muss, sondern am Server/FTP Home-PC selbst. :)
Hatte Ich hofft schon gehabt, da reicht es dann meist aus beim Server/FTP etwas zu warten.
Beim Home-PC also Localhost, da reicht es meist aus, den Temp von Windows zu leeren ;)
 
Hatte Temp ja geleert, aber das bezieht sich wohl nicht auf den IIS... Bin gewohnt dass (wie auf meinem Apache) die Dateien sofort richtig sind :)
 

Neue Beiträge

Zurück