[Apache2] method POST

peshay

Mitglied
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. :(
 
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 ;)
 
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.
 
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.
 
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?
 
Zuletzt bearbeitet:
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);
if ($link == FALSE)
{
echo "<p><b>Leider kann keine Verbindung zur Datenbank hergestellt werden.
Daher können die Eregebnisse zurzeit nicht angezeigt werden.
Bitte versuchen Sie es später noch einmal.
</body></html>\n";
exit();
}
mysql_select_db($mysqldbname);

// falls Formulardaten zur Verfügung stehen:
// auswerten + speichern
if($_POST[submitbutton]=="Eintragen")
{
$result = mysql_query(
"INSERT INTO JobTimeDate
(MitarbeiterID, FirmaID, Job, Time, Date)
VALUES ($_POST[Mitarbeiter], $_POST[Firma], $_POST['Job'], $_POST['Time'], $_POST['Date'])");
}

// Fehlermeldung
if(!$result)
{
echo "<P><b><font color=red>Es ist folgender Fehler aufgetreten: ", mysql_errno(),
": " . htmlentities(mysql_error()), ".\n </font></b>";
}
else
{
$result == NULL;
$result = mysql_query("SELECT Mitarbeiter, Firma, Job, Time, Date
FROM JobTimeDate, Firma, Mitarbeiter
WHERE JobTimeDate.FirmaID IN ($_POST[Firma])
AND JobTimeDate.MitarbeiterID = Mitarbeiter.MitarbeiterID
AND JobTimeDate.FirmaID = Firma.FirmaID
AND JobTimeDate.Date = $_POST['Date']
ORDER BY Date, Firma, Mitarbeiter");
echo "<b>Sie haben folgende werte eingegeben:</b>";
echo "<table border=1><th>Mitarbeiter</th><th>Firma</th><th>Tätigkeit</th>
<th>Zeit</th><th>Datum</th><tr>";
for ($zeile = 0; $zeile <= mysql_num_rows($result) -1; $zeile++)
{
echo "<tr>";
for ($spalte = 0; $spalte <= 4; $spalte++)
{
echo "<td>" . mysql_result($result, $zeile, $spalte);
}
}
}
?>

bei der Fehlermeldung im Code sagt er übrigens immer Fehler 0.
 
$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 '
PHP:
$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.
PHP:
foreach($_REQUEST as $k => $v) {
  echo '$_REQUEST['.$k.'] = '.$v.'<br />\n';
}
 
hab das ganze jetzt gena so dastehn:

// falls Formulardaten zur Verfügung stehen:
// auswerten + speichern
if($_POST[submitbutton]=="Eintragen")
{
$query = "INSERT INTO JobTimeDate (MitarbeiterID, FirmaID, Job, Time, Date)
VALUES ('".$_POST['Mitarbeiter']."','".$_POST['Firma']."','".$_POST['Job']."',
'".$_POST['Time']."','".$_POST['Date']."'";
$result = mysql_query($query);
}
hab des zum überprüfen der variablen gleich darunter geschrieben und er zeigt nichts an,
und es geht immer noch nicht :(
 
Zuletzt bearbeitet:
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.
 
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 :)
 

Neue Beiträge

Zurück