Daten aus Formular werden nicht übergeben.

f3hlfarb3

Grünschnabel
Auf meiner Localen Testumgebung werden die Daten aus Formularen, egal ob ich sie per "Get" oder "Post" übergebe, nicht übergeben.
Ich nutze xampp 1.5.4...

Auf einem Webserver funktioniert das.

Auf meiner Suche nach dem Fehler stieß ich auch auf den Hinweis das ich in der php.ini den Schalter "register_globals" auf "on" setzen soll, was natürlich auch geschehen ist.

Anbei mal der Code mit dem die Übergabe der Formulardaten getestet werden sollte:

"<html>

<head>

<title>Überschrift</title>
</head>

<body>

<form action="eingabe.php" method="post" name="FormName">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td align="left" valign="top" width="90">Name</td>
<td align="left" valign="top" width="19"></td>
<td align="left" valign="top" width="202"><input type="text" name="form_name" size="24" border="0"></td>
</tr>
<tr>
<td align="left" valign="top" width="90"></td>
<td align="left" valign="top" width="19"></td>
<td align="left" valign="top" width="202"><input type="submit" name="submitButtonName" value="versenden" border="0"><input type="hidden" name="form_geheim" value="sehr geheim" border="0"></td>
</tr>
</table>

</form>

</body>

</html>"

und hier die eingabe.php:

"<html>
<HEAD>
<TITLE>leer</TITLE>
</HEAD>

<BODY>


<?php
if ($form_name == "")
{
echo "feld leer";
}

else
{
echo $form_name ;
}
?>"

</BODY>
</html>"

Es erscheint immer : feld leer.

Der Hintergrund ist der, ich wollte Daten aus einem Formular an eine Datenbank übergeben, ausser dem Datum, das erst auf der "eingabe.php" definiert wurde wurde an die Datenbank nichts übergeben, alle Felder die aus dem Formular übergeben werden sollten blieben leer. Wie gesagt nur auf meiner localen testumgebung, online bei meinem Webhoster lief alles.
Die Frage ist nun, warum funktioniert das bei mir nicht, mit so einfachen Dingen?
 
Hi,
versuche es mal so:
PHP:
<?php
if ($_POST['form_name'] == "")
{
echo "feld leer";
}

else
{
echo $_POST['form_name'] ;
}
?>

schiese
 
PHP:
<?php
if (empty($_POST['form_name'])){

echo "feld leer";

}else{

echo $_POST['form_name'] ; }
?>

Mit "if (empty())" prüfst du ob dein Formularfeld leer ist.
Ist dies der Fall gibt er also "feld leer" aus.

Du fragst dich nun warum dein Feld leer sein soll
Ich glaube du bestizt Php 5, bzw. ist bei deinen PHP-Einstellungen "'register_globals':" auf off gestellt was auch gut ist ...

Wenn du etwas also überprüfen möchtest oder ausgeben willst dann verwende also "$_POST['']"
Mit "$" nimmst du bei "hidden-Feldern" bzw. wenn du die Daten als Session-Schlüssel oder so speichern willst

P.S.: Der ganze Html-Code wäre nicht nötig gewesen -.-
Außerdem würde ich dieses Formular anders aufbauen

PHP:
<?php
if (isset($_POST['submitButtonName']{

if (empty($_POST['form_name'])){
echo "feld leer";
}else{
echo $_POST['form_name'] ; }

}else{
?>

// hier kommt dann dein Formular hin

<?php
}
?>
 
Zuletzt bearbeitet:
So,

Danke an schiese und -GS-Master, ich habe Eure beiden Lösungsansätze getestet und sie führen beide zu einem erfolgreichen Ergebnis.

Wenn ich das jetzt richtig verstanden habe, muss ich auf der Seite, an die die Daten übergeben werden, die Formularfelder mit $_POST neu definieren?!

sprich: ich möchte den Inhalt eines Formularfeld "name" an eine Datenbank übergeben, dann muss ich "name" auf der Seite an die ich die Daten übergebe neu definieren?

$name = $_POST ['name'];

insert into tabelle (name) values ('$name');

Gruß
f3hlfarb3
 
Zurück