Autor Zpráva
dragon124
Profil
Dobrý den,
Chtěl bych udělat dotazník. Jeho kod je zde:
<html>
<?
session_start();
?>
<style>
body {
        background-image: "background.jpg"; 
        background-color: black; /* případná barva pozadí černá */
        color: white; } /* bílý text */
</style>
<head>

</head>
<body>
<div>

</div>

  <div  style="display: table; height: 100%; #position: relative; overflow: hidden; margin: auto; width: 300px;">
    <div style=" _position: absolute; #top: 50%;display: table-cell; vertical-align: middle; margin: auto; width: 300px;">
      <div style=" #position: relative; #top: -50%; margin: auto; width: 300px;">
                                     <?  
                                       $_SESSION["otazka"];
                                       $_SESSION["vek"];
                                       $otazka = 1;
                                       $vek = 75;
                                       while(true){
                                       switch($otazka) {
                                           
                                           case 1:
                                                   echo '
                                                    <form>
                                                       <input type="radio" name="radio" value="2">1a<br>

                                                            <input type="radio" name="radio" value="0">1b<br>

                                                            <input type="radio" name="radio" value="-1">1c<br>

                                                            <input type="radio" name="radio" value="-2">1d<br>
                                                            
                                                            <input type="image" src="next.png"> 
                                                            </form>';
                                                            
                                                            if(isset($_get['radio'])){                                                            
                                                                    $vek += $_get['radio'];
                                                                    $otazka++;
                                                            }
                                                            break;
                                             case 2:
                                                   echo '
                                                    <form>
                                                       <input type="radio" name="radio" value="2">2a<br>

                                                            <input type="radio" name="radio" value="0">2b<br>

                                                            <input type="radio" name="radio" value="-1">2c<br>

                                                            <input type="radio" name="radio" value="-2">2d<br>
                                                            
                                                            <input type="image" src="next.png""> 
                                                            </form>';

                                                            if(isset($_get['radio'])){                                                            
                                                                    $vek += $_get['radio'];
                                                                    $otazka++;
                                                            }
                                                            break;
                                   }
                                   }

                               ?>
     </div>
      </div>
       </div>

    </body>
</html>
</html>
Bohužel, nic se nezobrazuje, takže to vypadá asi takto.
Předem děkuji za všechny odpovědi
Rellik
Profil
Funkce session_register() se už nepoužívá. A z nového PHP 5.4 je dokonce odstraněna a proto ti to možná nefunguje...
dragon124
Profil
Tak to jsem již udělal, ale funguje to úplně stejně.
mimochodec
Profil
dragon124:
aha, a jak mam teda tu sesion zaregistrovat?

Na http://cz1.php.net/function.session_start jsou příklady.
dragon124
Profil
To jsem již udělal, ale nedělá to vůbec nic
abc
Profil
Řekl bych, že while(true) {... Určitě způsobuje dost problémů
dragon124
Profil
Dyt to má bejt nekonečná smyčka... zkrátka se při dalšim vykonání vždy posune o jednu otázku dále a po otázce poslední to zobrazí výsledky a už se to v té smyčce nebude posouvat...
když s ním dělám cokoliv, tak dokud tam ten cyklus je, ak to nedělá nic a pokud tam neni, tak zůstanu na první otázce. Už mě napadá jediný způsob jak to vyřešit (i když není moc hezký) a to je s pomocí fnkce goto.
mimochodec
Profil
dragon124:
Dyt to má bejt nekonečná smyčka... zkrátka se při dalšim vykonání vždy posune o jednu otázku dále a po otázce poslední to zobrazí výsledky a už se to v té smyčce nebude posouvat...

Tak nekonečná nebo konečná?
Špatným způsobem používáš nejen session. Nikde nepředáváš hodnotu pro proměnnou $otazka. Obrázek se šipkou nahraď submitem ( Formuláře v HTML) a nějakým způsobem (třeba pomocí input type="hidden") předej číslo kroku (příklad je na stejné stránce).
dragon124
Profil
a proč nemam používat session?jaký nesou nevýhody?
Amunak
Profil
dragon124:
Dyt to má bejt nekonečná smyčka... zkrátka se při dalšim vykonání vždy posune o jednu otázku dále a po otázce poslední to zobrazí výsledky a už se to v té smyčce nebude posouvat...
Takhle php nefunguje. To co je v [#1] nebude fungovat, protože
1) tam máš nekonečnou smyčku která se nikdy neukončí (resp. až když dojde skriptu čas nebo paměť) a je to nehorázná prasárna
2) používáš krátký otevírací tag, což bych nedoporučoval
3) máš tam divnou logiku toho skriptu (doteď nevím co to vlastně má dělat - jde jen o "stránkování" otázek?)
4) je to celé zprasené (mícháš dohromady layout s php takovým dost ošklivým způsobem)

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: