2017-01-23 5 views
0

Мы пытаемся создать экран входа в систему на веб-сайте WordPress. Я думаю, что способ подключения к базе данных хорош. Код также кажется хорошим, у нас есть макет, где кто-то вводит имя пользователя и пароль. Они хранятся в переменных и затем должны подключаться к базе данных.Подключение к базе данных mysql на сервере WordPress

Перед следующими строками кода:>> TEST распечатывает ТЕСТ. Однако, когда вы пытаетесь войти в систему, появляется сообщение об ошибке 500, и нет печати TEST. Код ошибки 500 очень широк, к сожалению.

Мы работаем вне кода WordPress в другой папке. WordPress имеет 3 папки на сервере с именем wp-admin, wp-content и wp-includes. Мы просто создали папку рядом с ней и пытаемся ее создать. Я хотел бы узнать, почему он не работает, некоторые интернет-исследования привели меня в 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

Хорошо, если проблема возникает, только когда вы пытаетесь войти в систему, тогда что-то может быть неправильно. Не могли бы вы поделиться? EDIT: Также попробуйте включить эти строки, чтобы включить [журнал ошибок] (http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display) –

+1

вы ** НЕ ДОЛЖНЫ * * использовать 'mysql_xxx' функции, которые устарели с php5.5 (более 3 лет назад) и удалены с PHP7 из-за проблем с безопасностью (см. http://stackoverflow.com/q/12859942/3992945). Используйте 'mysqli_xxx' или' PDO' вместо php.net/manual/en/mysqlinfo.api.choosing.php. –

+1

_I думаю, что путь к базе данных хорош. Нет, это не так. Вы используете устаревший (удаленный в 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()); 
} 
Смежные вопросы