2015-07-10 4 views
1

Я пытался вставить функцию сообщений, которая будет вставлять запись в мою базу данных. Но по какой-то причине он не будет вставлять мои сообщения и перенаправлять меня на home.php, который содержит файл login.php.PHP не будет вставлять запись данных в мою базу данных

У меня есть три файла здесь:

  1. home.php
  2. process.php
  3. dashboard.php

Теперь с учетом трех пользователей базы данных, сообщений и комментариев, мне нужно вставить в базу данных записи пользователя кто заходил. По какой-то причине при нажатии на кнопку «Сообщение» она не будет вставлять мое сообщение в мою базу данных. Есть идеи?

Вот мой dashboard.php:

<form action="process.php" method="post"> 
    <input type="hidden" name="action" value="message"> 
    <textarea rows="4" cols="70" name="message"></textarea> 
    <p><input type="submit" value="Post"/></p> 
</form> 

А вот мой process.php:

if (isset($_POST['action']) && ($_POST['action']) == 'message') { 
    //call to function 
    post_message(); //use the ACTUAL POST 
} 

function post_message() { //just a parameter called post 
    $_SESSION['errors'] = array(); 

    if (empty($_POST['message'])) { 
     $_SESSION['errors'][] = "Post Message Can't Be Blank!"; 
    } 

    //now count errors 
    if (count($_SESSION['errors']) > 0) { 
     header('Location: dashboard.php'); 
     die(); 
    } else { 
     $query = "INSERT INTO messages(message, created_at, updated_at) 
        VALUES ('{$_POST['message']}', NOW(), NOW())"; 

     $result = run_mysql_query($query); 
     $_SESSION['message'] = "message successfully posted"; 
     header('Location: dashboard.php'); 
     die(); 
    } 
} 

Любая идея, что пошло не так?

+0

должно быть 'mysql_query ($ query);' вместо 'run_mysql_query ($ query);' – Shehary

+0

run_mysql_query ($ query) - это функция, которую я создал в моем файле database.php. и да, я использовал эту функцию внутри нее. Проблема заключается только в файле process.php –

+0

add'ob_start(); 'поверх' process-homepage.php', если это помогает, – Shehary

ответ

1
<form action="process-homepage.php" method="post"> 

действие установлено на «процесс-homepage.php» и ваш код в process.php

Можете ли вы изменить действие на process.php и посмотреть, работает ли он. Если нет, то установите уровень журнала на E_ALL и укажите данные об ошибке.

+1

Извините. исходный файл - process-homepag.php, но для демонстрационной цели я установил его в process.php –

0

Если вы можете изменить свой первоначальный код на это;

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

    if (isset($_POST['action']) && ($_POST['action']) == 'message') { 
     $Message = mysql_real_escape_string($_POST[message]); 
     if (empty($Message)) { 
      $_SESSION['errors'] = "Post Message Can't Be Blank!"; 
      header('Location: dashboard.php'); 
      die(); 
     } else { 
      $query = "INSERT INTO messages (message, created_at, updated_at) 
         VALUES ('$Message', NOW(), NOW())"; 
      $result = mysql_query($query); //your run query function changed here but you can also try with run_mysql_query($query); 
      $_SESSION['success'] = "message successfully posted"; //made change here from message to success 
      header('Location: dashboard.php'); 
      die(); 
     } 
    } 
?> 

Lemme знает, если это решит проблему, если мы не перейдем в чат.

+0

Это не работает. –

+0

не работает нормально, но любая ошибка? – Shehary

+0

попытайтесь изменить '$ _POST' с помощью' $ _REQUEST', также проверьте правильность имени вашей таблицы 'messages'. – Shehary

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