| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

07-10-2009, 10:38
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
$_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
|

07-10-2009, 10:56
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Warum das "multipart/form-data"?
|

07-10-2009, 11:07
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
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?
|

07-10-2009, 11:16
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
Zitat von Picard_Jean-Luc
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
|

07-10-2009, 11:39
|
|
floriansemm
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Beiträge: 4
|
|
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.
|

07-10-2009, 11:43
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
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!
|

07-10-2009, 12:13
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Wenn $_POST leer ist, schau dir mal $_SERVER, $_REQUEST und $_GET an.
|

07-10-2009, 12:14
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Zitat:
Zitat von Picard_Jean-Luc
Übrigens, tritt nur beim IE auf!
|
DANN würd ich langsam mal mit echten Quelltext rausrücken …
|

07-10-2009, 12:22
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
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: </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: </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: </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: </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: </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: </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): </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: </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: </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: </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: </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: </td>"; echo " <td><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"mail_privat\" value=\"".$ma_daten->email_privat."\" size=\"25\"></td>"; echo " </tr>";
Geändert von Picard_Jean-Luc (07-10-2009 um 12:30 Uhr)
|

07-10-2009, 12:23
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
Teil2:
PHP-Code:
echo " <tr>"; echo " <td height=\"5px\"></td>"; echo " </tr>"; echo " <tr>"; echo " <td class=\"zusatz_table\" colspan=\"10\">Zusätzliche Daten</td>"; echo " </tr>"; echo " <tr>"; echo " <td height=\"5px\"></td>"; echo " </tr>"; echo " <tr>"; echo " <td align=\"right\">Funktion: </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\"> <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): </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." ".$chef_daten->name." (".strtoupper($chef_daten->funktion).")</option>"; } else { echo "<option value=\"".$chef_daten->id."\" class=\"input_feld\">".$chef_daten->vorname." ".$chef_daten->name." (".strtoupper($chef_daten->funktion).")</option>"; } } }#ENDE Prüfung OM echo " </select>"; echo " </td>"; echo " </tr>"; echo " <tr>"; echo " <td align=\"right\" valign=\"top\">Wochenarbeitszeit: </td>"; echo " <td valign=\"top\"><input ".hover_input." class=\"input_feld\" type=\"text\" name=\"arbeitszeit\" value=\"".$ma_daten->arbeitszeit."\" size=\"1\" maxlength=\"2\"> Stunden</td>"; echo " <td width=\"6px\"></td>"; echo " <td align=\"right\" valign=\"top\">Kunde: </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: </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: </td>"; echo ' <td><input type="Checkbox" name="del_bild" value="1" onclick="feld_sperren();"></td>'; echo ' <td width="6px"> </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: </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"> <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: </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"> <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: </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"> <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 </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;\"> "; echo " <input type=\"Submit\" value=\"Speichern\" style=\"cursor:pointer;\"> "; echo " </td>"; echo " </tr>"; echo " </table>"; } ?> </td> </tr> </table> </form> <!--### FOOTER ###--> <?php include_once 'include/footer.php'; ?>
Geändert von Picard_Jean-Luc (07-10-2009 um 12:31 Uhr)
|

07-10-2009, 12:25
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
<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.
|

07-10-2009, 12:33
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
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
|

07-10-2009, 12:36
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Und diese Funktion leert nicht zufällig deine Felder?
|

07-10-2009, 12:39
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
nein tut sie nicht, habe sie ja auch schon entfernt und passiert trotzdem! :-(
|

08-10-2009, 16:28
|
|
Picard_Jean-Luc
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 75
|
|
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
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|