2015-07-07 2 views
-2

Так что мой сайт продолжает давать мне Внутренняя ошибка сервера 500 при попытке открыть свой PHP файл для записи в базу данных MySQL500 Внутренняя ошибка сервера с помощью PHP и MySQL

HTML

<div id="body"> 
<form action="index.php" method="post" /> 
    <input type="text" name="usertext" /> 
    <input type="submit" value="Submit" /> 
</form> 
</div> 

PHP

<?php 

define('DB_NAME', '****'); 
define('DB_USER', '****'); 
define('DB_PASSWORD', '****'); 
define('DB_HOST', '****'); 

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
    die('Could not connect: ' . mysqli_error()); 
} 

$db_selected = mysqli_select_db(DB_NAME, $link); 

if (!$db_selected) { 
    die('Cannot access' . DB_NAME . ': ' . mysqli_error()); 
} 

$value = $_POST['****']; 

$sql = "INSERT INTO **** (****) VALUES ('$value')"; 

if (!mysqli_query($sql)) { 
    die('Error: ' . mysqli_error()); 
} 

mysqli_close(); 
?> 

Я еще новичок в HTML и PHP, но я не могу понять, что я сделал неправильный даже после часов поиска. Мой сайт продолжает давать мне ту же ошибку. Я использую goDaddy в качестве хоста, если это вообще помогает.

+4

Включите отчеты об ошибках - 'ini_set ('display_errors', 1); error_reporting (-1); 'в верхней части вашего скрипта. Ошибка 500 обычно означает ошибку Fatal PHP. Вероятно, это связано с тем, что вы не передали свой «DB_NAME» в своей функции 'mysqli_connect()'. Это должно быть: mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); ' – Darren

+0

Оффлайн ошибка в базе данных. Должно быть: '$ db_selected = mysqli_select_db ($ link, DB_NAME);' –

+0

Ни один из них не работал для меня. Он все еще дает мне страницу с ошибкой и ничего больше. Я не знаю, если goDaddy не позволяет мне просматривать отчеты об ошибках php или что. –

ответ

-1

Большинство 500 ошибок являются ошибками на стороне сервера.

Там могут быть следующие возможные причины:

  1. Разрешение ошибок: Проверьте разрешение файлов и папок. В большинстве случаев виновато неправильное разрешение на скрипт PHP и CGI. Разрешение должно быть установлено в 755.
  2. PHP Timeout: Правила тайм-аута или правильная обработка ошибок в вашем скрипте должны помочь, если это является причиной ошибки 500.
  3. Ошибка .htaccess: Проверьте правильность структуры .htaccess.
+0

Как я могу проверить разрешение файла точно? –

+0

Открыть диспетчер файлов в cpanel. Вы получите разрешения как параметры. Если вы работаете на локальном сервере, просто щелкните папку правой кнопкой мыши и проверьте права на файл –

+0

Я пробовал, но я все еще получаю ошибку. –

0
<?php 

define('DB_NAME', '****'); 
define('DB_USER', '****'); 
define('DB_PASSWORD', '****'); 
define('DB_HOST', '****'); 

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
    die('Could not connect: ' . mysqli_error($link)); 
} 

$db_selected = mysqli_select_db($link, DB_NAME); 

if (!$db_selected) { 
    die('Cannot access' . DB_NAME . ': ' . mysqli_error($link)); 
} 

$value = $_POST['****']; 

$sql = "INSERT INTO **** (****) VALUES ('$value')"; 

if (!mysqli_query($link, $sql)) { 
    die('Error: ' . mysqli_error($link)); 
} 

mysqli_close($link); 
?> 

Вы пропустили пользователя переменную ссылку $, когда вы были cheking на наличие ошибок и выполнения запроса. $ Link variable/connection нужно использовать каждый раз, когда вы что-то запускаете с помощью mysqli_ *, так как это соединение.
Ошибка mysqli_select_db, сначала необходимо определить соединение, а затем имя базы данных.

0

также проверить, если вы включили расширение MySQL в php.ini

+1

Пожалуйста, поделитесь этим кодом, чтобы включить его. –

Смежные вопросы