# [Apache2] method POST



## peshay (4. November 2003)

hi,
seitdem ich auf Apache2 (SuSE 9.0) geupdate habe werden die variablen einer HTML, mit method="POST" nicht mehr übergeben. Weiss vieleicht einer woran das liegen könnte? Mit GET geht das übrigens auch nicht und ich hab schon alle .conf dateien durchkramt.


----------



## Tim C. (4. November 2003)

Bist du sicher, dass sie gar nicht mehr übergeben werden ? Oder hast du z.B. evtl. nur in PHP vergessen, auf die superglobalen Arrays $_POST und $_GET zurückzugreifen ?

Gib mal ein wenig mehr Input, was für Anwendungen in welchen Sprachen geschrieben du nutzt und wie du auf die Idee kommst, dass die Variablen gar nicht mehr übergeben werden


----------



## peshay (4. November 2003)

ich bin mir ziemlich sicher das es am Apache liegt, da es auf einem anderen server mit apache 1.3.x funktioniert.
die Variablen werden in ein HTML-Formular eingetragen und beim klicken des buttons an eine php seite weiter gegeben, durch POST.
nur trägt das php-script dann nichts in die mysql datenbank ein, weil eben die Variablen fehlen..
wie ich darauf gekommen bin? weiss ich nich genau, darauf zu kommen hat mir n freund geholfen, indem ich irgendwelche php-befehle ins script eingebaut hab.. sowas wie HTTP_POST_Vars oder so ähnlich, auf jedenfall wurden variablen leer angezeigt und auf einem anderen apache server funktionierts.


----------



## Tim C. (4. November 2003)

Dann lass mich mal raten. Du setzt als Variablen, die in deine MySQL DB geschrieben werden sollen, Variablen ein, die ungefährt so aussehen

$NameDesFormularelements

?

Wenn ja, das ist falsch und du musst $_POST['NameDesFormularelements'] nutzen. Und das hat, wenn es so ist, nichts mit dem Apache zu tun, sondern eher mit einem (ich schätze mal gleichzeitig erfolgten) PHP-Update.


----------



## peshay (4. November 2003)

jo, in meiner html hab ich die variablen gemacht mit z.B. "name="Mitarbeiter"" und "value="1""
und im php-script heisst die variable dann $Mitarbeiter
also müsste ich praktisch überall wo $Mitarbeiter steht, stattdessen "$_POST['Mitarbeiter']" eintragen?
aber das gilt jetzt nur für alle POST-Variablen, oder?


----------



## peshay (4. November 2003)

ich hab die zwar jetzt alle umbenannt, funktioniert aber trotzdem noch nicht, hier mal das script:



> <?php
> include("./mysql_connectinfo.inc.php");
> // Verbindung zur Datenbank herstellen
> $link =     @mysql_pconnect($mysqlhost, $mysqluser, $mysqlpasswd);
> ...



bei der Fehlermeldung im Code sagt er übrigens immer Fehler 0.


----------



## Tim C. (4. November 2003)

> $result = mysql_query(
> "INSERT INTO JobTimeDate
> (MitarbeiterID, FirmaID, Job, Time, Date)
> VALUES ($_POST[Mitarbeiter], $_POST[Firma], $_POST['Job'], $_POST['Time'], $_POST['Date'])");


Das machst du am besten in zwei Schritten und mit etwas mehr " und '

```
$query = "INSERT INTO JobTimeDate (MitarbeiterID, FirmaID, Job, Time, Date) VALUES ('".$_POST['Mitarbeiter']."','".$_POST['Firma']."','".$_POST['Job']."','".$_POST['Time']."','".$_POST['Date']."'";
$result = mysql_query($query);
```
Sieht zwar wüst aus, sollte aber die besten Chancen geben, dass es geht.

PS: um zu kontrollieren ob wirklich Daten ankommen, kannst du mal folgenden Code in der Seite einsetzen, die das in die DB eintragen soll.

```
foreach($_REQUEST as $k => $v) {
  echo '$_REQUEST['.$k.'] = '.$v.'<br />\n';
}
```


----------



## peshay (4. November 2003)

hab das ganze jetzt gena so dastehn:



> // falls Formulardaten zur Verfügung stehen:
> // auswerten + speichern
> if($_POST[submitbutton]=="Eintragen")
> {
> ...


hab des zum überprüfen der variablen gleich darunter geschrieben und er zeigt nichts an,
und es geht immer noch nicht


----------



## Tim C. (4. November 2003)

Ok wenn er wirklich nix anzeigt, dann liegt das Problem tatsächlich nich bei PHP
(da hätte es aber bei deinem Code potentiell auch liegen können) sondern, wahrscheinlich
beim Server. Da bin ich jetzt überfragt woran das liegen könnte 

Sorry, dass ich dich mit dem Problem erstmal in die falsche Richtung gedrängt habe,
war nicht meine Absicht.


----------



## peshay (4. November 2003)

kein problem, war immerhin ein aspekt den ich nicht beachtet hätte.. also das es auch an einer neueren PHP-version hätte liegen können..
aber vieleicht meldet sich noch ein anderer der mir weiterhelfen kann


----------



## peshay (4. November 2003)

hab das problem endlich gelöst  
in der php.ini muss register_globals auf On sein
standard einstellung aus sicherheitsgründen is in den neuen versionen auf Off
trotzdem vielen dank für die schnelle hilfe


----------

