Odeslání prázdného záznamu

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Zamčeno
honza007100
Level 1.5
Level 1.5
Příspěvky: 139
Registrován: 25 zář 2011 14:25

Odeslání prázdného záznamu

Příspěvek od honza007100 »

Zdar, mám tohle

Kód: Vybrat vše

<form method=POST><center>
<table bordercolor="#3d3d3d" cellspacing="5px">
	<tr><td><center>Datum</center></tr>
	<tr><td><input type="text" name="datum" required></tr>
	<tr><td><center>Čas</center></tr>
	<tr><td><input type="text" name="cas" required></tr>
	<tr><td><center><input type="submit" value="Odeslat" id="submit" name="sumbit" ></center></tr>
</table>
</center></form>
<?php
   $db_host = "localhost";
   $db_user = "**";
   $db_pass = "**";
   $db_name = "**";
   $datum = $_POST['datum'];
   $cas = $_POST['cas'];
   mysql_connect($db_host,$db_user,$db_pass);
   mysql_select_db($db_name);
   mysql_query("INSERT INTO tabulka(Datum,Cas) VALUES('".$datum."','".$cas."')");
?>
Začínám v PHP a potřeboval bych, aby když přijdu na stránku s tímto formulářem to neodeslalo hned prázdný záznam. Co tam mám přidat?
Uživatelský avatar
LuCaCZ
Level 3.5
Level 3.5
Příspěvky: 929
Registrován: 21 bře 2011 00:02

Re: Odeslání prázdného záznamu

Příspěvek od LuCaCZ »

Kód: Vybrat vše

<?php
if ($_POST['submit']) {
   $db_host = "localhost";
   $db_user = "**";
   $db_pass = "**";
   $db_name = "**";
   $datum = $_POST['datum'];
   $cas = $_POST['cas'];
   mysql_connect($db_host,$db_user,$db_pass);
   mysql_select_db($db_name);
   mysql_query("INSERT INTO tabulka(Datum,Cas) VALUES('".$datum."','".$cas."')");
}
?>
nejdřív si ale oprav překlep name="sumbit"
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Odeslání prázdného záznamu

Příspěvek od CZechBoY »

čau,
jde to třeba takhle:

Kód: Vybrat vše

<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<title>zkouška formuláře</title>
</head>
<body>
<?php
$chyby = array();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  if (empty($_POST['datum'])) {
    $chyby['datum'] = 'Chybí datum';
  }
  if (empty($_POST['cas'])) {
    $chyby['cas'] = 'Chybí čas';
  }
  
  if (empty($chyby)) {
    $db_host = "localhost";
    $db_user = "**";
    $db_pass = "**";
    $db_name = "**";

    $mysql = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
    mysqli_set_charset($mysql, 'utf8');

    $datum = mysqli_real_escape_string($mysql, $_POST['datum']);
    $cas = mysqli_real_escape_string($mysql, $_POST['cas']);

    mysqli_query($mysql, "INSERT INTO tabulka(Datum,Cas) VALUES('" . $datum . "', '" . $cas . "')");

    mysqli_close($mysql);
  }
}
?>
<form action="formular.php" method="post">
  <table>
    <tr class="label"><td>Datum</td></tr>
    <?php if (isset($chyby['datum'])) { ?>
    <tr class="error"><td><?php echo $chyby['datum']; ?></td></tr>
    <?php } ?>
    <tr><td><input type="date" name="datum" required></td></tr>
    <tr class="label"><td>Čas</td></tr>
    <?php if (isset($chyby['cas'])) { ?>
    <tr class="error"><td><?php echo $chyby['cas']; ?></td></tr>
    <?php } ?>
    <tr><td><input type="time" name="cas" required></td></tr>
    <tr><td><button type="submit">Odeslat</button></td></tr>
  </table>
</form>

</body>
</html>
Případně si tam ještě můžeš dodělat vkládání odeslané hodnoty do inputů při chybě ;-)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
honza007100
Level 1.5
Level 1.5
Příspěvky: 139
Registrován: 25 zář 2011 14:25

Re: Odeslání prázdného záznamu

Příspěvek od honza007100 »

LuCaCZ píše:

Kód: Vybrat vše

<?php
if ($_POST['submit']) {
   $db_host = "localhost";
   $db_user = "**";
   $db_pass = "**";
   $db_name = "**";
   $datum = $_POST['datum'];
   $cas = $_POST['cas'];
   mysql_connect($db_host,$db_user,$db_pass);
   mysql_select_db($db_name);
   mysql_query("INSERT INTO tabulka(Datum,Cas) VALUES('".$datum."','".$cas."')");
}
?>
nejdřív si ale oprav překlep name="sumbit"
Vždyť je to správně :D:D:D


CZechBoY, díky moc, pomohlo.
Zamčeno

Zpět na „Programování a tvorba webu“