Autor Zpráva
kozusnik
Profil
Dobrý den, na webu si dělám vlastní administraci...zrovna pracuji na tvorbě článku - vložení záznamu do DB.... jenže mi nefunguje kontrola pomocí podmínek, mohli byste to zkouknout a říct, kde je problém, popř. poradit nějaké lepší řešení?
<?php
if(isset($_POST['vytvorit']) && isset($_POST['nazev']) && isset($_POST['text'])) {
    $autor = "hanis";
    $timezone = new DateTimeZone( "Europe/Prague" ); 
    $date = new DateTime(); 
    $date->setTimezone( $timezone ); 
    $datum =  $date->format( 'd.m.Y  H:i' );
    $nazev = $_POST['nazev'];
    $text = $_POST['text'];
    echo $autor." ".$datum." ".$nazev." ".$text." ";
    $sql="insert into clanky (nazev, datum, autor, text) values ('$nazev', '$datum', '$autor', '$text')";
    $res = mysql_query($sql);
    }
elseif (!isset($_POST['nazev']) && !isset($_POST['text'])) {
echo' <form method="post" name="tvorba">
<table>
<tr><td>Nazev</td><td><input type="text" name="nazev" ></td></tr>
<tr><td>Text</td><td><textarea name="text" ></textarea></td></tr>
<tr><td>Odeslat</td><td><input type="submit" name="vytvorit" value="Vytvorit clanek"></td></tr>
</table>
</form>';
    if(isset($_POST['vytvorit'])) {
    echo "Něco jste nevyplnili!";
    }
    }
?>
Someone
Profil
kozusnik:
jenže mi nefunguje kontrola pomocí podmínek
Co přesně nefunguje?


řádek 14: elseif (!isset($_POST['nazev']) && !isset($_POST['text'])) { zde by nemělo být AND, ale OR


Ale jinak celkově, je to takové zmatené.
kozusnik
Profil
Má to fungovat na principu, že zkontroluje, jestli jsou vyplněna všechna pole, a formulář je odeslán, pokud není vyplněno jedno z polí (je jedno, jestli byl nebo nebyl formulář odeslán), tak to vypíše formulář; v té podmínce je ještě vnořena podmínka, ať můžu rozlišit, zda byl nebo nebyl formulář odeslán - pokud ano, tak to vypíše "Něco jste nevyplnili"...
Pokud vám to příjde zmatené, mohl byste mi navrhnout nějaký jiný model kontroly? Moc díky


Nefunguje to, že i když je nějaké pole nevyplněné, tak to udělá to samé, co když je pole vyplněné
Bertram
Profil
kozusnik:
Ahoj, máš na mysli toto funkčnost?
<?php
header('Content-Type: text/html; charset=utf-8');

if (isset($_POST['vytvorit'])) {
    if (trim($_POST['nazev']) == "") {
        $errors[] = "Název je povinný údaj";
    }
    if (trim($_POST['text']) == "") {
        $errors[] = "Text je povinný údaj";
    }
    if (!isset ($errors)) {
        $autor = "hanis";
        $timezone = new DateTimeZone("Europe/Prague");
        $date = new DateTime();
        $date->setTimezone($timezone);
        $datum = $date->format('d.m.Y  H:i');
        $nazev = $_POST['nazev'];
        $text = $_POST['text'];
        echo $autor . " " . $datum . " " . $nazev . " " . $text . " ";
        $sql = "insert into clanky (nazev, datum, autor, text) values ('$nazev', '$datum', '$autor', '$text')";
        $res = mysql_query($sql);
    } else {
        foreach ($errors as $error){
            echo $error."<br />";
        }
    }
}
?>
<form method="post" name="tvorba" action="">
    <table>
        <tr><td>Nazev</td><td><input type="text" name="nazev" ></td></tr>
        <tr><td>Text</td><td><textarea name="text" ></textarea></td></tr>
        <tr><td>Odeslat</td><td><input type="submit" name="vytvorit" value="Vytvorit clanek"></td></tr>
    </table>
</form>
kozusnik
Profil
Bertram:
Ano. Zkusím ten tvůj způsob a pak dám vědět.... zatím díky
kozusnik
Profil
Bertram:
Přesně tohle... Moc děkuju

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: