php - 使用 PHP 和 MySQL 的基本但安全的登录系统遇到问题

标签 php html mysql sql validation

  • 我正在使用 Wamp,
    • 我自己的电脑作为本地主机
    • 端口:80
    • 我已将 php 脚本文件保存在通常的默认位置 C:\wamp\www\webservice
    • 我已经创建了一个用于 php 访问的配置文件,我将其称为 config.inc.php
    • 我已经使用凭证username=dev 创建了 mysql 数据库, 密码=root,数据库名称=webservice

其代码如下::

<?php 

    // These variables define the connection information for your MySQL database 
    $username = "dev"; 
    $password = "root"; 
    $host = "localhost"; 
    $dbname = "webservice"; 


    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); 

    try 
    { 

        $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 
    } 
    catch(PDOException $ex) 
    { 

        die("Failed to connect to the database: " . $ex->getMessage()); 
    } 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);    
    if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) 
    { 
        function undo_magic_quotes_gpc(&$array) 
        { 
            foreach($array as &$value) 
            { 
                if(is_array($value)) 
                { 
                    undo_magic_quotes_gpc($value); 
                } 
                else 
                { 
                    $value = stripslashes($value); 
                } 
            } 
        }      
        undo_magic_quotes_gpc($_POST); 
        undo_magic_quotes_gpc($_GET); 
        undo_magic_quotes_gpc($_COOKIE); 
    } 
    header('Content-Type: text/html; charset=utf-8'); 
    session_start(); 
?>
<小时/>

然后我使用名为 register.php

的脚本文件创建了一个简单的功能测试 <小时/>

其代码如下:

<小时/>
<?php

require ("config.inc.php");

?>

<h1>Register</h1>
<form action="register.php" method="post">
    Username:<br/>
    <input type="text" name="username" placeholder="user name"><br/>
    Password:<br/>
    <input type="password" name="username" placeholder="user name"><br/>
    <input type="submit" value="Register user"/>
</form>

当我从浏览器运行时http://localhost/webservice/register.php

<小时/>

我在浏览器中收到此错误,显示为

无法连接到数据库:SQLSTATE[28000] [1045] 用户“dev”@“localhost”访问被拒绝(使用密码:YES)

<小时/>

请提供有关如何克服此问题的任何建议

最佳答案

出于安全原因,请不要使用 root。可能是用户配置不好。也看看这个文档 http://dev.mysql.com/doc/refman/5.1/en/create-user.html .

此外,我在你的代码中看到session_start()是在脚本末尾调用的,如果以前发生过这样的错误,PHP将打印错误并且不启动 session ,所以你应该在脚本的开头使用它脚本。

希望有帮助。

关于php - 使用 PHP 和 MySQL 的基本但安全的登录系统遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17670555/

相关文章:

php - 如何获取 WordPress 中的所有帖子标签?

php - 在javascript中使用innerhtml检查div标签的内部?

php - 在 Joomla 中添加来自 MySQL 的开放图数据

mysql - 将特定列存储和检索到包含存储过程中单行的结果集的变量中

mysql - SQL - 尝试关联数据

php - 错误 该路由不支持 GET 方法。尝试在不提供身份验证 token 的情况下使用路由时支持的方法 : POST.

php - 使用 Doctrine ORM,450ms 的网站响应时间对用户来说是否慢?

javascript - Zurb Foundation 5 中没有 JavaScript 的情况下顶部栏是否工作?

javascript - getAttribute 未设置

javascript - HTML 中的 “href” 值,用于在 Android 上打开 gmail 应用程序