2017-01-23 13 views
0

WordPress Webサイトのログイン画面を作成しようとしています。私はデータベースに接続する方法が良いと思います。コードも良いようですが、誰かがユーザー名とパスワードを入力するレイアウトがあります。これらは変数に格納され、データベースに接続する必要があります。WordPressサーバー内のmysqlデータベースに接続

次のコード行の前に、?> TESTがTESTを出力します。しかし、ログインしようとするとエラー500が表示され、TESTは表示されません。残念ながら、エラーコード500は非常に広いです。

WordPressのコードの外で、別のフォルダで作業しています。 WordPressには、wp-admin、wp-content、wp-includesという3つのフォルダがあります。私たちは、その隣にフォルダを作成してそこにビルドしようとしています。私はなぜそれが動作していないオプションを見つけるために、いくつかのインターネットリサーチでwp-configに私を連れて来ました。しかし、それはまだ私たちのためにうまくいかなかった。

$connection = mysql_connect("IP", "username", "password"); 

?> 
<HTML><BODY>TEST</BODY></HTML> 
<?php 

// To protect MySQL injection for Security purpose 
$username = stripslashes($username); 
$password = stripslashes($password); 
$username = mysql_real_escape_string($username); 
$password = mysql_real_escape_string($password); 

// Selecting Database 
$db = mysql_select_db("db_name", $connection) 
or die("no connection to database");  

ログイン画面のコードも必要に応じて追加できます。必要があればコメントしてください。

****私はPHPの古い機能を使用していたので、接続していません。 WordPressの場合、mysql_connectではなくmysqli_connectを使用します。

+0

ログインするときに問題が発生した場合は、すぐに何かが間違っている可能性があります。あなたは共有できますか?編集:また、[エラーログ]を有効にするためにこれらの行を入れてみてください(http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display) –

+1

あなたは絶対にしないでください* * php5.5(3年以上前)以降廃止され、セキュリティ上の問題によりPHP7以降に削除された 'mysql_xxx'関数を使用します(http://stackoverflow.com/q/12859942/3992945参照)。 php.net/manual/en/mysqlinfo.api.choosing.phpの代わりに 'mysqli_xxx'か' PDO'を使用してください。 –

+1

_データベースに接続する方法が良いと思います._そうではありません。廃止された(php7で削除された)mysql_ * APIを使用しています。 mysqli以上のPDOを使用して、SQLインジェクションからコードを保護するための準備文について学んでください!今あなたのコードは脆弱です –

答えて

2

WordPressのコア機能だけを読み込むには、wp-load.phpを使用するのが最適です。

$path = $_SERVER['DOCUMENT_ROOT']; 
include_once $path . '/wp-load.php'; 
include_once $path . '/wp-config.php'; 

$db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
// Test the connection: 
if (mysqli_connect_errno()){ 
    // Connection Error 
    exit("Couldn't connect to the database: ".mysqli_connect_error()); 
} 
関連する問題