Добавить / присоединить идентификатор пользователя на основе Session PHP - PullRequest
0 голосов
/ 21 февраля 2019

Хотите добавить идентификатор пользователя на основе переменной сеанса к этому методу записи.

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

Я включил изображения базы данных нижеи запрос вставки, который уже добавляет сообщения.

Дневник и tblUseraccount уже связаны с использованием внешних ключей

PHP-функций

<?php
if(session_id() == '') {
	session_start();
        
}



if(!isset($_SESSION['myEmail'])){ //if login in session is not set
    header("Location: login.php");
}

 if (!isset($_SESSION['myEmail'])) {
		echo"  <a href='login.php'";
	  }
	  else {
             $myFName = $_SESSION['userFirstName'];
          }

Код, который я тоже хочу вставить в ID пользователя

<?php
// post_add.php
if(!empty($_POST)) {
    include 'mysql.php';
    if(mysql_safe_query('INSERT INTO posts (title,body,date,) VALUES (%s,%s,%s)', $_POST['title'], $_POST['body'], time()))
        echo 'Entry posted. <a href="post_view.php?id='.mysql_insert_id().'">View</a>';
    else
        echo mysql_error();
}
?>

Часть mysql.php

<?php
// mysql.php
function mysql_safe_string($value) {
    $value = trim($value);
    if(empty($value))           return 'NULL';
    elseif(is_numeric($value))  return $value;
    else                        return "'".mysql_real_escape_string($value)."'";
}
function mysql_safe_query($query) {
    $args = array_slice(func_get_args(),1);
    $args = array_map('mysql_safe_string',$args);
    return mysql_query(vsprintf($query,$args));
}
function redirect($uri)
{
    if (!headers_sent())
    {    
        header('Location: '.$uri);
        exit;
        }
    else
        {  
        echo '<script type="text/javascript">';
        echo 'window.location.href="'.$uri.'";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url='.$uri.'" />';
        echo '</noscript>'; exit;
    }
}
@mysql_connect('localhost','######','#######');
@mysql_select_db('######');

введите описание изображения здесь

введите описание изображения здесь

1 Ответ

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

Во-первых, вам нужно установить идентификатор пользователя в сеансе, когда вы входите в систему, вы можете добавить идентификатор пользователя в сеансе, как вы добавили userFirstName

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

session_start();

if(!empty($_POST)) {
    include 'mysql.php';

    $userId = $_SESSION['UserID']; //or whatever is your key in session where you store the user id

    if(mysql_safe_query('INSERT INTO posts (title,body,date,UserID) VALUES (%s, %s, %s, %s)', $_POST['title'], $_POST['body'], time(), $userId)){
        echo 'Entry posted. <a href="post_view.php?id='.mysql_insert_id().'">View</a>';
    }else{
        echo mysql_error();
    }
}

Также я заметил, что вы используете mysql_query для выполнения ваших запросов.Вы должны использовать mysqli_query или PDO, потому что mysql_query является устаревшим в PHP 5.5 и удалено в PHP 7.

Вы можете прочитать больше вphp страница здесь

...