使用userform输入Database PHP连接

时间:2015-06-03 08:02:08

标签: php authentication post mysqli

我试图在文本字段中输入用户名并单击“提交”,然后这应该将我连接到我的数据库。 A)以下代码有什么问题:

<!DOCTYPE HTML> 
<html>
<head>
<style>
    .error {color: #FF0000;}
</style>
</head>
<body> 


<?php

// define variables and set to empty values
$nameErr = $emailErr = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    if (empty($_POST["login"]))
    {
        $nameErr = "login is required";
    }
    else
    {
        $login = test_input($_POST["login"]);

        // check if login only contains letters and whitespace
       if (!preg_match("/^[a-zA-Z ]*$/",$login))
       {
           $nameErr = "Only letters and white space allowed"; 
       }
    }
}

function test_input($data)
{
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>

<h2>Edge User Login</h2>
<p><span class="error">* required field.</span></p>

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

Login: <input type="text" name="name">
       <span class="error">* <?php echo $nameErr;?></span>
       <br><br>
       <br><br>
       <input type="submit" name="submit" value="Submit"> 
</form>

<?php

    $mysqli_connection = new MySQLi('localhost', $login, 'secret', 'edgeserver');

    if ($mysqli_connection->connect_error)
    {
        echo "Not connected, error: " . $mysqli_connection->connect_error;
    }

?>

B)我不希望用户每次运行PHP命令时都必须输入用户名。有没有办法使用可以返回的主表?

1 个答案:

答案 0 :(得分:0)

A。)您可能不希望您的用户通过您的服务器连接到MySql

这些应该是您从MySql登录的详细信息,通常是您在MySql中创建一个用户(也许是phpmyadmin?)并填写此处的详细信息:

$mysqli_connection = new MySQLi('localhost', $login, 'secret', 'edgeserver');

然后,您可以从创建的用于保存用户的表中进行选择。

B。)您可以在会话中存储用户名,但这会变得复杂,我建议您在首次登录时使用它。

可能this(我只是用Google搜索)可能对你有所帮助。