$_POST sporadisch leer :-(

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $_POST sporadisch leer :-(

    Hallo zusammen,

    war ja scho lange nicht mehr hier, schön geworden :-)

    Habe ein Problem was mich echt sehr verzweifeln lässt.

    Ich habe ein Formular mit dem ich ein paar Daten übergebe. Mittels POST.
    Jetzt ist es so das dass $_POST sehr oft leer ist aber nur bei jeden 2 oder 3. mal abschicken vom Formular.

    Ich verstehe nicht woran das liegt. Der Client ist ein Rechner mit IE6 und IE7 bei einen anderen Client. Bei beiden tritt das Problem auf.

    Habe schon übelst viel im Google gesucht und geschaut und viele Dinge probiert aber hat nie geholfen. Habe auch die neuste XAMPP installiert mit der neusten PHP Version. Ich glaube es liegt irgendwie an PHP aber so richtig weiß ich auch nicht. Ich erstelle nicht zum ersten mal so ein Formular habe schon öfter Forum erstellt oder andere dinge und sowas ist mir noch nie passiert.

    Hier ist der Form-Tag:
    <form enctype="multipart/form-data" action="aenderung_speichern.php" method="post" name="Formular">

    Alles standart, drunter sind dann ein paar input felder und listen und das wars.

    Habt ihr ideen, warum das $_POST manchmal leer übergeben wird?

    Ich gebe mit "print_r($_POST);" das Array aus. Mal ist es voll und dann wieder "Array()". Eigenartig. Entweder es geht oder es geht nicht.

    Vielen Dank schonmal im vorraus.

    Gruß, Picard

  • #2
    Warum das "multipart/form-data"?

    Kommentar


    • #3
      Ja, das hatte ich irgendwo anders gelesen als ich nach diesen Problem gegoogelt habe. War ein test das ich das mit rein nehme, soll woll besser mit dem IE6 und Post funktionieren.

      Ohne tritt das Problem auch auf :-(

      Könnte es eventuell PHP einstellungen sein?

      Kommentar


      • #4
        Zitat von Picard_Jean-Luc Beitrag anzeigen
        Könnte es eventuell PHP einstellungen sein?
        Suhosin leert unter bestimmten Bedingungen die superglobalen Arrays.

        Hast du irgendwelche Weiterleitungen etabliert?
        z.B. per .htaccess oder/und modrewrite
        Wir werden alle sterben

        Kommentar


        • #5
          versuch mal statt:

          enctype="multipart/form-data"

          enctype="application/x-www-form-urlencoded"

          oder lass gleich enctype weg. dieses multipart/form-data braucht man eigenltihc nur wenn man dateien hochlaed per formular, wenn ich mich da nicht irre.

          Kommentar


          • #6
            Hi,

            danke für Antworten:

            @combie: Suhosin??

            @floriansemm:
            Also weg gelassen habe ich es schon, ich kann ja den anderen Befehl einmal probieren.

            Habt ihr noch irgendwelche ideen? Weil so langsam weiß ich nicht mehr was es noch sein kann.

            Übrigens, tritt nur beim IE auf!

            Kommentar


            • #7
              Wenn $_POST leer ist, schau dir mal $_SERVER, $_REQUEST und $_GET an.

              Kommentar


              • #8
                Zitat von Picard_Jean-Luc Beitrag anzeigen
                Übrigens, tritt nur beim IE auf!
                DANN würd ich langsam mal mit echten Quelltext rausrücken …
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #9
                  Ok, der QUelltext ist aber mit vielen Tabellen etc. Also wird wahrscheinlich für euch ein bissel durcheinander/schwierig. Hoffe ihr kommt zurecht.

                  Aber wie gesagt, das es garnicht klappt is es ja nicht nur manchmal.

                  @onemorenerd: Wo müsste ich das prüfen?

                  Teil1, da Text zu lang:

                  PHP-Code:
                  <?php
                  include_once 'include/kopf.php';

                  $ma_id $_GET["id"];
                  $modus $_GET["modus"];
                   
                  echo 
                  '<form onsubmit="return chkFormular(); enctype="multipart/form-data" action="aenderung_speichern.php" method="post" name="Formular">';
                   
                  echo 
                  "<input type=\"hidden\" name=\"ma_id\" value=\"".$ma_id."\">";
                  echo 
                  "<input type=\"hidden\" name=\"modus\" value=\"".$modus."\">";
                   
                  echo 
                  "<table  width=\"800px\">";
                  echo 
                  "<tr>";
                  echo 
                  "<td>";
                   
                  echo 
                  "<table align=\"center\" border=\"0\">";
                  echo 
                  " <tr>";
                  echo 
                  "  <td class=\"eingabe_table\" colspan=\"10\">Daten von Mitarbeiter bearbeiten</td>";
                  echo 
                  " </tr>";
                  echo 
                  " <tr>";
                  echo 
                  " <td height=\"5px\"></td>";
                  echo 
                  " </tr>";
                   
                  $ma "SELECT * FROM personal_daten WHERE id = $ma_id LIMIT 1"// Anfragen vom User auslesen.
                  $ma_ergebnis mysql_query($ma);
                  while(
                  $ma_daten mysql_fetch_object($ma_ergebnis))
                  {
                   
                  echo 
                  " <tr>";
                  echo 
                  "  <td align=\"right\">Personalnummer:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"pers_nr\" value=\"".$ma_daten->pers_nr."\" size=\"25\"></td>";
                  echo 
                  "  <td width=\"6px\"></td>";
                  echo 
                  "  <td align=\"right\"></td>";
                  echo 
                  "  <td></td>";
                  echo 
                  " </tr>";
                   
                  echo 
                  " <tr>";
                  echo 
                  "  <td align=\"right\">Name:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"name\" value=\"".$ma_daten->name."\" size=\"25\"></td>";
                  echo 
                  "  <td width=\"6px\"></td>";
                  echo 
                  "  <td align=\"right\">Vorname:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"vorname\" value=\"".$ma_daten->vorname."\" size=\"25\"></td>";
                  echo 
                  " </tr>";
                   
                  echo 
                  " <tr>";
                  echo 
                  "  <td align=\"right\">Straße:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"strasse\" value=\"".$ma_daten->straße."\" size=\"25\"></td>";
                  echo 
                  "  <td width=\"6px\"></td>";
                  echo 
                  "  <td align=\"right\">Postleitzahl:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"plz\" value=\"".$ma_daten->plz."\" size=\"25\"></td>";
                  echo 
                  " </tr>";
                   
                  echo 
                  " <tr>";
                  echo 
                  "  <td align=\"right\">Ort:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"ort\" value=\"".$ma_daten->ort."\" size=\"25\"></td>";
                  echo 
                  "  <td width=\"6px\"></td>";
                  echo 
                  "  <td align=\"right\">Geburtstag (T-M-J):&nbsp;</td>";
                  if(
                  $ma_daten->geburtstag != "")
                  {
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"geb_tag\" 
                  value=\""
                  .date("d"$ma_daten->geburtstag)."\" size=\"1\" maxlength=\"2\">-<input ".hover_input." class=\"input_feld\" type=\"text\" name=\"geb_monat\" value=\"".date("m"$ma_daten->geburtstag)."\" 
                  size=\"1\" maxlength=\"2\">-<input "
                  .hover_input." class=\"input_feld\" type=\"text\" 
                  name=\"geb_jahr\" value=\""
                  .date("Y"$ma_daten->geburtstag)."\" size=\"2\" maxlength=\"4\"></td>";
                  }
                  else
                  {
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"geb_tag\" 
                  value=\"\" size=\"1\" maxlength=\"2\">-<input "
                  .hover_input." class=\"input_feld\" 
                  type=\"text\" name=\"geb_monat\" value=\"\" size=\"1\" maxlength=\"2\">-
                  <input "
                  .hover_input." class=\"input_feld\" type=\"text\" name=\"geb_jahr\" value=\"\" size=\"2\" maxlength=\"4\"></td>";
                  }
                   
                  echo 
                  " </tr>";
                   
                  echo 
                  " <tr>";
                  echo 
                  "  <td align=\"right\">Tel. Festnetz:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"tel_fest\" value=\"".$ma_daten->tel_festnetz."\" size=\"25\"></td>";
                  echo 
                  "  <td width=\"6px\"></td>";
                  echo 
                  "  <td align=\"right\">Tel. Mobil:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" 
                  name=\"tel_mobil\" value=\""
                  .$ma_daten->tel_mobil."\" size=\"25\"></td>";
                  echo 
                  " </tr>";
                   
                  echo 
                  " <tr>";
                  echo 
                  "  <td align=\"right\">Tel. Zusatz:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" 
                  name=\"tel_zusatz\" value=\""
                  .$ma_daten->tel_zusatz."\" size=\"25\"></td>";
                  echo 
                  "  <td width=\"6px\"></td>";
                  echo 
                  "  <td align=\"right\"></td>";
                  echo 
                  "  <td></td>";
                  echo 
                  " </tr>";
                   
                  echo 
                  " <tr>";
                  echo 
                  "  <td align=\"right\">eMail Firma:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" 
                  name=\"mail_firma\" value=\""
                  .$ma_daten->email_firma."\" size=\"25\"></td>";
                  echo 
                  "  <td width=\"6px\"></td>";
                  echo 
                  "  <td align=\"right\">eMail Privat:&nbsp;</td>";
                  echo 
                  "  <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"mail_privat\" value=\"".$ma_daten->email_privat."\" size=\"25\"></td>";
                  echo 
                  " </tr>";
                  Zuletzt geändert von Picard_Jean-Luc; 07.10.2009, 12:30.

                  Kommentar


                  • #10
                    Teil2:


                    PHP-Code:
                    echo " <tr>";
                    echo " <td height=\"5px\"></td>";
                    echo " </tr>";
                    echo " <tr>";
                    echo "  <td class=\"zusatz_table\" colspan=\"10\">Zus&auml;tzliche Daten</td>";
                    echo " </tr>";
                    echo " <tr>";
                    echo " <td height=\"5px\"></td>";
                    echo " </tr>";
                     
                    echo " <tr>";
                    echo "  <td align=\"right\">Funktion:&nbsp;</td>";
                     
                    ### Prüfen ob schon ein OM exisitert.
                    $chef = "SELECT * FROM personal_daten WHERE funktion = 'om' AND inaktiv = 'NO'"; // Anfragen vom User auslesen.
                    $chef_ergebnis = mysql_query($chef);
                    if(mysql_num_rows($chef_ergebnis) == 0)//Prüfen ob OM ja/nein
                    {
                    echo "<td colspan=\"4\" style=\"color: #FF0000\">";
                    echo "<input type=\"hidden\" name=\"funktion\" value=\"om\">";
                    echo "<input type=\"Checkbox\" name=\"chef\" value=\"0\">&nbsp;<b>Erster MA wird als OM eingetragen!</b>";
                    echo "</td>";
                    }
                    else
                    {
                    include 'include/funktion.php';
                    echo "  <td>";
                    echo "   <select name=\"funktion\">";
                    echo "   <option value=\"om\" class=\"input_feld\" ".$ma_om.">Operation Manager</option>";
                    echo "   <option value=\"osv\" class=\"input_feld\" ".$ma_osv.">Operation Supervisor</option>";
                    echo "   <option value=\"tsv\" class=\"input_feld\" ".$ma_tsv.">Technischer Supervisor</option>";
                    echo "   <option value=\"ma\" class=\"input_feld\"  ".$ma_ma.">MA im techn. Support</option>";
                    echo "   </select>";
                    echo "  </td>";
                     
                    echo "  <td width=\"6px\"></td>";
                    echo "  <td align=\"right\">Vorgesetzte(r):&nbsp;</td>";
                    echo "  <td style=\"color: #FF0000\">";
                     
                    echo "   <select name=\"chef\" size=\"\" class=\"input_feld\">";
                    echo "   <option value=\"0\">".$chef_om."</option>";
                     
                      ### Vorgesetzten auslesen
                      $chef = "SELECT * FROM personal_daten WHERE funktion = 'om' OR funktion = 'osv' OR funktion = 'tsv' AND inaktiv = 'NO'"; // Anfragen vom User auslesen.
                      $chef_ergebnis = mysql_query($chef);
                      while($chef_daten = mysql_fetch_object($chef_ergebnis))
                      {
                       if($ma_daten->chef == $chef_daten->id)
                       {
                       echo "<option value=\"".$chef_daten->id."\" class=\"input_feld\" selected>".$chef_daten->vorname."&nbsp;".$chef_daten->name."&nbsp;(".strtoupper($chef_daten->funktion).")</option>";
                       }
                       else
                       {
                       echo "<option value=\"".$chef_daten->id."\" class=\"input_feld\">".$chef_daten->vorname."&nbsp;".$chef_daten->name."&nbsp;(".strtoupper($chef_daten->funktion).")</option>";
                       }
                      }
                     
                    }#ENDE Prüfung OM
                     
                    echo "   </select>";
                    echo "  </td>";
                    echo " </tr>";
                     
                    echo " <tr>";
                    echo "  <td align=\"right\" valign=\"top\">Wochenarbeitszeit:&nbsp;</td>";
                    echo "  <td valign=\"top\"><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"arbeitszeit\" value=\"".$ma_daten->arbeitszeit."\" size=\"1\" maxlength=\"2\">&nbsp;Stunden</td>";
                    echo "  <td width=\"6px\"></td>";
                    echo "  <td align=\"right\" valign=\"top\">Kunde:&nbsp;</td>";
                     
                    if($modus == "osv"){
                    echo "  <td><select name=\"kunde[]\" size=\"4\" multiple>";
                    }
                    if($modus == "ma"){
                    echo "  <td><select name=\"kunde\">";
                    }
                     
                    ### Feld Kunde aufsplitten und Array erzeugen
                    $ar_kunde = explode(",", $ma_daten->kunde);
                     
                      ### KUNDE aus Kunde DB auslesen
                      if($modus != "om")
                      {
                       $kunde = "SELECT * FROM kunden_daten ORDER BY id";
                       $kunde_ergebnis = mysql_query($kunde);
                       while($kunde_daten = mysql_fetch_object($kunde_ergebnis))
                       {
                        //if($kunde_id == $kunde_daten->id)
                        if(in_array($kunde_daten->id, $ar_kunde) == true)
                        {
                        echo "<option value=\"".$kunde_daten->id."\" selected>".$kunde_daten->kunde."</option>";
                        }
                        else
                        {
                        echo "<option value=\"".$kunde_daten->id."\">".$kunde_daten->kunde."</option>";
                        }
                       }
                      echo "</select></td>";
                      }
                      else
                      {
                      echo "<td><font color=\"#C84417\">OM - Keine Auswahl</font></td>";
                      }
                     
                    echo " </tr>";
                     
                    echo " <tr>";
                    echo "  <td align=\"right\">Bild:&nbsp;</td>";
                    echo "  <td><input id=\"bild\" name=\"bild\" type=\"file\" size=\"10\" maxlength=\"100000\" accept=\"text/*\"></td>";
                    echo "  <td width=\"6px\"></td>";
                    echo " </tr>";
                     
                    echo " <tr>";
                    echo "  <td align=\"right\">Bild loeschen:&nbsp;</td>";
                    echo '  <td><input type="Checkbox" name="del_bild" value="1" onclick="feld_sperren();"></td>';
                    echo '  <td width="6px">&nbsp;</td>';
                    echo " </tr>";
                     
                      ### Daten in Var schreiben da DATE() nicht mit Leerzeichen umgehen kann
                      $eintritt = $ma_daten->datum_eintritt;
                      $austritt = $ma_daten->datum_austritt;
                      $probezeit = $ma_daten->datum_probezeit;
                     
                      if($eintritt != ""){ $eintritt = date("j.n.Y", $eintritt); }
                      if($austritt != ""){ $austritt = date("j.n.Y", $austritt); }
                      if($probezeit != ""){ $probezeit = date("j.n.Y", $probezeit); }
                     
                    echo " <tr>";
                    echo "  <td align=\"right\">Eintritt:&nbsp;</td>";
                    echo '  <td valign="middle"><input class="input_feld" style="text-align: center;" 
                    readonly="readonly" type="Text" name="datum_eintritt" value="'.$eintritt.'"showCal("Date1")"" 
                    size="8">&nbsp;<img onclick="window.oStore = window.Formular.datum_eintritt;openCalendar();" 
                    src="image/buttons/icon_kalender.jpg" width="22" height="17" title="Kalender öffnen" 
                    style="cursor: pointer"></td>';
                    echo "  <td width=\"6px\"></td>";
                    echo "  <td align=\"right\">Probezeit Ende:&nbsp;</td>";
                    echo '  <td valign="middle"><input class="input_feld" style="text-align: center;" 
                    readonly="readonly" type="Text" name="datum_probezeit" value="'.$probezeit.'"showCal("Date1")"" 
                    size="8">&nbsp;<img onclick="window.oStore = window.Formular.datum_probezeit;openCalendar();" 
                    src="image/buttons/icon_kalender.jpg" width="22" height="17" title="Kalender öffnen" style="cursor: pointer"></td>';
                    echo " </tr>";
                     
                    echo " <tr>";
                    echo "  <td align=\"right\">Austritt:&nbsp;</td>";
                    echo '  <td valign="middle"><input class="input_feld" style="text-align: center;" 
                    readonly="readonly" type="Text" name="datum_austritt" value="'.$austritt.'"showCal("Date1")"" 
                    size="8">&nbsp;<img onclick="window.oStore = window.Formular.datum_austritt;openCalendar();" 
                    src="image/buttons/icon_kalender.jpg" width="22" height="17" title="Kalender öffnen" style="cursor: pointer"></td>';
                    echo "  <td width=\"6px\"></td>";
                    echo "  <td align=\"right\">User-ID&nbsp;</td>";
                    echo "  <td valign=\"middle\"><input ".hover_input." class=\"input_feld\" type=\"Text\" name=\"user_id\" value=\"".$ma_daten->user_id."\" size=\"13\"></td>";
                    echo " </tr>";
                     
                    echo " <tr>";
                    echo " <td height=\"5px\"></td>";
                    echo " </tr>";
                    echo " <tr>";
                    echo "  <td class=\"zusatz_table\" colspan=\"10\">Optionen</td>";
                    echo " </tr>";
                    echo " <tr>";
                    echo " <td height=\"5px\"></td>";
                    echo " </tr>";
                     
                    echo " <tr>";
                    echo "  <td align=\"center\" colspan=\"10\">";
                    echo "  <img src=\"image/buttons/zurück_normal.jpg\" width=\"100\" height=\"15\"
                     onclick=\"window.location='personal_db_index.php'\" 
                    onMouseOver=\"src='image/buttons/zurück_hover.jpg';\" onMouseOut=\"src='image/buttons/zurück_normal.jpg';\" style=\"cursor:pointer;\">&nbsp;&nbsp;";
                    echo "  <input type=\"Submit\" value=\"Speichern\" 
                    style=\"cursor:pointer;\">&nbsp;&nbsp;";
                    echo "  </td>";
                    echo " </tr>";
                    echo " </table>";
                    }
                    ?>
                     
                    </td>
                    </tr>
                    </table>
                    </form>
                     
                    <!--### FOOTER ###-->
                    <?php
                    include_once 'include/footer.php';
                    ?>
                    Zuletzt geändert von Picard_Jean-Luc; 07.10.2009, 12:31.

                    Kommentar


                    • #11
                      <form onsubmit="return chkFormular();

                      Das onsubmit-Attribut ist nicht geschlossen.

                      Bitte formatier deinen Code ordentlich. Niemand will 10 Kilometer nach rechts scrollen.

                      Deinen Code könntest du übrigens locker auf ein zehntel reduzieren, wenn du Schleifen verwenden würdest, statt ewig den selben Code zu kopieren.

                      Kommentar


                      • #12
                        Ok sorry, habe es ein bissel angepasst bzw. bin noch dabei.
                        Wegen dem Quelltext statisch mit echo...ja stimmt kann man auch ohne echo...naja war einmal dabei.

                        Aber daran liegt es ja nicht :-(

                        Das <form onsubmit="return chkFormular();" war eigentlich nicht so kann beim kopieren passiert sein...man kann es auch weg lassen kommt aber der gleiche fehler mit dem $_POST

                        Kommentar


                        • #13
                          Und diese Funktion leert nicht zufällig deine Felder?
                          [FONT="Helvetica"]twitter.com/unset[/FONT]

                          Shitstorm Podcast – Wöchentliches Auskotzen

                          Kommentar


                          • #14
                            nein tut sie nicht, habe sie ja auch schon entfernt und passiert trotzdem! :-(

                            Kommentar


                            • #15
                              So ich glaube ich weiß woran es liegt, habe aber keine Lösung.
                              Also ich habe auf meinen FORM eine Berechtigung liegen so das keine auf die Seite kommt außer bestimmte leute und diese lese ich mit "$_SERVER['REMOTE_USER']" aus.

                              Um dies zu verwirklichen habe ich folgendes noch gemacht.
                              Ich lade in der httpd.conf dieses Modul: LoadModule sspi_auth_module modules/mod_auth_sspi.so

                              und füge unter Directory folgendes ein:

                              AuthName "Local Intranet"
                              AuthType SSPI
                              SSPIAuth On
                              SSPIAuthoritative On
                              require valid-user

                              Jetzt konnte ich den angemeldetet User auslesen. Und diese Abfrage ob der User existiert habe ich in allen seiten. Dieser killt meine $_POST.

                              Wenn ich das prüfen des User weg lasse und das modul deaktiviere in der httpd.conf dann klappt es.

                              Habt ihr eine Idee wie ich das weg bekomme? Muss ich noch was ändern in der conf oder so?

                              Please help!

                              Picard

                              Kommentar

                              Lädt...
                              X