Autor Zpráva
mardon
Profil
Mám skript.index.php, který mi provádí výpis certifikátů z db
pak mám skript addcert,php
ve kterém si zobrazju formulář pro zadání údajů do db
dokáže mi někdo poradit jak ošetřit formulář, aby kontroloval zda uživatel zadal všechny vstupní údaje správně

require_once ('dibi/dibi.php');
require_once ('init.php');



$cert = new certificat;
  if (empty ($_REQUEST["Name"]))
  {
$tpl = new cert_Smarty;

$tpl->assign('data',$result);
$tpl->assign('title', "Přidat certifikát");
$tpl->display('addcert.tpl');

  }
  else
  {
  $result = $cert->insert_cert($_REQUEST["ser"],$_REQUEST["Name"],$_REQUEST["email"],$_REQUEST["od"],$_REQUEST["do"]);
  }
kajaman
Profil
tohle moc nechápu, třeba vidím, že umíš použít fci empty(), takže co konkrétně nevíš?
mardon
Profil
ano testuji to pouze na prázdné Name, ale chtěla bych aby uživatel musel vyplnit všechny položky a pokud je nevyplní, aby se opět zobrazil formulář s údaji, které už zadal a teprve potom se údaje vložili do db, trochu mě totiž pletou ty smarty šablony
kajaman
Profil
no tak na prázdnou hodnotu otestuj všechny položky, jakože:

jestli je prázdné 'name' nebo je prázdný 'email'...

takto:
if (empty ($_REQUEST["Name"]) || empty($_REQUEST['email']) || .... )
mardon
Profil
|| empty($_REQUEST['email'])


ano to sice funguje, ale pokud neodeslu vyplnený formulář objeví se mi znova prázdný, bez těch hodnot, které jsem již zadala
a taky bych chtěla aby po vložení dat do db se mi zobrazil obsah skriptu index.php
tiso
Profil
http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=92881&forum=9&page=-1
imploder
Profil
mardon
ano to sice funguje, ale pokud neodeslu vyplnený formulář objeví se mi znova prázdný, bez těch hodnot, které jsem již zadala
Dej ty hodnoty, které byly už vyplněny, do formuláře vypsat. Takhle nějak:
<input type="text" name="Name" value="<?php if(isset($_REQUEST["Name"]) echo $_REQUEST["Name"]; ?>">
<input type="text" name="email" value="<?php if(isset($_REQUEST["email"]) echo $_REQUEST["email"]; ?>">
(...atd.)
kajaman
Profil
imploder
no ale ona tam má Smarty

mardon

asi takhle:
if (nejake udaje nejsou vyplneny) {
vrat se na formular, tj. vytvor objekt Smary a nacpi do nej hodnoty z $_REQUEST,
$tpl->assign('jmeno',$_REQUEST['jmeno']);

kter mas a zobraz tu sablonu
} else { //vsechny jsou vyplneny
uloz data do databaze
a vypis databazi) //nebo presmeruj header()
}
mardon
Profil
ted jeste koukam do te smarty sablony a nemelo by to nahodou fungovat s tim $post.Name ?

{include file='header.tpl'}
<form action="addcert.php" action="submit" method = "post">
    Jméno: <input type="text" name="Name" value="{$post.Name|escape}" size="40"><br />
    sériové číslo: <input type="text" name="ser" value="{$post.ser|escape}" size="40"><br />
    email: <input type="text" name="email" value="{$post.email|escape}" size="40"><br />
    Platnost od: <input type="text" name="od" value="{$post.od|escape}" size="40"><br />
    Paltnost do: <input type="text" name="do" value="{$post.do|escape}" size="40"><br />
    <input type="submit" value="Přidat">
</form>
	</body>
</html>

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: