Autor Zpráva
Mufna
Profil
Zdravím Vás. Někdo už tady taky řešil problém s tím, že SESSION ve spojení s formulářem mu nefungovala v IE (6, 7 i 8). Mám podobný problém. Mám 2 funkce. První kontroluje povinná pole POST a pokud některé není vyplněno, ukládá do SESSION chybovou hlášku (text). Druhá zobrazuje HTML kód formuláře, ale ještě před tím kontroluje co je v SESSION a pokud je v ní chybová hláška, tak se má vypsat ještě před zobrazením vlastního formuláře. Žádný prohlížeč s tím nemá problémy, a pokud v SESSION je chybová zpráva, tak se i zobrazí. Ale kupodivu v IE se nezobrazí nic. Zkoušel jsem i to, zda nemám chybu jinde (třeba v CSS stylopisu - používám tam nějaký záporný margin), ale tam chyba určitě není. Fakt netuším, čím by to mohlo být. Můžete mi někdo poradit co s tím, aby se mi chybové hlášky zobrazovaly i v IE ?

první funkce (pouze kontroluje vyplnění polí) obsahuje mj. toto:

   $_SESSION["post_error"] = "";
   if (!$_POST["name"]) $_SESSION["post_error"][0] = $error_msg[0];
   if (!$_POST["email"]) $_SESSION["post_error"][1] = $error_msg[1];
   if (!$_POST["txt"]) $_SESSION["post_error"][2] = $error_msg[2];
   return $_SESSION["post_error"];

druhá funkce (vypisuje případné chybové hlášky + zobrazuje formulář

  if ($_SESSION["post_error"][0] != "") echo $_SESSION["post_error"][0];
  if ($_SESSION["post_error"][1] != "") echo $_SESSION["post_error"][1];
  if ($_SESSION["post_error"][2] != "") echo $_SESSION["post_error"][2];
  // zkusil jsem var_dump , vypíše to vždy NULL
  var_dump($SESSION["post_error"]);
  
v index.php se pak logicky nejprve volá první funkce (kontrola), poté druhá, která zobrazuje formulář
mckay
Profil
Mufna:
  var_dump($_SESSION["post_error"]);
Chamurappi
Profil
Reaguji na mckaye:
Tahle věc může způsobit rozdíl mezi prohlížeči?


Reaguji na Mufnu:
První kontroluje povinná pole POST a pokud některé není vyplněno, ukládá do SESSION chybovou hlášku (text).
V té bude nejspíš chyba. Zmínil jsi ji tady celou? Nemáš ji náhodou v nějaké špatně napsané podmínce? (Něco na způsob téhle?)
Mufna
Profil
mckay
jo, jasně, tam mám chybu, dík. Ale celkově to neřeší můj problém

Chamurappi

funkce pro kontrolu
function check_form() {

  $_SESSION["post_error"] = "";
  require_once("form_msg.php");
  if (isset($_POST["send"])) {
    if ($_POST["send"] == 1) {

        // * kontrola - pouze vyplneni nebo nevyplneni povinnych poli
        if (!$_POST["name"]) $_SESSION["post_error"][0] = $error_msg[0];
        if (!$_POST["email"]) $_SESSION["post_error"][1] = $error_msg[1];
        if (!$_POST["txt"]) $_SESSION["post_error"][2] = $error_msg[2];
    }
  }
  return $_SESSION["post_error"];
}

HTML kód formuláře a odesílacího tlačítka vypadá takhle:
<form action="/poptavkovy-formular/" method="POST">
    <button type="submit" name="send" id="send" value="1">odeslat poptávku</button>
</form>



EDIT: var_dump( $_SESSION["post_error"]) už vypisuje správné řetězce podle toho, které pole formuláře není vyplněno, takže toto funguje.

EDIT1: Ale vypisuje to správně všude kromě IE ! Tam zůstává pole $_SESSION["post_error"] pořád prázdné, i když nejsou vyplněna některá povinná pole formuláře a tudíž by v poli $_SESSION["post_error"] měly být prvky s řetězci znaků chybových hlášek. Takže to chápu tak, že IE s tím formulářem nakládá nějak jinak než ostatní prohlížeče. Co s tím ?

EDIT2: vypsal jsem si i var_dump( $_POST) - a tam to vypadá všude stejně, t.j. správně podle toho co je a co není vyplněno. Tak už fakt nevím ...
Mufna
Profil
Tak já už to vidím. Všechny prohlížeče u odesílacího tlačítka vypisují jeho hodnotu - value="1" - ale IE tam vypisuje text buttonu, tedy v mém případě "odeslat poptávku"
Chamurappi
Profil
Reaguji na Mufnu:
vypsal jsem si i var_dump( $_POST) - a tam to vypadá všude stejně
Nevypadá.

IE s tím formulářem nakládá nějak jinak než ostatní prohlížeče. Co s tím ?
Nepoužívej <button>, nebo alespoň neočekávej, že se pošle jeho value. To je ta druhá věc, která jde na formulářích zvorat :-)
Explorer posílá obsah <button>u, nikoliv value.

Edit: Pozdě.
Mufna
Profil
Chamurappi
To je ta druhá věc, která jde na formulářích zvorat
A která je první ?
Chamurappi
Profil
Reaguji na Mufnu:
Ta, na kterou jsem odkázal v příspěvku [#3] — špatné očekávání u obrázkového <input>u.
Mufna
Profil
Chamurappi
aha, ok

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0