Autor Zpráva
rybarada
Profil
Zdravím, mám formulář, který vkládá údaje z formuláře a potřebuju udělat, aby uživatel pomocí select a option vybralsoubor, do kterého se budou ostatní data z formulář ukládat. Například vyberu kategorii kultura, takže e-mail a webová stránka se bude ukládat do kultura.txt. Dík za pomoc
Kód:
<?php
    if(!empty($_POST['odeslano'])) {
        if(trim($_POST['jmeno']) == "" || trim($_POST['text']) == "") {
            $chyba = '<font size="5" face="Arial">Nejsou zadána všechny pole</font><p/>';
        } else {
            $zprava = '<div class="zprava"><!--<div>e-mail: ' . $_POST['jmeno'] . '</div>--><div class="text"><a href="' . $_POST['text'] . '">' . $_POST['text'] . '</a></div>' ;
            $obsah = file_get_contents('databaze.txt');
            $uloz = $zprava . $obsah;
            file_put_contents('databaze.txt',$uloz);
            $uspech = '<font size="5" face="Arial">Webová stránka byla vložena</font><p/>';
        }
    }
    if(!file_exists('databaze.txt')) {
        file_put_contents('databaze.txt','');
    }
    $obsah = file_get_contents('databaze.txt');
?>

<html>
    <head>
        <title>Webový katalog stránek - Přidat stránku</title>
        
        <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: 400px; 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}
        </style>
    </head>
    
    <body>
            <font face="arial">
        
            <center>
                <div id="pozadi">
                    <img src="file/logo.png">
                </div>
            </center>
        
            <p/>
        
            <div id="kategorie">
                <div style="position: absolute; left: 20px; top: 180px">
            
                <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="ostatni.php">Ostatní</a><p/>
                </div>
            </div>
        
            <img src="file/tlacitko3.png" style="position: absolute; top: 130px; right: 400px">
        
            <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>
                            </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>E-mail (nebude zveřejněn): </td><td><input name="jmeno" size="20"></td></tr>
                    <tr><td>Webová stránka: </td><td><input name="text" size="20" value="http://"></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="reklmana-privydelek">Reklama / Přivýdělek</option>
                        <option value="ostatni">Ostatní</option>
                    </select></tr></tr>
                    <tr><td></td><td><input type="submit" value="Přidat" name="odeslano"></td></tr>
                </table>
            </form>
        </div>
        
        <div class="databaze">
            
        </div>
        </font>

    </body>
</html>
jenikkozak
Profil
rybarada:
Do 6. řádku včleň položku $_POST['kategorie'] tam, kde (respektive jak) ji chceš ve výpisu zobrazovat.
Mimochodem ten e-mail je zveřejněn ve zdrojovém kódu. A roboti čtou zdrojový kód. Informace, že e-mail nebude zveřejněn, tudíž není pravdivá.
rybarada
Profil
jenikkozak:
napíšeš mi tedy prosím, jak ten 6. řádek bude vypadat?
jenikkozak
Profil
Nevím, jak to chceš. Může to být třeba takto:
$zprava = '<div class="zprava"><!--<div>e-mail: ' . $_POST['jmeno'] . '</div>--><div class="text"><a href="' . $_POST['text'] . '">' . $_POST['text'] . '</a> Kategorie: ' . $_POST['kategorie'] . '</div>' ;
rybarada
Profil
jenikkozak:
nene, já chci, aby e-mail a webová stránka se uložila dosouboru, který je vybrán jako kategorie. Např. když vybereme kultura v kategorii, tak se e-mail a web uloží do kultura.txt a když např. zábava, takdo zabava.txt
jenikkozak
Profil
rybarada:
Jej, pardón.

Bude potřeba ověřit, zda poslaná hodnota je v seznamu povolených kategorií. Což uděláme tak, že kategorie vložíme do pole. Pokud odeslaná položka bude v poli, můžeme ji použít jako název souboru k úpravám. V opačném případě budeme ukládat do souboru databaze.txt:

$kategorie=array(0 => "kultura", "zabava", "vzdelani","e-shopy","deti","reklmana-privydelek"); //poslední položka obsahuje překlep
if(in_array($_POST["kategorie"],$kategorie)){$nazev_souboru=$_POST["kategorie"];} else {$nazev_souboru="databaze";}
$obsah = file_get_contents($nazev_souboru.'.txt'); //tohle je už upravený tvůj řádek 7
            $uloz = $zprava . $obsah;
            file_put_contents($nazev_souboru.'.txt',$uloz); //upravený řádek 9
rybarada
Profil
dik
Toto téma je uzamčeno. Odpověď nelze zaslat.