PHP не вставит запись данных в мою базу данных

1

Я пытался вставить функцию сообщений, которая будет вставлять запись в мою базу данных. Но по какой-то причине он не будет вставлять мои сообщения и перенаправлять меня на home.php который содержит файл login.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);
  • 0
    run_mysql_query ($ query) - это функция, которую я создал в своем файле database.php. и да, я использовал эту функцию внутри него. Проблема только вокруг файла process.php
Показать ещё 6 комментариев
Теги:

2 ответа

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

действие установлено на "process-homepage.php", и ваш код находится в файле process.php

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

  • 1
    Сожалею. исходный файл - processs-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
    не работает нормально, но есть ошибки?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню