I have to display a server-side validation error message which is working perfectly if I write both codes(HTML and PHP) on a single page.
Now I have index.php and process.php pages. I have to pass server-side validation error message from process.php to index.php. Without using Ajax. would you help me in this?
index.php
<?php
include('../../db/connection.php');
$fname_error="";
$email_error="";
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="process.php" method="post">
<input type="text" name="fname" value="<?php if(isset($fname)){echo $fname;} ?>">
<span class="error"><?php echo $fname_error;?></span>
<input type="email" name="email" value="<?php if(isset($email)){echo $email;}?>">
<span class="error"><?php echo $email_error;?></span>
<input type="submit" name="submit">
</form>
</body>
</html>
Process.php
<?php
include('../../db/connection.php');
if (isset($_POST['submit'])) {
$fname=trim($_POST['fname']);
$email=trim($_POST['email']);
if (empty($fname)) {
$fname_error="Name is empty";
}
else
{
if ($fname<3) {
$fname_error="Please enter minimum 3 character";
}
}
if (empty($email)) {
$email_error="Email field is empty";
}
else
{
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$email_error="Invalid email format";
}
}
// insert code here
}
?>
Use SESSIONS to achive this. Try following Code:
index.php
<?php
session_start();
include('../../db/connection.php');
$fname_error= $_SESSION['fname'];
$email_error= $_SESSION['email_error'];
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="process.php" method="post">
<input type="text" name="fname" value="<?php if(isset($fname)){echo $fname;} ?>">
<span class="error"><?php echo $fname_error;?></span>
<input type="email" name="email" value="<?php if(isset($email)){echo $email;}?>">
<span class="error"><?php echo $email_error;?></span>
<input type="submit" name="submit">
</form>
</body>
</html>
<?php
unset($_SESSION['fname']);
unset($_SESSION['email_error']);
?>
process.php
<?php
session_start();
include('../../db/connection.php');
if (isset($_POST['submit'])) {
$fname=trim($_POST['fname']);
$email=trim($_POST['email']);
if (empty($fname)) {
$_SESSION['fname'] ="Name is empty";
header('location:index.php');
}
else
{
if ($fname<3) {
$_SESSION['fname'] ="Please enter minimum 3 character";
header('location:index.php');
}
}
if (empty($email)) {
$_SESSION['email_error'] ="Email field is empty";
header('location:index.php');
}
else
{
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$_SESSION['email_error']="Invalid email format";
header('location:index.php');
}
}
// insert code here
}
?>