внутренняя ошибка сервера при навигации по страницам php - PullRequest
0 голосов
/ 25 февраля 2019

Я извлекаю данные из таблицы mysql и заполняю таблицу в HTML. В каждой строке таблицы у меня есть кнопка удаления, которая вызывает remove.php, удаляет эту строку из таблицы mysql и снова возвращается к admin.php.Проблема заключается в том, что когда я нажимаю кнопку удаления, он выполняет скрипт удаления php строки из таблицы в базе данных. Затем я снова перехожу к admin.php. При навигации по серверу wamp выдается 500 Internal Server error.Что я хочу, это выполнить запрос на удаление и снова вернуться к admin.php.Так что admin.php дает мне обновленные данные.Я понимаю, что происходит не так.

Это моя зарегистрированная ошибка: [Пн 25 февраля 15: 19: 30.182141 2019] [http: error] [pid 1852: tid 1232] [client :: 1: 57588] AH02429: Имя заголовка ответа 'location' содержит недопустимые символы, запрос на прерывание, реферер: http://localhost/project_exhibition/admin.php

Это мой admin.php

<?php

// 	if(isset($_SESSION["loggedin"]) && ($_SESSION["loggedin"] == true) && $_SESSION["usertype"] == a){
// }
// else{
// 	header("location: login.php");
// 	exit;
// }
echo "<script type='text/javascript'>alert('here');</script>";

require_once "config.php";
$sql = "SELECT userid,username FROM user_login_table";
$stmt = $mysqli->prepare($sql);
if($stmt->execute())
{
	echo "executed";
}
else{
	echo "not able to execute";
}
$stmt->store_result();
echo $stmt->num_rows;
$stmt->bind_result($id,$name);

?>
<!DOCTYPE html>
<html>
<head>
<style>
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}
</style>
</head>
<body>

<h2>HTML Table</h2>

<table>
  <tr>
    <th>ID</th>
    <th>Username</th>
    <th>Remove</th>
  </tr>

  <?php
  $rowid=0; 
	while ($stmt->fetch()) {
		$rowid += 1;
        echo "<tr>
        <td>".
        $id."
        </td>
        <td>".
        $name."
        </td> 
        <td>
        <form action='remove.php' method='post'>
        <input type='hidden' name ='row_id' value = ".$id." >
        <input type='submit' value='Remove'>
        </form>
        </td> 
        </tr>";
    }  ?>
 
</table>

</body>
</html>

это remove.php

<?php

require_once "config.php" ;
echo "string";
$sql = "DELETE FROM user_login_table where userid=".$_POST['row_id']."";
$stmt = $mysqli->prepare($sql);
if($stmt->execute())
{
	header("location : admin.php");
}
else
{	
	echo "alert('Failed to Remove.Something went wrong')";
	echo "failed";
}
//header("location : admin.php");

?>

config.php

<?php
define('DB_SERVER','localhost');
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_NAME','exhibition_database');

$mysqli = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME);

if($mysqli === false )
{
	die("Error! Couldn't connect. ". $mysqli->connect_error );
}
?>

1 Ответ

0 голосов
/ 26 февраля 2019

В вашей функции header() есть ошибка, которую вы используете:

header("location : admin.php");

Это приведет к ошибке, которую вы получаете из-за дополнительного пробела между location и двоеточием.Измените это на это (обратите внимание на пробел):

header("Location: admin.php");
...