Autor | Zpráva | ||
---|---|---|---|
gerix Profil |
#1 · Zasláno: 10. 4. 2011, 18:55:46
Zdravím,
stáhl jsem si zdrojový kód na vícestránkový formulář od p. Vrány a mám menší problém. V případě,že script spustím v původním naprogramování jede bez problému. Jakmile mezi case 0: a break; vložím svůj převážně html kód neuloží se session (html kód má cca 500 řádků). Tzn. že první strana naběhne bez problémů, kliknu na "pokračovat", přesměruje mě to na další stranu, kliknu na tlačítko "zpět" a najednou údaje chybí(na první straně). Textová pole jsou prázdná. Má příkaz "switch" nějaké omezení? nebo čím by to mohlo být? Zkoušel jsem snad vše, ale nic nepomohlo. Zde je kód: switch ($stranka) { case 0: echo " <div id='formular1'>"; echo " <div id='formular_mezera1'></div>"; echo " <div id='formular_osobni_udaje'>"; echo " <div id='formular_osobni_udaje_nadpis'>"; echo " <p class='formular_nadpisy_styl'>Osobní údaje<p>"; echo " </div>"; echo " <div id='formular_osobni_udaje_nadpis_linka'></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek0'>"; echo " <div id='formular_osobni_udaje_nadpis_radek1'><p class='formular_text_styl_tucne'>Pohlaví:<span class='formular_cervena'>*</span></p></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek2'>"; echo ' <div id="formular_osobni_udaje_nadpis_radek2_p"><input type="radio" name="pohlavi" value="1"' . ($registrace['pohlavi'] == 1 ? ' checked="checked"' : '') . ' class="styled2" /><p class="formular_vseobeny_font">Muž</p></div>'; echo ' <div id="formular_osobni_udaje_nadpis_radek2_p"><input type="radio" name="pohlavi" value="2"' . ($registrace['pohlavi'] == 2 ? ' checked="checked"' : '') . ' class="styled2" /><p class="formular_vseobeny_font">Žena</p></div>'; echo " </div>"; echo " <div id='formular_osobni_udaje_nadpis_radek1'><p class='formular_text_styl_tucne'>Titul: <a class='tip' href='#' title='Například:<p>-Pan, Paní</p><p>-Ing., Doc.</p>'><img src='image/otaznik_maly.png' class='otaznik_maly'></a></p></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek2'><input type='text' id='titul' name='titul' class='formular_pole2' value='" . htmlspecialchars($registrace["titul"]) . "'></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek1'><p class='formular_text_styl_tucne'>Jméno:<span class='formular_cervena'>*</span></p></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek2'><input type='text' id='jmeno' name='jmeno' class='formular_pole1' value='" . htmlspecialchars($registrace["jmeno"]) . "'></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek1'><p class='formular_text_styl_tucne'>Přijmení:<span class='formular_cervena'>*</span></p></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek2'><input type='text' id='prijmeni' name='prijmeni' class='formular_pole1' value='" . htmlspecialchars($registrace["prijmeni"]) . "'></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek1'><p class='formular_text_styl_tucne'>Datum narození:<span class='formular_cervena'>*</span> <a class='tip' href='#' title='<p>Ve formátu:</p><p>den/měsíc/rok</p><p>Například: 01/02/1988</p>'><img src='image/otaznik_maly.png' class='otaznik_maly'></a></p></div>"; echo " <div id='formular_osobni_udaje_nadpis_radek2'>"; break; ....... atd. Díky za odpovědi |
||
Joker Profil |
#2 · Zasláno: 10. 4. 2011, 20:24:11
gerix:
A hodnoty v $registrace se vezmou odkud? „Má příkaz "switch" nějaké omezení?“ Tím to nebude. |
||
gerix Profil |
#3 · Zasláno: 11. 4. 2011, 05:38:07
<?php session_start(); $posledni_stranka = 1; if (!$_POST) { $stranka = 0; $registrace = array(); } else { $stranka = intval($_POST["stranka"]); $form_id = (isset($_POST["form_id"]) ? intval($_POST["form_id"]) : count($_SESSION["registrace"])); $registrace = &$_SESSION["registrace"][$form_id]; $chyba = ""; // uložení vyplněných hodnot foreach ($_POST as $key => $val) { if ($key != "form_id" && $key != "zpet" && $key != "stranka") { $registrace[$key] = $val; } } if ($_POST["zpet"]) { $stranka--; } else { // kontrola vyplněných hodnot switch ($stranka) { case 0: if (!strlen($_POST["jmeno"])) { $chyba .= "Jméno nesmí být prázdné.\n"; } break; case 1: if (!check_email($_POST["email"])) { $chyba .= "Vyplňte prosím e-mail.\n"; } if (!$chyba && !mysql_query("INSERT INTO uzivatele (jmeno, email) VALUES ('" . mysql_real_escape_string($registrace["jmeno"]) . "', '" . mysql_real_escape_string($registrace["email"]) . "')")) { $chyba = "Data se nepodařilo uložit."; } if (!$chyba) { header("Location: ok.php"); exit; } break; } if (!$chyba) { $stranka++; } } } // vypsání formuláře echo "<form action='' method='post'>\n"; if ($_POST) { echo "<input type='hidden' name='form_id' value='$form_id' />\n"; echo "<input type='hidden' name='stranka' value='$stranka' />\n"; if ($chyba) { echo "<p>$chyba</p>\n"; } } pak pokracuje muj jiz zmineny kod... čím tedy? napadá vás něco? |
||
MunzarM Profil |
#4 · Zasláno: 11. 4. 2011, 08:42:56
Ahoj
Koukam na to a $registrace $registrace |
||
Časová prodleva: 15 let
|
0