$ _FILE APPLY IN $ _poST - PullRequest
       7

$ _FILE APPLY IN $ _poST

0 голосов
/ 29 апреля 2018

Я новичок в PHP и только начинаю изучать это. Я пытаюсь сделать страницу регистрации и страницу входа. Моя страница входа в систему работает, как только я выбираю username и password, и она также может обнаружить неправильный пароль, но изображение профиля, которое я загрузил через страницу регистрации, не появляется на странице приветствия. Когда я добавляю профиль, страница входа больше не работает. Я надеюсь, что вы, ребята, можете понять мою проблему и помочь мне найти решение. Заранее спасибо. Я прилагаю мой код ниже:

REGISTER FORM PHP

<?php
session_start();
$_SESSION['message'] = '';
$mysqli=new MySQLi('127.0.0.1','root','','accounts');

if($_SERVER["REQUEST_METHOD"] == "POST") {
    if ($_POST['password']== $_POST['confirmpassword']) {

        $username = $mysqli->real_escape_string($_POST['username']);
        $email = $mysqli->real_escape_string($_POST['email']);
        $password = md5($_POST['password']);
        $profile_path = $mysqli->real_escape_string('images/'.$_FILES['profile']['name']);


        if (preg_match("!image!", $_FILES['profile']['type'])) {

            if (copy($_FILES['profile']['tmp_name'],$profile_path)){
                $_SESSION['username'] =$username;
                $_SESSION['profile'] =$profile_path;


                $sql ="INSERT INTO users(username,email,password,profile)"
                ."VALUES ('$username','$email','$password','$profile_path')";       

                if($mysqli->query($sql)=== true) {
                          $_SESSION['message'] =  'Registration successful!
                          Added $username to the database!';
                     header("location:RegisterLogin.php");
                      }
                      else {
                          $_SESSION['message'] = "User could not be added to the database!";
            }
        }
        else{
            $_SESSION['message'] = "file failed!";

        }
        }
        else {
            $_SESSION['message'] = "Please only upload GIF,JPG, or PNG images!";
    }
    }
    else{
        $_SESSION['message'] = "two password do not match!";
    }
    }

?> 
lOGIN fORM

    <?php 
    session_start();
    $_SESSION['message']=''; 
    $mysqli=new MySQLi('127.0.0.1','root','','accounts');



    if(isset($_POST['login'])) {
        $username = $mysqli->real_escape_string($_POST['username']);
            $password = md5($_POST['password']);
            $profile_path = $mysqli->real_escape_string(isset($_FILES['profile']));
             $sql="SELECT * FROM users WHERE username='$username' AND password='$password' AND profile = 'profile_path'";
          $result = mysqli_query($mysqli,$sql);

            if(mysqli_affected_rows($mysqli) == 1){
                  $_SESSION['username'] = $username;
                  $_SESSION['profile'] = $profile_path;
                  $_SESSION['message'] =  "Registration successful!";
        header("location:Welcome.php");
        }
        else{
            $_SESSION['message'] = "Login Failed!"; 
        }
    }



    ?>

ДОБРО ПОЖАЛОВАТЬ PHP

<link rel="stylesheet" href="Form2.css" />
<?php session_start(); ?>
<div class="body content">
<div class="welcome">
<div class="alert alert-success"><?= $_SESSION['message']?></div>
Welcome To Your Profile <span class="user"><img src='<?=$_SESSION['profile']?>'</span>

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

обновите ваши коды как следующие

РЕГИСТРАЦИОННАЯ ФОРМА

<?php
    session_start();
    $_SESSION['message'] = '';
    $mysqli= new mysqli('127.0.0.1','root','','accounts');

    if(isset($_POST) && array_filter($_POST)){
        if ($_POST['password'] == $_POST['confirmpassword']) {
            $username = $mysqli->real_escape_string($_POST['username']);
            $email = $mysqli->real_escape_string($_POST['email']);
            $password = md5($_POST['password']);
            $profile_path = $mysqli->real_escape_string('images/'.$_FILES['profile']['name']);
            if(!empty($username) && !empty($email) && !empty($password) && !empty($_FILES['profile']['name']){
                if (preg_match("!image!", $_FILES['profile']['type'])) {
                    if (move_uploaded_file($_FILES['profile']['tmp_name'],$profile_path)){
                        $_SESSION['username'] = $username;
                        $_SESSION['profile'] = $profile_path;
                        $sql ="INSERT INTO users(username,email,password,profile) VALUES ('$username','$email','$password','$profile_path')";
                        if($mysqli->query($sql) == true) {
                            $_SESSION['message'] =  "Registration successful! Added $username to the database!";
                            header("Location: RegisterLogin.php");
                        }
                        else { $_SESSION['message'] = "User could not be added to the database!"; }
                    } else {$_SESSION['message'] = "file failed!";}
                } else { $_SESSION['message'] = "Please only upload GIF,JPG, or PNG images!"; }
            }else{ $_SESSION['message'] = "values are missing"; }        
        } else{ $_SESSION['message'] = "two password do not match!"; }
    }
?>

ФОРМА ВХОДА

<?php
    session_start();
    $_SESSION['message']=''; 
    $mysqli= new mysqli('127.0.0.1','root','','accounts'););

    if(isset($_POST['login'])){
        $username = $mysqli->real_escape_string($_POST['username']);
        $password = md5($_POST['password']);
        $sql="SELECT * FROM users WHERE username='$username' AND password='$password'";
        $result = $mysqli->query($sql);
        if($result->num_rows > 0){
            $row = $result->fetch_assoc();
            $_SESSION['username'] = $username;
            $_SESSION['profile'] = 'images/'.$row['profile'];
            $_SESSION['message'] =  "Login successful!";
            header("Location: Welcome.php");
        }else{ $_SESSION['message'] = "Login Failed!";}
    }
?>

ДОБРО ПОЖАЛОВАТЬ PHP

<?php session_start(); ?>
<link rel="stylesheet" href="Form2.css" />
<div class="body content">
<div class="welcome">
<div class="alert alert-success"><?= $_SESSION['message']?></div>
Welcome To Your Profile <span class="user"><img src='<?=$_SESSION['profile'];?>'/></span>
0 голосов
/ 29 апреля 2018

Вы неправильно устанавливаете значения сеанса в файле login.php. В приведенном ниже коде используется mysqli_fetch_array () для получения правильных значений переменной $ _SESSION.

login.php

Попробуйте это:

<?php 
    session_start();
    $_SESSION['message']=''; 
    $mysqli=new MySQLi('127.0.0.1','root','','accounts');

    if(isset($_POST['login'])) {
        $username = $mysqli->real_escape_string($_POST['username']);
        $password = md5($_POST['password']);
        $sql="SELECT * FROM users WHERE username='$username' AND password='$password' LIMIT 1;";
        $result = mysqli_query($mysqli,$sql);

        if(mysqli_num_rows($result)>0){
            $row = mysqli_fetch_array($result);
            $_SESSION['username'] = $row['username'];
            $_SESSION['profile'] = $row['profile'];
            $_SESSION['message'] =  "Registration successful!";
            header("location:Welcome.php");exit();
        }
        else{
            $_SESSION['message'] = "Login Failed!"; 
        }
    }
?>

In Welcome.php

Переместите <?php session_start(); ?> на самый верх вашего документа. Вы не можете ничего выводить (содержимое HTML или эхо) до вызова session_start (), иначе сессия не будет выполнена, если не используется буферизация вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...