DjKillerMemeStar
DjKillerMemeStar

Reputation: 425

php conflicting with html

So i have a file with PHP and HTML in it. The HTML works fine but when i enter the PHP it does not render anything for some reason. See code for beter refrence. Also logs don't really say anything about the issue.

This fails to do anything

<?php

echo $_POST['naam'];
die();

?>

<!DOCTYPE html>
<html>
<head>
    <title>Scouts Permeke</title>
    <link rel="stylesheet" type="text/css" href="siteStyle.css">
</head>
<body>
    <H2>Login</H2>

    <form action="login.php" method="POST">
        <input name="naam" type="text" id="naam" class="form-control" placeholder="Gebruikersnaam"/><br>
        <input name="psw" type="password" id="psw" class="form-control" placeholder="Passwoord"/><br>
        <button type="submit">Login</button>
    </form>	
</body>
</html>

But this shows my HTML as intended.

<!DOCTYPE html>
<html>
<head>
    <title>Scouts Permeke</title>
    <link rel="stylesheet" type="text/css" href="siteStyle.css">
</head>
<body>
    <H2>Login</H2>

    <form action="login.php" method="POST">
        <input name="naam" type="text" id="naam" class="form-control" placeholder="Gebruikersnaam"/><br>
        <input name="psw" type="password" id="psw" class="form-control" placeholder="Passwoord"/><br>
        <button type="submit">Login</button>
    </form>	
</body>
</html>

Upvotes: 0

Views: 97

Answers (2)

Ravi Rajendra
Ravi Rajendra

Reputation: 718

That is because it is ignoring an error as the $_POST array doesn't have the "naam" variable and your php.ini for display error is off. In php, if the array doesn't contain the key it will throw error and in this the error is ignored because of the production settings. Also, this is the reason why the "die();" line is not interpreted. Please check if php.ini has or commented

display_errors: Off

and make it into

display_errors: On

Restart apache to getting the settings work.

You can also remove/comment the first line of code in PHP tag and see if die() is working. Please do let us know if this fixed your error.

Upvotes: 0

ByteBit
ByteBit

Reputation: 332

You need to check if the variable is actually set, otherwise it will always print out the content of $_POST['naam'] without bothering if the user already inputted data and pressed the Submit-button.

if(isset($_POST['naam'])) {
  echo $_POST['naam'];
  die();
}

Upvotes: 1

Related Questions