PHP / SQL StoringThe Имя текущего пользователя во время заполнения формы

0

Как только пользователи войдут в мой сайт, они могут заполнить форму, которая имеет два поля: "имя проекта" и "описание проекта".

Мне нужна помощь в сохранении имени пользователя, заполнившего эту форму.

Например, если я должен был войти в систему как администратор и заполнил форму, в базе данных он должен показать имя пользователя Admin рядом с информацией о форме.

Помощь очень ценится и благодарим вас заранее!

Бланк формы:
Название базы данных: formsystem
Название таблицы: форма
Колонка Я хочу сохранить имена пользователей: form_user

Мой код (groupForm.php):

<?php
    session_start();
?>

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
    <title></title>
     <link rel="stylesheet" href="./css/form.css">
     <link rel="stylesheet" href="./css/style.css">
  </head>
  <body>
  <header>
    <nav>
        <div class="main-wrapper">
        <div id="branding">
        <li><h1><span><a href="homepage.php">ProjectNet</a></span></li>
        </div>
            <div class="nav-login">
                <?php
                    if (isset($_SESSION['u_id'])) {
                        echo '<form action="includes/logout.inc.php" method="POST">
                              <button type="submit" name="submit">Logout</button>
                              </form>';
                    } else {
                        echo '<form action="includes/login.inc.php" method="POST"> 
                              <input type="text" name="uid" placeholder="Username/Email">
                              <input type="password" name="pwd" placeholder="Password">
                              <button type="submit" name="submit">Login</button>
                              </form>
                              <a href="signup.php">Sign up</a>';
                    }
                ?>
        </div>
    </nav>
    </header>
    <section id="showcase1">
<div class="container">  
  <form id="contact" action="includes/form_process.php" method="POST">
    <h3>Creating a Group</h3>
    <h4>Please fill out the sections below.</h4>
    <fieldset>
      <input placeholder="Project title" type="text" name="name">
    </fieldset>
    <fieldset>
      <textarea placeholder="Description of the project...." type="text" name="message" ></textarea>
    </fieldset>
    <fieldset>
    <button name="submit" type="submit">Create</button>
    </fieldset>
  </form>
</div>
</section>
  </body> 
</html>

Внутренний код (form_process.php):

<?php

session_start();

if (isset($_POST['submit'])) {

    function fetch_user_info($u_id){
    $u_id = (int)$u_id;

    $sql = "SELECT 'user_uid' AS 'username' FROM 'users' WHERE 'user_id' = {$u_id}";

    $result = mysql_query($sql);

    return mysql_fetch_assoc($result);
}

    include_once 'formDatabaseConnection.php';

    $name = mysqli_real_escape_string($conn, $_POST['name']);
    $message = mysqli_real_escape_string($conn, $_POST['message']);

    //Check for empty fields
    if (empty($name) || empty($message)) {
        header("Location: ../groupForm.php?signup=empty");
        exit();
    } else {
        //Insert the user into the database
                $sql = "INSERT INTO form (form_user, form_name, form_description) VALUES ('$u_id', '$name', '$message');";

                mysqli_query($conn, $sql);
                header("Location: ../findGroup.php");
                exit();
    }


} else {
    header("Location: ../groupForm.php");
    exit();
}

ОБНОВЛЕНИЕ:
Код входа (login.inc.php):

<?php

session_start();

if (isset($_POST['submit'])) {

    include 'dbh.inc.php';

    $uid = mysqli_real_escape_string($conn, $_POST['uid']);
    $pwd = mysqli_real_escape_string($conn, $_POST['pwd']);

    //Error handlers
    //Check if inputs are empty
    if (empty($uid) || empty($pwd)) {
        header("Location: ../index.php?login=empty");
        exit();
    } else {
        $sql = "SELECT * FROM users WHERE user_uid='$uid' OR user_email='$uid'";
        $result = mysqli_query($conn, $sql);
        $resultCheck = mysqli_num_rows($result);
        if ($resultCheck < 1) {
            header("Location: ../index.php?login=error");
            exit();
        } else {
            if ($row = mysqli_fetch_assoc($result)) {
                //De-hashing the password
                $hashedPwdCheck = password_verify($pwd, $row['user_pwd']);
                if ($hashedPwdCheck == false) {
                    header("Location: ../index.php?login=error");
                    exit();
                } elseif ($hashedPwdCheck == true) {
                    //log in the user here
                    $_SESSION['u_id'] = $row['user_id'];
                    $_SESSION['u_first'] = $row['user_first'];
                    $_SESSION['u_last'] = $row['user_last'];
                    $_SESSION['u_email'] = $row['user_email'];
                    $_SESSION['u_uid'] = $row['user_uid'];

                    header("Location: ../homepage.php");
                    exit();
                }
            }
        }
    }

} else {
    header("Location: ../index.php?login=error");
    exit();
}
  • 0
    Не используйте mysql_query и mysqli_query . Используйте mysqli_query везде. Также используйте параметризованные запросы.
  • 0
    $u_id не установлен в той точке, где вы ссылаетесь на INSERT.
Показать ещё 5 комментариев
Теги:
database
forms

1 ответ

1
Лучший ответ

Когда пользователь регистрируется в вашей системе, сохраните это имя пользователя и имя пользователя в сеансе и получите это имя пользователя, когда хотите сохранить его, и замените значение form_user на это значение сеанса. Проверьте код ниже, чтобы узнать больше.

$username = $_SESSION['u_first']. ' '.$_SESSION['u_last'];
$sql = "INSERT INTO form (form_user, form_name, form_description) VALUES ($username, $name, $message)";
  • 0
    Я не уверен на 100%, как это сделать, чувак. Я обновил свой пост выше, чтобы включить мой код входа в систему также. Не могли бы вы помочь мне с тем, как его кодировать? Я застрял на этом, был на нем в течение нескольких дней (я начинающий)
  • 0
    ты почти сделал это, не волнуйся. проверьте мой обновленный ответ.
Показать ещё 1 комментарий

Ещё вопросы

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