Autor Zpráva
lesiak307
Profil
Pozdravujem všetkých. Potreboval by som radu. Možno sa to niekomu bude zdať primitívne, ale PHP sa venujem asi pol roka... Podarila sa mi spraviť kniha návštev. Až po odoslanie príspevku je všetko v poriadku. Príspevok sa na stránke vypíše bez problémov. Problém nastáva vtedy ak v prehliadači dám SPAŤ. Príspevok neostane... :( A keďže aj v dnešnej dobe existujú maníci, ktorí nevyužívajú menu stránky, vidím v tom dosť veľký problém. Prosím Vás aké je najjednoduchšie riešenie... Ďakujem!!!

Tu je kód:

  <form action="XXXXXXXXXX.php" method="post">
      <table>
          <tr><td width="60">Nick:</td><td><input type="text" name="nick" size="20" value="<?echo $_POST["nick"];?>"<small><small><small> Max. 15 znakov!!!</small></small></small></td></tr>          
          <tr><td>Text:</td><td><textarea name="text" cols="60" rows="10"><?echo $_POST["text"];?></textarea></td></tr>
          <tr><td colspan="2" align="right"><input type="submit" value="Odoslat"> <input type="reset" value="Vymazať" ></td></tr>
          </form>
      </table>    
      
      <?php
          $spojenie = mysql_connect("              ");
          if(!$spojenie)                                                            // kontrola spojenia s databazou
              {
                echo "Chyba pri spojení s databázovým serverom : ". mysql_error();
                die;
              }
              
          $databaza = mysql_select_db("                ");
          if(!$databaza)                                                        // kontrola spojenia s tabulkou
              {
                echo "Chyba pri výbere tabuľky : ". mysql_error();
                die;
              }
          
          
          if(!$_POST)
          {         
          }
         
          else
          {
            $_POST["text"]=htmlspecialchars($_POST["text"]);
                
                if (strlen ($_POST["nick"])== 0 && strlen ($_POST["text"])==0)
                {
                 ?><font color="red"<b><?echo "Nič ste nezadali!!!"; ?></b></font><br><?
                }
                
                elseif (strlen ($_POST["nick"])==0 || strlen ($_POST["nick"])>15)   // kontrlola poctu znakov v NICK-u
                {
                 ?><font color="red"><b><?echo "NICK musí mať od 1 do 15 znakov!!!"; ?></font></b><br><?                 
                }
                
                elseif (($_POST["nick"]=="admin") || ($_POST["nick"]=="administrator") || ($_POST["nick"]=="Admin") || ($_POST["nick"]=="Administrator") || ($_POST["nick"]=="Administrátor"))
                {
                  ?><font color="red"><b><? echo "V tomto fóre nie ste oprávnení používať nick administrátora!!!"; ?></b></font><?
                }          
                
                elseif (strlen ($_POST["text"])==0 || strlen ($_POST["text"])>3000)
                {
                ?><font color="red"><b><?echo "Nezadali ste žiaden text, alebo text je príliš dlhý!!!"; ?></font></b><?
                }
                
                    
                
                else
                { 
                    mysql_query("INSERT INTO questbook VALUES ('','".$_POST['nick']."','".$_POST['text']."','".time()."')");  // vkladanie udajov do datab.       
                }
          }
           
          $vypis1 = mysql_query("SELECT * FROM questbook ORDER BY cas DESC");   // premenna ktora vybera udaje z databazy a usporiada ich podla casu
          
          while($vypis = mysql_fetch_array($vypis1)):                           // vypis udajov z databazy
          
          ?>                          
          
          <div id="forumtab">                                                   
                <table border="1" cellpadding="6" cellspacing="0" width="590" frame="void" rules="cols">                    
                    <tr><td width="110" align="right" valign="center" ><h3> <? echo $vypis['nick']?>:</h3></td><td align="left" valign="top"><? echo $vypis['text']?></td></tr>                                  
                    <tr><td background="forumcas.gif" width="110" align="right"><p>Pridané:</p></td><td  background="forumcas.gif"><p><? echo date("j.n Y",$vypis['cas'])." o ".date("G:i:s",$vypis['cas'])?></p></td></tr>
                </table>
                <br>
          </div>
          
            <? endwhile;
            ?>


Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
lesiak307:
Príspevok neostane...
Jestli to dobře překládám, jde o cache. Je to normální chování prohlížečů, když aktualizujete stránku (F5), měl by se objevit.
lesiak307
Profil
Asi sme sa trošku nepochopili. To reload (F5) ani nie je potrebne, prispevok sa uloží a je ho aj hneď vidieť. Ide o to, že ak dáte SPAŤ vymaže sa....
lesiak307
Profil
je to problém...
Jan Tvrdík
Profil
lesiak307:
Vidím to stejně jako Alphard.

ak dáte SPAŤ vymaže sa
Proč si myslíte, že se vymaže? Když dáte zpět a následně F5, tak se nezobrazí?
Alphard
Profil
Mám tady rozepsanou odpověď, tak to ještě pošlu.
lesiak307:
Ide o to, že ak dáte SPAŤ vymaže sa....
To snad ne, jen se načte minulá stránka z cache, na které ještě není. Když nyní stisknete F5, měl by se objevit. A později tam je, ne?
Zabránit se tomu dá těžko, mohl byste zakázat cache, ale nejsem si jist, jestli vás všechny prohlížeče poslechnou a mohlo by se to nepříznivě projeví na výkonu aplikace.
lesiak307
Profil
Takže takto... Ďakujem za radu. Veľmi mi to pomohlo. Prajem prijemne sviatky

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: