Autor Zpráva
Syntey
Profil
Zdravím. Mám problém s textarea. Kontroluju, zda se už odeslalo a poté se má obsah textarea zapsat do databáze, akorát dříve než to odešlu mi to už píše hlášky, že zápis do databáze se nezdařil aniž bych něco odeslal.
Zde je kód formuláře:
<form action="zadejnovinku.php" method="post">
Nadpis:<input type="text" name="nadpis" rows="10" cols="120"></textarea><br>
Text:<textarea name="text" rows="10" cols="120"></textarea>
<input name="submit" type="submit" value="Odeslat">
</form>
A zde php:
if(isset($_POST['submit']));
{
    if(!empty($_POST['nadpis'])) $nadpis = $_POST['nadpis'];
    else echo "Chyba! Nadpis novinky není vyplněn.";
    if(!empty($_POST['text'])) $obsah = $_POST['text']; 
    else echo "Chyba! Text novinky není vyplněn.";
    $datum = date();
    mysql_query("insert into novinky (nadpis, obsah, datum) values ('".$nadpis."', '".$obsah."', '".$datum."');", $GLOBALS["link"]);    
    $chyba = mysql_error($GLOBALS["link"]);
    if ($chyba==='')
    {
        $BudemeZobrazovat=false;
        echo "Novinka byla přidána.";
        $path=SubStr($_SERVER["SCRIPT_NAME"], 0, StrRPos($_SERVER["SCRIPT_NAME"],"/"))."/index.php?clanek=news";
        header("Location: .":".$_SERVER["SERVER_PORT"].$path]http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$path);
    }
    else     
    {
        echo "Novinka NEBYLA přidána. Databáze vrátila chybu<BR>";
        echo $chyba;    
    }
    
}
Kolemjdouci
Profil *
Na druhém řádku máš </textarea> ale začátek máš jako input. Dále využívat $global není moc vhodné.
Camo
Profil
Za prvou podmienkou máš bodkočiarku,
Funkcia strrpos sa píše malými písmenami....
Vo funkcii header máš blbo spojené reťazce
Syntey
Profil
Děkuji, vše opraveno a funguje. Měl jsem chybu fakt v tom $GLOBALS, nahradil jsem to samotným myslq_error().
Ještě bych měl otázku, co je na té funkci header špatně ? Inspiroval jsem se od Linuxsoftu..
EDIT: Zjistil jsem, že tady se to zobrazuje trochu špatně, akorát to nemůžu nějak předělat..
peta
Profil
Tak si to rozepis, ne?
$str = "Location: .":".$_SERVER["SERVER_PORT"].$path].":".$_SERVER["SERVER_PORT"].$path]http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$path;
echo $str; // co to vypise?
header($str);
nic, protoze to zvyraznene je chybny spojovaci znak, retezce se spojuji "aaa"."bbb" a ne "aaa":"bbb". A vubec, za tou dvojteckou je to cele divne.

"tady se to zobrazuje trochu špatně"
Nezobrazuje, vsimni si, jak obarvil kod a z toho plyne, ze ty to mas spatne zapsane a ne, ze to zobrazuje forum spatne. Kdyz si neveris ve spojovani retezcu, muzes pouzit sprintf() nebo vsprintf().
$str = sprintf("Location: http://%s:%s%s", $_SERVER["SERVER_NAME"], $_SERVER["SERVER_PORT"], $path);
---
Koukammm, ze forum si z toho zapisu ($str = "Location:...) dela, co chce, pri kazde uprave to klonuje cast textu :)
Moderátor Chamurappi: V sandboxu je to opravené.

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: