I am a newbie. I would like to know where in my code the form went wrong.
<?php
if(isset($_POST['submit'])) {
$arrayName = array("TeacherA", "TeacherB", "TeacherC" , "TeacherD", "TeacherE");
$minimum = 5;
$maximum = 10;
$name = $_POST['yourName'];
$email = $_POST['yourEmail'];
if(strlen($name) < $minimum) {
echo "Your name should be longer than 5 characters";
}
if(strlen($name) > $maximum) {
echo "Your name should not be longer than 10 characters";
}
if(!in_array($name,$arrayName)){
echo "Please do register with us before you can login";
} else {
echo "Welcome!";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blank</title>
</head>
<body>
<form action="form.php" method="post">
<label>Your Name: </label>
<input type="text" name="yourName"> <br>
<label for="">Your E mail:</label>
<input type="email" name="yourEmail" id=""><br>
<!-- <textarea name="yourMessage" id="" cols="30" rows="10"></textarea><br> -->
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
I run through the localhost, however, I could not get result that I wanted.
The result that I wanted is if I didn't enter the names in the "Your Name" field, then it should show the result:
Please do register with us before you can login
Please help as I just started begin to learn about PHP.
Thanks
CodePudding user response:
if the the "Your Name" field is empty, then its strlen($name)
should be 0
and the first if statement is true and it will show Your name should be longer than 5 characters
you can try this :
`<?php
if (isset($_POST['submit'])) {
$arrayName = array("TeacherA", "TeacherB", "TeacherC", "TeacherD", "TeacherE");
$minimum = 5;
$maximum = 10;
$name = $_POST['yourName'];
$email = $_POST['yourEmail'];
if (empty($name)) {
echo "Please do register with us before you can login";
} else {
if (strlen($name) < $minimum) {
echo "Your name should be longer than 5 characters";
} else {
if (strlen($name) > $maximum) {
echo "Your name should be less than 10 characters";
} else {
if (in_array($name, $arrayName)) {
echo "Welcome!";
} else {
echo "Your login is not correct";
}
}
}
}
}
?> `
i used empty()
to test if the field empty
and i used if-else statements because i want the script to stop if it founds a 'true' condition
in your script you can use return;
but that will exit the rest of your script
have a nice code :)
CodePudding user response:
Try this:
if(!isset($name)){
echo "Please do register with us before you can login";
}
else{
echo "Welcome";
}
And also:
<input type="text" name="yourName" required>