i'm trying to validate and redirect to another page with two variables(dates). The validation going well if i don't redirect the page. If i use
action = "pagingstatic.php"
The validation not working.
Here is the code:
<!DOCTYPE html>
<html>
<head>
<title>Въвеждане на дата</title>
<link rel="stylesheet" type="text/css" href="style.css">
<meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<?php
// define variables and set to empty values
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$from_dateErr = $to_dateErr = '';
$from_date = $to_date = '';
if ($_SERVER["REQUEST_METHOD"] == "GET")
{
$valid = true;
if (empty($_GET["from_date"]) or empty($_GET["to_date"])) {
$from_dateErr = "Задължително поле";
$to_dateErr = "Задължително поле";
} else {
$from_date = test_input($_GET["from_date"]);
$to_date = test_input($_GET["to_date"]);
// check if name only contains letters and whitespace
if (!preg_match("/[0-9\\-]/",$from_date)or !preg_match("/[0-9\\-]/",$to_date)) {
$from_dateErr = "формат: 0-9 и разделящи символи - и /";
$to_dateErr = "формат: 0-9 и разделящи символи - и /";
}
}
}
?>
<div class = "login-box">
<p class="headp">Язовир Искър</p>
<div class = "login">
<!--
action = "pagingstatic.php"
LOGO NEK <div class="image"></div> -->
<p>Зареждане на таблица от PostgreSQL по зададена дата.</p>
<p><span class="error">* required field.</span></p>
<form action = "pagingstatic.php" method = "GET">
<label for="odata">От дата</label>
<input type = "text" name = "from_date">
<span class="error">* <?php echo $from_dateErr;?></span>
<br />
<label for="odata">До дата</label>
<input type = "text" name = "to_date">
<span class="error">* <?php echo $from_dateErr;?></span>
<input type = "submit" name = "submit" value = "Покажи таблица">
</form>
</div>
</div>
<?php
echo "<h2>Your Input:</h2>";
echo $from_date;
echo "<br>";
echo $to_date;
echo "<br>";
echo $act;
?>
</body>
</html>
Can you give me any suggestions?
Thanks for the help! Here is the code:
<!DOCTYPE html>
<html>
<head>
<title>Въвеждане на дата</title>
<link rel="stylesheet" type="text/css" href="style.css">
<meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<?php
// define variables and set to empty values
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$from_dateErr = $to_dateErr = '';
$from_date = $to_date = $act = '';
if ($_SERVER["REQUEST_METHOD"] == "GET")
{
$valid = true;
if (empty($_GET["from_date"]) or empty($_GET["to_date"])) {
$from_dateErr = "Задължително поле";
$to_dateErr = "Задължително поле";
$valid = false;
} else {
$from_date = test_input($_GET["from_date"]);
$to_date = test_input($_GET["to_date"]);
// check if name only contains letters and whitespace
if (!preg_match("/[0-9\\-]/",$from_date)or !preg_match("/[0-9\\-]/",$to_date)) {
$from_dateErr = "формат: 0-9 и разделящи символи - и /";
$to_dateErr = "формат: 0-9 и разделящи символи - и /";
$valid = false;
}
}
//if valid then action redirect
if($valid){
header("location:pagingstatic.php?".$_SERVER['QUERY_STRING']);
exit();
}
}
?>
<div class = "login-box">
<p class="headp">Test</p>
<div class = "login">
<!--
action = "pagingstatic.php"
LOGO NEK <div class="image"></div> -->
<p>Зареждане на таблица от PostgreSQL по зададена дата.</p>
<p><span class="error">* required field.</span></p>
<form method = "GET">
<label for="odata">От дата</label>
<input type = "text" name = "from_date">
<span class="error">* <?php echo $from_dateErr;?></span>
<br />
<label for="odata">До дата</label>
<input type = "text" name = "to_date">
<span class="error">* <?php echo $from_dateErr;?></span>
<input type = "submit" name = "submit" value = "Покажи таблица">
</form>
</div>
</div>
<?php
echo "<h2>Your Input:</h2>";
echo $from_date;
echo "<br>";
echo $to_date;
echo "<br>";
echo $act;
?>
</body>
</html>