| 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: 14 let
|
|||
0