Autor | Zpráva | ||
---|---|---|---|
The1JJF1 Profil |
#1 · Zasláno: 11. 3. 2013, 20:43:48
Zdravím, potýkám se již podruhé s problémem Formulářů a IE. Jednou se mi jej podařilo vyřešit náhodou, ale tentokrát si nevím rady vůbec.
Přejdu k věci. Mám weboví dotazník (Zadáte jméno, vyplníte otázky a když je vyplníte dobře, zapíše se vaše jméno do MySQL). Vše funguje ve všech prohlížečích jak má, jen u IE je chyba hned na začátku. Po zadání vašeho jména do dotazníku a vyplnění (i správném) to vyhodí chybu že sem nezadal jméno. ( Zapoměl sem dodat že Dotazník je na stránce index.php, a vyhodnocení na stránce, results.php a Způsob je POST) Můj kód obsahuje dvě kontroly pro zadání jména, jednu PHP na stránce results.php a druhou pomocí javascriptu a vyskakovacího okna (když jdete z index.php a odesílate dotazník). Kontrola na stránce results.php je z důvodu, že by někdo šel na stránku přímo http://www.neco.cz/results.php .
Nevím proč, ale IE si myslí že sem nezadal Jméno do dotazníku. Přitom tam je a pustil mě dále i kontrolní Javascript. Za jakékoliv odpovědi či rady velice děkuji. (Popřípadě pošlu na mail i kód) |
||
user243 Profil |
#2 · Zasláno: 12. 3. 2013, 05:54:57
no, já jsem si někde zapomněl věšteckou kouli, takže kus kódu nebo odkaz na stránku by se určitě hodil;
a napište to tady - víc hlav víc ví; |
||
The1JJF1 Profil |
OK, zde je teda kód, zkráceně:
Takže index.php zde: <meta charset="windows-1250"> <?php include "language/cz.php"; ?> <!-- Kompletní text nacházející se na stránce --> <html> <head> <title><?php echo $hedr ?></title> <meta name="keywords" content="Whitelist, MCPlanet" /> <meta name="author" content="The1JJF1" /> <meta name="description" content="MCPlanet.cz Whitelist Test" /> <script src="js/jquery.min.js"></script> <script src="js/jquery.screwdefaultbuttons.js"></script> <script src="js/progress.js" type="text/javascript" charset="utf-8"></script> <script src="js/nick.js" type="text/javascript" charset="utf-8"></script> <link type="text/css" rel="stylesheet" href="styly/default.css" /> <link type="text/css" rel="stylesheet" href="styly/nick.css" /> <link type="text/css" rel="stylesheet" href="styly/questions&answers.css" media="screen"> <!--[if lte IE 9]><link rel="stylesheet" href="styly/ie.css" media="screen" /><![endif]--> <script> /* JS na tlacitka */ $(document).ready(function(){ $('input:radio').screwDefaultButtons({ checked: "url(images/radio_Checked.jpg)", unchecked: "url(images/radio_Unchecked.jpg)", width: 20, height: 20 }); }); </script> </head> <body> <h1><?php echo $hedr ?></h1> <!-- Formátování vnitřní stránky (ne pozadí) --> <div class="style"> <!-- Slider --> <div id="progress_bar" class="ui-progress-bar ui-container"> <div class="ui-progress" style="width: 100%;"> <span class="ui-label" style="display:none;">Načítám otázky <b class="value">75%</b></span> </div><!-- .ui-progress --> </div><!-- #progress_bar --> <!-- Slider konec --> <br> <!-- Tento div se zobrazi, až po načtení JS slideru výše--> <div class="content" id="main_content" style="display: none;"> <span style="padding: 10px"> <form action="results.php" method="post" OnSubmit="return CheckForm(this)" > <center> <h3><?php echo $zad ?>:</h3> <input type="text" size="20" name="name" class="nick"> </center> </span> <?php //Geberuje náhodné otázky ze souborů v include a zobrazije v $rid $rid = rand(1,2); ?> <?php if ($rid == 1){ include('otazky/otazky.php'); } if ($rid == 2){ include('otazky/otazky2.php'); } ?> <!-- Potvrzení znalosti pravidel --> <div class="Otazky_odpovedi1"> <div class="Pravidla1"> <input type="radio" name="pravidla" value="ano"> <label for="jm" style="color: #A3DAFB;"><?php echo $prav ?></label> </div> </div> <!-- Konec a odeslani testu k vypracovani --> <center><input type="submit" class="button" name="submit" value="Odeslat žádost o Whitelist"></center> </form> </div> <hr size="1px"> <center class="Footer"> Designed & Coded by The1JJF1 </center> </div> </body> </html> a zde je i results.php <?php ini_set("display_errors", 0); //nepouzivejte v PHP4 error_reporting(E_ERROR | E_WARNING); $a = 5 / 0; //chyba deleni nulou ?> <link type="text/css" rel="stylesheet" href="styly/default.css" /> <link type="text/css" rel="stylesheet" href="styly/nick.css" /> <meta charset="windows-1250"> <html> <head> <?php include "language/cz.php"; ?> <title> <?php echo $hedr ?> </title> <meta name="keywords" content="Whitelist,Survival,Server,MCPlanet" /> <meta name="author" content="The1JJF1" /> <meta name="description" content="Whitelist Survival server MCPlanet.cz" /> </head> <body> <h1><?php echo $hedr ?></h1> <!--<div class="okraj"></div> <!-- Okraj s css přidá cobl --> <div class="style"> <!-- Celkovy vzhled webu --> <span style="padding: 10px"> <?php include "includes/config.php"; $name = $_POST['name']; //tento řádek byl předtím v if (isset... ale nefungovalo to. Presunul jsem ho sem, a problem byl z casti vyresen) // Dotazkin + error s připojením do mysql // if (isset ($_POST['submit'])) { $pravidla = $_POST['pravidla']; $q1 = $_POST['q1']; $q2 = $_POST['q2']; $q3 = $_POST['q3']; $q4 = $_POST['q4']; $q5 = $_POST['q5']; $q6 = $_POST['q6']; $q7 = $_POST['q7']; $q8 = $_POST['q8']; $q9 = $_POST['q9']; $q10 = $_POST['q10']; } // Vyhodnoceni testu // if ($name == "") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $nn"); } if ($q1 != "Answer1") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q2 != "Answer1") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q3 != "Answer2") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q4 != "Answer2") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q5 != "Answer3") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q6 != "Answer3") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q7 != "Answer1") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q8 != "Answer3") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q9 != "Answer1") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($q10 != "Answer2") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba"); } if ($pravidla != "ano") { die ("<div style='text-align: center; color: yellow; width: 550px; margin: 0px auto'> $chyba2"); } { mysql_query("INSERT INTO whitelist (`Name`) VALUES ('$name')") or die ($error); echo $dobre; } ?> </span> </div> <!--<div class="okraj"> <!-- Okraj s css přidá cobl --> </div> <?php echo $majn ?> </body> </html> Web jinak můžete nalézt zde: http://whitelist.mcplanet.cz/ |
||
The1JJF1 Profil |
#4 · Zasláno: 12. 3. 2013, 16:24:58
Svůj problém sem vyřešil pomocí upravení kódu v tomto místě:
Původní kód: if (isset ($_POST['submit'])) { $name = $_POST['name']; $pravidla = $_POST['pravidla']; $q1 = $_POST['q1']; $q2 = $_POST['q2']; $q3 = $_POST['q3']; $q4 = $_POST['q4']; Opravený kód: $name = $_POST['name']; if (isset ($_POST['submit'])) { $pravidla = $_POST['pravidla']; $q1 = $_POST['q1']; $q2 = $_POST['q2']; $q3 = $_POST['q3']; $q4 = $_POST['q4']; Považuji tedy tento problém za vyřešený. |
||
user243 Profil |
#5 · Zasláno: 12. 3. 2013, 18:00:07
když vám to už funguje.... jen mi přijde pomalu zbytečná mít kontrolu js jen u jména (alert kontrola není košér); kontrola na straně serveru by šla napsat úhledněji a hlavně ta chybí nějaká kontrola, aby někdo neměl stejné jméno;
+ je tam 10 otázek se třemi možnostmi, to je tisíc možných variant a jak má dotyčný vědět, co udělal špatně, když se mu to neřekne; |
||
The1JJF1 Profil |
#6 · Zasláno: 12. 3. 2013, 22:21:18
Otázky sou vypsané v pravidlech na stránce pro kterou je tento test určen. Jedná se o kontrolní test, který má hráče kteří jsou "hovada" nepustit na server (Kdo zná, jedná se o Minecraft server).
Kontrolu na stejné jméno prvávě dělám, bude v celém testu zakomponován i odesílací script na email v případě: stejného jména, nebo když není funkční připojení k databázi. |
||
user243 Profil |
#7 · Zasláno: 13. 3. 2013, 05:42:32
pravidla jsem hledal a zjistil jsem jen, že je web a server momentálně nedostupný;
když by měl někdo už registrované jméno, tak bych dalšího jednoduše nepustil dál, dokud by se nelišilo (ne velikostí písmen) a mail bych v tomhle případě neposílal; možná by nebyla špatná i podmínka na minimální počet znaků; |
||
Časová prodleva: 11 let
|
0