Autor Zpráva
panmagor
Profil *
Mám odesílací formulář, který kontroluje obsah textu v inputu pomocí JavaScriptu.. V případě že není něco zadáno, zobrazí se JS hláška. Bohužel dál nevím, jak v PHP zakombinovat, že pokud se zobrazí tato hláška, nemá se obsah zapsat do databáze.. Berte prosím na vědomí, že jsem v PHP naprostý lolek a tímto způsobem se ho učím. Proto bych byl rád, kdyby jste se vyvarovali "slangu" apod.. Já bych to prostě nepochopil :-)


<?php
//Pripojeni k databazi, vcetne chybovych hlasek
$conn = mysql_connect("server", "user", "heslo");
mysql_query("SET CHARACTER SET utf8");
if(!$conn):
echo "Problém s připojováním k db...";
else:
$db = mysql_select_db("databaze");
if(!$db):
echo "Problém při vybírání db...";
endif;
endif;
//Kontrola jestli byl formular odeslan
if ($odeslane=="ano"){
//Zapis udaju do databaze
$dotaz = mysql_query("INSERT INTO formular VALUES('$jmeno', '$email')");
//V pripade ze byl uspech, vypiseme hlasku
echo "Děkujeme za odeslání!";
//Pokud se neco nepodarilo, pokracujeme zde..
}else{
//Opet kontrola, jestli bylo odeslano. Jinak se hlaska vypise pri spusteni stranky.
if ($odeslane=="ano")
if(!$dotaz)
echo "Vzkaz se bohužel nepodařilo uložit. Zkuste to jindy. <A HREF='javascript:history.back();'>Zpět</A>";
}

?>
Matty
Profil
panmagor
Co k tomu přidat
if ($policko !=='') {
--tady dalsi kod--
} else {
echo 'Nevyplnili jste políčko';
}
panmagor
Profil *
Nevím, jestli by to takto šlo.. Kontrola se provádí pomocí toho externího JS takto (kontrola na vyplněné jméno):

if(f.jmeno.value == ""){
alert("Nebylo vyplňeno jméno!.");
f.spol_nazev.focus();
return false;
}
Matty
Profil
panmagor
Já jsem myslel, že by tam byla jak kontrola JS, tak kontrola pomocí PHP.
panmagor
Profil *
A je to... Možná trocu prasácky..

<?php
//Pripojeni k databazi, vcetne chybovych hlasek
$conn = mysql_connect("", "", "");
mysql_query("SET CHARACTER SET utf8");
if(!$conn):
echo "Problém s připojováním k db...";
else:
$db = mysql_select_db("");
if(!$db):
echo "Problém při vybírání db...";
endif;
endif;
if ($odeslane=="ano")
if ($jmeno ==''|| $email =='') {
echo "Vzkaz se bohužel nepodařilo uložit. Zkuste to jindy. <A HREF='javascript:history.back();'>Zpět</A>";

}else{

if ($odeslane=="ano"){
//Zapis udaju do databaze
$dotaz = mysql_query("INSERT INTO formular VALUES('$jmeno', '$email')");
//V pripade ze byl uspech, vypiseme hlasku
echo "Děkujeme za odeslání!";
//Pokud se neco nepodarilo, pokracujeme zde..
}else{
//Opet kontrola, jestli bylo odeslano. Jinak se hlaska vypise pri spusteni stranky.
if ($odeslane=="ano")
if(!$dotaz)
echo "Vzkaz se bohužel nepodařilo uložit. Zkuste to jindy. <A HREF='javascript:history.back();'>Zpět</A>";
}
}



?>
vertigo4
Profil
panmagor
chce to ještě ošetřit pomocí fce trim, protože ten tvůj skript selhává, jestliže někdo vloží mezeru
panmagor
Profil *
Speifikujte prosím co myslíte tou mezerou?
Venca V
Profil
mezera=výsledek stlačení té nejdelší klávesy na klávesnici;-)
panmagor
Profil *
:-) Já myslel třeba tvrdou mezeru.. že je to bude reagovat na takovou banalitu by mě ani nanapadlo.. Ale máte pravdu..
panmagor
Profil *
Tak jsem do SQL dotazu zařadil ten trim následovně a zdá se, že to funguje. Akorát je třeba ještě doladit validační hlášku, protože do DB to nezapíše, ale zobrazí že bylo zapsáno :-)

$dotaz = mysql_query("INSERT INTO formular VALUES('$trimmed = trim($jmeno)', '$trimmed = trim($email'))");
panmagor
Profil *
Jo změna.. Tak teď mi to neuloží nic :-D :-D No nic. Mrku na to zítra. Ráno moudřejší večera

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: