$ _SERVER ['PHP_SELF']不起作用?

时间:2016-07-29 01:07:45

标签: php

在我从

更改以下代码之前,一切正常
    <form method='post' action='re.php'>

    <form method='post' action='<?php echo $_SERVER["PHP_SELF"];?>'>

它给了我HTTP错误500.我做了一些谷歌搜索,但仍然不知道为什么会发生这种情况!非常感谢你的帮助!

以下是整个脚本

<?php

$hostname = 'localhost';
$username = 'Ciara';
$password = 'mypass';
$database = 'users';        

$conn = mysqli_connect($hostname,$username, $password, $database);
if (!$conn) {
    die ("Databas connect failed: " . mysqli_connect_error());
} else {
    echo "Connected successfully. <br>";
}

echo <<<_END
<html>
    <head>
        <title>Register</title>
    </head>
    <body><center>
        <form method='post' action='<?php echo $_SERVER["PHP_SELF"];?>'>
        Firstname: <input type='text' name='firstname'><br>
        Lastname: <input type='text' name='lastname'><br>
        E-mail: <input type='text' name='email'><br>
        Gender: <input type='radio' value='female' name='gender'>Female
                <input type='radio' value='male' name='gender'>Male<br>
        Username: <input type='text' name='username'><br>
        Password: <input type='text' name='password'><br>
        <input type='submit' value='Submit Form'>
        </form></center>

_END;

if (isset($_POST['firstname']) && 
    isset($_POST['lastname']) &&
    isset($_POST['email']) &&
    isset($_POST['gender']) &&
    isset($_POST['username']) &&
    isset($_POST['password'])) {

    $firstname = get($conn, 'firstname');
    $lastname = get($conn, 'lastname');
    $email = get($conn, 'email');
    $gender = get($conn, 'gender');
    $username = get($conn, 'username');
    $password = get($conn, 'password');

    $query = "insert into useracc values" . "(null, '$firstname','$lastname','$email','$gender','$username','$password')";

    if (mysqli_query($conn, $query)) {
        echo "You have successfully registered! <br>";
    } else {
        echo "Failed to register." . mysqli_error($conn);
    }
}

mysqli_close($conn);
echo "</body></html>";

function get($conn, $var) {
     return mysqli_real_escape_string($conn, $_POST[$var]);
}
?>

1 个答案:

答案 0 :(得分:0)

当您使用echo

时,无法在HTML中添加PHP
<?php

$hostname = 'localhost';
$username = 'Ciara';
$password = '0950767';
$database = 'users';        

$conn = mysqli_connect($hostname,$username, $password, $database);
if (!$conn) {
    die ("Databas connect failed: " . mysqli_connect_error());
} else {
    echo "Connected successfully. <br>";
}

?>
<html>
    <head>
        <title>Register</title>
    </head>
    <body><center>
        <form method='post' action='<?php echo $_SERVER["PHP_SELF"];?>'>
        Firstname: <input type='text' name='firstname'><br>
        Lastname: <input type='text' name='lastname'><br>
        E-mail: <input type='text' name='email'><br>
        Gender: <input type='radio' value='female' name='gender'>Female
                <input type='radio' value='male' name='gender'>Male<br>
        Username: <input type='text' name='username'><br>
        Password: <input type='text' name='password'><br>
        <input type='submit' value='Submit Form'>
        </form></center>

<?php
if (isset($_POST['firstname']) && 
    isset($_POST['lastname']) &&
    isset($_POST['email']) &&
    isset($_POST['gender']) &&
    isset($_POST['username']) &&
    isset($_POST['password'])) {

    $firstname = get($conn, 'firstname');
    $lastname = get($conn, 'lastname');
    $email = get($conn, 'email');
    $gender = get($conn, 'gender');
    $username = get($conn, 'username');
    $password = get($conn, 'password');

    $query = "insert into useracc values" . "(null, '$firstname','$lastname','$email','$gender','$username','$password')";

    if (mysqli_query($conn, $query)) {
        echo "You have successfully registered! <br>";
    } else {
        echo "Failed to register." . mysqli_error($conn);
    }
}

mysqli_close($conn);
echo "</body></html>";

function get($conn, $var) {
     return mysqli_real_escape_string($conn, $_POST[$var]);
}
?>

检查此代码:)。