Autor Zpráva
rybarada
Profil
Zdravím, mám opět problém: Mám <textarea name="popis" maxlength="250" cols="45" rows="7"></textarea> a potřebuju poradit, jak udělat, aby při stisknutí např.: * se prostě v textovém poli nezobrazila. Jak na to? Dík
Amunak
Profil
rybarada:
K čemu to potřebuješ? Chceš používat klávesové zkratky, nebo ti jde o to, aby to nešlo vyplnit do toho pole? Každopádně můžeš použít javascript a na onkeyup navázat nahrazení toho zakázaného znaku za nic. Musíš ale pak provést taky kontrolu na serveru, protože se tam ten znak bude i tak dát podstrčit.
rybarada
Profil
Potřebuju to, protože doteď mohou lidi vkládat na web html a php, což bez znaků < a > nejde, poradíš?
Amunak
Profil
rybarada:
ano, nepoužívej eval/ošetři si vstupy. Pokud rovnou dovolíš upravovat nějaký includovaný soubor, není to úplně šikovné, ale bude stačit ošetřit vstupy. Pokud někde používáš eval, tak to vyřeš lépe.

Vstupy ošetříš jednoduše tak, že data která v PHP dostaneš projedeš funkcí htmlspecialchars.
rybarada
Profil
promiň, je mi 13, nezadal bys mi todo tohoto kodu? Dik
<?php
    if(!empty($_POST['odeslano'])) {
        
        if(trim($_POST['text']) == "" || trim($_POST['popis']) == "") {
            $chyba = '<font size="5" face="Arial">Nejsou zadána všechny pole</font><p/>';
        } else {
            $zprava = '<p/><div><b>Web</b>: <a href="' . $_POST['text'] . '">' . $_POST['text'] . '</a></div><p/><div><b>Popis</b>: ' .  $_POST['popis'] . '</div><p/><hr width="400">';
            $kategorie=array(0 => "kultura", "zabava", "vzdelani", "e-shopy", "deti", "reklama-privydelek", "sluzby", "ostatni"); 
if(in_array($_POST["kategorie"],$kategorie)){$nazev_souboru=$_POST["kategorie"];} else {$nazev_souboru="databaze";}
@$obsah = file_get_contents($nazev_souboru.'.txt');
            $uloz = $zprava . $obsah;
                        $uloz = $zprava . $obsah;
            file_put_contents($nazev_souboru.'.txt',$uloz); 
            $uspech = '<font size="5" face="Arial">Webová stránka byla vložena</font><p/>';
        }
    }
/*    if(!file_exists($_POST["kategorie"])) {
        @file_put_contents($_POST["kategorie"],'');
    }
    @$obsah = file_get_contents($_POST["kategorie"]);*/
?>

