0
  • 私はワンプを使っていますが、
    • 自分の PC をローカルホストとして
    • ポート:80
    • 通常のデフォルトの場所にphpスクリプトのファイルを保存しました C:\wamp\www\webservice
    • 私はphpアクセス用の設定ファイルを作成しました。 config.inc.php
    • 認証情報を使用して mysql データベースを作成しましたusername=dev, password=root, databasename=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)


これを克服する方法について何か提案をしてください

4

1 に答える 1

0

セキュリティ上の理由から、ルートは使用しないでください。ユーザーの構成が適切でなかった可能性があります。このドキュメントも見てくださいhttp://dev.mysql.com/doc/refman/5.1/en/create-user.html

さらに、あなたのコードで session_start() がスクリプトの最後で呼び出されることを見ました。以前にこのようなエラーが発生した場合、PHP はエラーを出力し、セッションを開始しないため、スクリプトの最初で使用する必要があります。

それが役に立てば幸い。

于 2013-07-16T07:48:07.080 に答える