$_POST funktioniert nicht :(

nico_arndt

Mitglied
Kann mir hier vielleicht helfen? die $_POST übergabe funktioniert leider nicht ich weiß mir jetzt auch nicht mehr weiter

hier der Code

PHP:
## Formularüberprüfung
class control {
	function form($form_action)
	{
	 global $_POST;
	 global $form_action;
	 $i=0;
	 while($i < count($form_action)){
		 if($_POST[$form_action[$i]] == ""){
			echo "fehler<br>";
		 }
		 $i++;
	 }
	}
};
 
####################################
## Konstruktor für die Formularüberprüfung
####################################
$control = new control;
 
####################################
## Fomular (nach abschicken)
####################################
 
if(isset($nick)){
## Array für Pflichtfelder
$form_action = array( 'nick',
						'email',
						'pass',
						'pass2');
$control->form($form_action);
}
 
Das wäre schon richtig ;)

Und wenn du einfach mal versuchst $_POST['nick'] auszugeben geht es dann? In der Funktion auch?

Stichwort Debuggen ;) hilft bestimmt schnell :D
 
doch wird eigentlich mit ' ' übergeben aber wenn der wert eine variable ist dann wird er ohne ' ' übergeben

ja habe schon versucht mit $_POST['nick'] aber es haut leider auch nicht hin :(
ist wirklich voll deprimierend
 
Zuletzt bearbeitet:
Meine Empfehlung: einfach mal mit echo serialize ($_POST); das ganze ausgeben, dann weißt Du schon mal was drinsteckt. Ein Logging-Mechanismus ist auch ganz nützlich, falls später nochmal eine header-Befehl kommt.

Zudem bin ich mir nicht sicher, ob Du nicht mit isset($_POST[$form_action[$i]]) überprüfen solltest, ob die Pflichtfelder überhaupt vorhanden sind - weißt Du denn, wer das Formular aufruft ?
 
Ich denke er hat dass $_POST-Array in der Funktion resp. in der Klasse nicht mehr. Wenn du nämlich ausserhalb der Klasse den Wert ausgibst geht es bestimmt oder?

Hilft es auch nichts wenn du der Funktion das Array übergibst?
 
also wenn ich das probiere gibt er mir NULL aus hilft mir also leider auch nicht weiter

und sobald jemand das formular abgeschickt hat tritt ja folgendes in kraft:

PHP:
if(isset($nick)){
## Array für Pflichtfelder
$form_action = array( 'nick',
						'email',
						'pass',
						'pass2');
$control->form($form_action);
}

und wenn ich versuche $_POST ausserhalb der funktion zu nutzen dann bekomme ich leider auch keinen wert übergeben

den array von $form_action bekomme ich ja übergeben nur $_POST nicht
 
Zuletzt bearbeitet:
und sobald jemand das formular abgeschickt hat tritt ja folgendes in kraft:
Bist du dir sicher dass die Bedingung isset($nick) TRUE wird? Wenn dein PHP ohne register_globals läuft kommt er nämlich da nicht rein.

Probier mal if(isset($_POST['nick'])){

[edit:] seh grad, dass du es schon probiert hast. Aber mir scheint es so, als ob die if Bedingung gar nicht verarbeitet wird. Deßhalb überprüfe, wieso nicht.
 
Zuletzt bearbeitet:
Ich würde das:
global $_POST;
global $form_action;
mal rausschmeißen. Meiner Meinung brauchst du das da nicht und evtl. setzt er dir damit die Variablen auf Intialwerte.
Ich würde mir halt mal vor dem If die Variable $form_action[$i] anzeigen lassen. Ich denke mal die ist leer.

Was bei Problemen mit der Variablenübergabe immer sehr hilfreich ist, ist phpinfo() am Anfang der Funktion. Dann siehst du welche Post Variablen vorhanden sind und wie die von deinem Server benannt worden sind. Evtl. stimmt ja auch die Benennung im HTML Formular nicht.
 
Zurück