Я немного не уверен, как соединить все мои файлы вместе для этого проекта. В основном у меня есть простой экран входа в систему, который вытаскивает имя пользователя и пароль из моей регистрационной таблицы. Как только они войдут в систему, я хочу, чтобы они могли увидеть несколько случайных научных работ, которые им были назначены. Я добавлю ссылку в свою базу данных на бумагу, а затем назначу 2-3 документа для 2-3 пользователей. Однако в настоящее время, когда я вхожу в систему и нажимаю на страницу с документами, я получаю сообщение эха, в котором я не подписан. Вот мои файлы. Первый - это экран входа в систему, который затем дает им 2 варианта. Первое - вернуться на главную страницу, а вторая - их страница с присвоенными исследовательскими работами.Постоянный вход PHP и SQL
<?php
define('DB_NAME', 'conference');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
mysqli_set_charset($link, 'utf8');
if (!$link) {
die("Database connection failed: " . mysqli_error($link));
}
$username = mysqli_real_escape_string($link, $_POST['username']);
$password = mysqli_real_escape_string($link, $_POST['password']);
function SignIn($link) {
session_start();
if (!empty($_POST['username'])) {
$query = mysqli_query($link, "SELECT * FROM users where username = '$_POST[username]' AND password = '$_POST[password]'")or die(mysqli_error($link));
$row = mysqli_fetch_array($query) or die(mysqli_error($link));
if (!empty($row['username']) && !empty($row['password'])) {
$_SESSION['username'] = $row['password'];
echo "Welcome to your User Account for CSIT Conference. Click to go home: ";
echo '<a href="index.html"> Home Page </a>. ';
echo "Or here to go to your assigned papers: ";
echo '<a href="assigned.php"> Assigned Papers </a>. ';
} else {
echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
}
}
}
if (isset($_POST['submit'])) {
SignIn($link);
}
Затем при нажатии «присвоенные документы» я хочу, чтобы по крайней мере, говорят, что их название на данный момент, а затем в конечном итоге вытащить имя каждого документа, но его даже не делать этого. Вот этот файл php:
<?php
session_start();
if (isset($_SESSION['verified_user'])) {
echo "Hello, '$firstname', Here are your assigned papers: ";
$paper1;
$paper2;
}
else {
echo "You are not logged in and cannot see this page.";
}
?>
Наконец, вот таблица sql пользователя, если это помогает с чем угодно. Также, пожалуйста, дайте мне знать, если я могу добавить дополнительную информацию. Я все еще изучаю все это, поэтому все, что я могу сделать, чтобы прояснить, не проблема. Большое спасибо за Вашу помощь!
-- phpMyAdmin SQL Dump
-- version 4.4.14
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Oct 26, 2015 at 02:49 AM
-- Server version: 5.6.26
-- PHP Version: 5.6.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `conference`
--
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`firstname` varchar(40) NOT NULL,
`lastname` varchar(40) NOT NULL,
`username` varchar(40) NOT NULL,
`password` varchar(40) NOT NULL,
`state` varchar(40) NOT NULL,
`city` varchar(40) NOT NULL,
`streetaddress` varchar(40) NOT NULL,
`zipcode` varchar(40) NOT NULL,
`phonenumber` varchar(40) NOT NULL,
`emailaddress` varchar(40) NOT NULL,
`email` tinyint(1) NOT NULL,
`help` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`firstname`, `lastname`, `username`, `password`, `state`, `city`, `streetaddress`, `zipcode`, `phonenumber`, `emailaddress`, `email`, `help`) VALUES
('Steve', 'Paul', 'root', 'root', 'ny', 'new york', '20 ridge road', '10990', '98493938383939', '[email protected]', 0, 0),
('test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 0, 0),
('gsdfgsdfgqsdfgsdfg', 'sdfasdf', 'asdfasdfsadf', 'asdfasdfasdfasdf', 'asdfasdfasdfsadfsadfsdf', 'asdfasdfasdfasdfsadf', 'asdfasdf', 'asdfasfsfsfsdfasdfsdf', 'asdfasdfasdfsd', 'asdfasdfsadf', 0, 0);
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
Где '$ _SESSION [ 'verified_user'] 'определено? – Twisty
Хмм, я не знаю. Где это обычно определено? Я, вероятно, не вложил его. Извините, все еще учась этому – Vortex11
Я не уверен, как ответить на это. Вы пишете код. Поэтому, если вы назначили переменную глобальному '$ _SESSION', вы должны знать, как она туда попала. Если вы не назначили его в глобальном, вы не сможете использовать его позже. – Twisty