2015-06-27 2 views
0

Итак, вот моя дилемма, которую я просматривал и пытаюсь прорваться в течение последних нескольких дней. Я создал базовую систему регистрации/регистрации PHP, которая отлично работает. Я внедрил систему блога, в которой отображаются сообщения. Я написал функцию добавления сообщений, которая не отправляется в базу данных, и она также не отбрасывает функцию ошибки.PHP не вставляя содержимое в базу данных mySQL: текст, изображения, все, что угодно

Я не очень понимаю, потому что моя система регистрации работает и добавляет новых пользователей, но «добавить сообщение в блоге» ничего не делает. Я могу добавить из базы данных, и он отображается нормально, но ничего здесь.

<?php 
    error_reporting(E_ALL & ~E_NOTICE); 
    session_start(); 

    if (isset($_SESSION['id'])) { 

     $userId = $_SESSION['id']; 
     $username = $_SESSION['username']; 
    } else { 
     header('Location: login.php'); 
     die(); 
    } 

    if ($_POST['submit']) { 
     $title = strip_tags($_POST['title']); 
     $subtitle = strip_tags($_POST['subtitle']); 
     $content = strip_tags($_POST['content']); 

     mysqli_query($dbCon, $userREQ3); 
     $userREQ3 = " INSERT INTO `logindb`.`blog` 
     (`title`, `subtitle`, `content`) VALUES ('$title','$subtitle','$content')"; 

    } 
?> 

<!DOCTYPE html> 
<html> 

    <head> 

    </head> 

    <body> 
    Welcome, <?php echo $username; ?>, You are logged in. Your user id is <?php echo $userId; ?>. 

    <a href="index.php">Index</a> 
    <form action="logout.php"> 
     <input type="submit" value="Log me out!"> 
    </form> 

    <form method="post" action="admin.php"> 
     Title: <input type="text" name="title"/><br> 
     Subtitle: <input type="text" name="subtitle"/><br> 
     <br> 
     <br> 
     Content: <textarea name="content"></textarea> 
     <input type="submit" value="Write Post"/> 
    </form> 

    </body> 
</html> 
+0

запись этой строки после вставки запроса 'mysqli_query ($ dbCon, $ userREQ3);' также не в состоянии увидеть код подключения к базе данных – Saty

ответ

3

Ваш код не удается по двум причинам.

  • Ваш условный оператор ищет именованный элемент называется «отправить»
  • Вы пытаетесь выполнить перед оператором. Поместите свой запрос (mysqli_query()) «ниже» Значения и сделать mysqli_query($dbCon, $userREQ3) or die(mysqli_error($dbCon));

Sidenote: Изменение if ($_POST['submit']) { к if (isset($_POST['submit'])) { это лучше.

<input type="submit" value="Write Post"/> и
в <input type="submit" name="submit" value="Write Post"/>


SQL инъекции:

Ваш нынешний код открыт для SQL injection. Используйте mysqli with prepared statements, или PDO with prepared statements.

Кроме того, у вас есть переменные в теле вашего кода, которые могут вызывать неопределенную переменную x при начальной загрузке страницы.


Как указано (в комментариях ниже): Убедитесь, что вы подключили к вашей базе данных и с использованием метода mysqli, а не другого API.

Различные интерфейсы MySQL не перемешиваются друг с другом. Используйте тот же API MySQL из подключения к запросу.


Добавить error reporting в верхней части файла (ов), который поможет найти ошибки.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

Sidenote: Сообщения об ошибках не должно быть сделано только в постановке, и никогда производства.


Успешный запрос или нет:

Чтобы увидеть, если запрос был действительно успешным, или не удалось, проверьте наличие ошибок и использовать affected_rows.

Ссылки:


PHP Не Вставка содержимого в базе данных MySQL: Текст, Изображения, Все

Если вы пытались использовать изображения, то в теги формы необходимо ввести действительный enctype.

В зависимости от того, как и что вы хотели вставить для изображений, чем это может быть фактором.

Если вы хотите вставить изображение в качестве пути, это одно, но с его использованием «как изображение», скажем, BLOB, который имеет ограничения по размеру; используйте LONGBLOB, и вы должны избежать этих данных перед тем, как войти в базу данных.

Consult:

+0

'@Fred -ii-', вы всегда верны и точны. –

+0

@anantkumarsingh спасибо, * ура * –

+1

приветствуется +10 форма мой сторона. вы избили меня и по этому поводу. ха-ха-ха –

0

Попробуйте сформировать запрос, а затем выполнить его ...

$userREQ3 = " INSERT INTO `logindb`.`blog` 
(`title`, `subtitle`, `content`) VALUES ('$title', '$subtitle','$content')"; 


mysqli_query($dbCon, $userREQ3); 
+0

Существует закрывающая скобка '}' без открытой скобки '{' убедитесь, что они сделаны, и код завершен, а также подробно объясните свой код – Ram

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