2016-11-20 11 views
1

mysqlデータベースと対話するために、PHP Webページで使用される関数をいくつか書きました。私がローカルサーバ上でそれらをテストすると、すべて正常に動作します。データはmysql DBに取り込まれます。私はWebサーバー上でホストすると、自分のPHPファイルのうち3つが「接続できませんでした:ユーザー 'root' @ 'localhost'(パスワードは:YES)のアクセスが拒否されました」と表示されます。他の2つのファイルは期待通りに実行されます。私はphpmyadminを使用しており、私はcpanelを通じてサイトをホストしています。誰かがこの問題で私を助けてくれますか?私は私のFTPを作成し、Filezillaのを通じて、私のファイルをuplaodedていますphpファイルがWebサーバー上で実行されているときに「接続できませんでした」というエラーが発生しました

次はエラー

<?php 
session_start(); 
define ('DB_NAME', 'roze'); 
define('DB_USER', 'root'); 
define('DB_Password', 'good'); 
define('DB_HOST', 'localhost'); 

$link = mysql_connect(DB_HOST, DB_USER, DB_Password); 

if (!$link) 
{ 

die('Could not connect: ' . mysql_error()); 

} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) 
{ 
    die('Cannot use' . DB_NAME . ': ' . mysql_error()); 
} 

echo 'Connected Successfully'; 


$value4 = $_POST['couch_table']; 



$sql = " UPDATE master set couch_table= '".$value4."'"; 

if (!mysql_query($sql)){ 
die('Error: ' . mysql_error()); 
} 

header('location: room.html'); 

?> 

追加情報をスロー1つの私のPHPファイルのコードです。

+4

さて、データベースサーバーの資格情報ではお手伝いできません。しかし、いくつかのホスティングサービスプロバイダを使用している場合は、データベースサーバの 'root'アカウントにアクセスすることはほとんどありません。 – arkascha

+3

mysql_ *関数を使わないでください。 PHP 5.5では廃止されました。これは古くなっており、セキュリティアップデートを受けなくなり、PHP 7では完全に削除されました。代わりに、PDOまたはmysqli_ *を使用してください。詳細については、http://stackoverflow.com/q/12859942/354577を参照してください。 – Chris

+3

すべてのファイルで同じパスワードを使用していますか?そのエラーメッセージは基本的に "あなたのパスワードは無効です"と伝えます。また、資格情報を別個のファイルに入れて、それを含めなければなりません。 ** PHP7で削除された廃止予定の 'mysql'関数を使用しないでください。代わりに' mysqli'または 'PDO'を使用してください。あなたのコードはSQL注入にひどい脆弱性があります。誰かが ''のような値を投稿したと想像してください。 DROP TABLE master - 'あなた自身を保護するためにパラメータ化された文を使用します。 –

答えて

0

また、すべての権限を持つ新しいmysqlユーザーを作成し、その資格情報で接続することもできます。

関連する問題