<html>
    <head>
        <title>Katalog českých webových stránek - Přidat stránku</title>
        
        
                <meta name="description" xml:lang="cs" lang="cs" content="Katalog českých webový stránek - Přidat stránku " />
                <meta name="keywords" content="katalog, katalog webů, katalog stránek, katalog českých webových stránek">

        <style>    
            a:link {color: grey}
            a:visited {color: grey}
            a:active {color: grey}
            a:link, a:visited {text-decoration: none}
            a:hover {color: black}
            a:vlink {color: grey}
        
            #menu {width: 450px; height: 38px; background: url(file/tlacitko.png)}
            #menu ul {margin: 0; padding-left: 0px; margin-left: 0px}
            #menu a {text-decoration: none;    height: 38px; float: left; line-height: 38px; margin: 0px 0; padding: 0 1em; background: url(file/tlacitko.png); color: gray}
            #menu a:hover {background: #def url(file/tlacitko2.png) 0 38px;    color: black}
            #menu a:active {background: #def url(file/tlacitko2.png) 0 38px; color: black}
            #menu a:focus {background: #def url(file/tlacitko2.png) 0 38px;    color: black}
            
            #pozadi {background-image: url('file/pozadi.png')}
            #kategorie {width: 221px; height: 346px; background-image: url('file/kategorie.png'); border: none}
            
            #pata {width: 100%; height: 40px; overflow: hidden; position: absolute; bottom: -100; left: 0; text-align: center;}
        </style>
    </head>
    
    <body>
            <font face="arial">
        
            <center>
                <div id="pozadi">
                    <img src="file/logo.png">
                </div>
            </center>
        
            
        
            <p style="height:20px"></p>
        <div id="kategorie">
            <div style="position: absolute; left: 20px; top: 220px">
            
                <a href="kultura.php">Kultura</a><p/>
                <a href="zabava.php">Zábava</a><p/>
                <a href="vzdelani.php">Vzdělání</a><p/>
                <a href="e-shopy.php">E-shopy</a><p/>
                <a href="deti.php">Děti</a><p/>
                <a href="reklama-privydelek.php">Reklama / Přivýdělek</a><p/>
                <a href="sluzby.php">Služby</a><p/>
                <a href="ostatni.php">Ostatní</a><p/>
                </div>
                
        </div>
        
        <p/><?php include ("pocitadlo.php"); ?>
        
            <img src="file/tlacitko3.png" style="position: absolute; top: 130px; right: 450px">
        
            <div style="position: absolute; top: 130px; right: 10px">
                <div id="menu">
                    <font face="arial">
                        <b>
                            <ul>
                                <a href="index.php">Home</a>
                                <a href="pridat.php">Přidat stránku</a>
                                <a href="kontakt.php">Kontakt</a>
                                <a href="nahlasit.php" onclick="window.open('nahlasit.php','_blank','menubar=no,scrollbars=yes,top=100,left=200,width=500,height=300'); return false">Nahlásit web</a>
                            </ul>
                        </b>
                    </font>
                </div>
            </div>
        <div style="position: absolute; left: 300px; top: 190px">
        
            <?php
                if(isset($chyba)) {
            ?>

            <div class="chyba"><?php echo $chyba; ?></div>

            <?php
                }
            ?>

            <?php
                if(isset($uspech)) {
            ?>

            <div class="uspech"><?php echo $uspech; ?></div>

            <?php
                }
            ?>
    
            <form action="" method="POST">
                <table>
                    <tr><td>Webová stránka: </td><td><input name="text" size="20" value="http://"></td></tr>
                    <tr><td>Popis webu: </td><td><textarea name="popis" maxlength="250" cols="45" rows="7"></textarea></td></tr>
                    <tr><td></td><td><font size="-1">Omezeno na 250 znaků</font></td></tr>
                    <tr><td></td><td></td></tr>
                    <tr><td>Kategorie: </td><td><select name="kategorie" size="1">
                        <option value="kultura">Kultura</option>
                        <option value="zabava">Zábava</option>
                        <option value="vzdelani">Vzdělání</option>
                        <option value="e-shopy">E-shopy</option>
                        <option value="deti">Děti</option>
                        <option value="reklama-privydelek">Reklama / Přivýdělek</option>
                        <option value="sluzby">Služby</option>
                        <option value="ostatni">Ostatní</option>
                        </select></td></tr>
                    <tr><td></td><td><input type="submit" value="Přidat" name="odeslano"></td></tr>
                </table>
            </form>
        </div>
        
        <div class="databaze">
            
        </div>
        
        <div id="pata">
        <hr><small>Copyright &copy; 2012, Katalog-web.cz</small>
        </div>
        
        
        <div style="position: absolute; left: 10px; top: 100px"><? include ("vyhledavani.php"); ?></div>
        </font>
    </body>
</html>
Amunak
Profil
rybarada:
Promiň, nezadal, v tom kódu se nevyznám. Jenom vím, že bys neměl používat potlačování chyb (zavináč), naučit se používat empty, CSS, správně zapisovat ukončovací značky a psát čitelný a bezpečný kód. V celé větvi else (začíná na 6. řádku) můžeš zkusit obalit všechny $_POSTy htmlspecialchars().
rybarada
Profil
Amunak:
a jak obalit, prosím o příklad :)


funguje, dik
Toto téma je uzamčeno. Odpověď nelze zaslat.

0