Autor Zpráva
The1JJF1
Profil
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
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>
Jak říkám vše funguje, až na to blbé jméno.. to tu je vypsáno. Ostatní otázky považuji za zbytečné vypisovat když u nich vše funguje jak má.

Web jinak můžete nalézt zde: http://whitelist.mcplanet.cz/
The1JJF1
Profil
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
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
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
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ů;

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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