pashkagan
Новичок
Делаю регистрацию на сайте с аватором пользователя.
//Код для формы регистрации
if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['button-reg'])){
if (!empty($_FILES['img']['name'])){
$imgName = time() . "_" . $_FILES['img']['name'];
$fileTmpName = $_FILES['img']['tmp_name'];
$fileType = $_FILES['img']['type'];
$destination = ROOT_PATH . "\assets\images\users\\" . $imgName;
if(strpos($fileType, 'image') === false){
array_push($errMsg, "Можно загружать только изображения!");
}else {
$result = move_uploaded_file($fileTmpName, $destination);
if ($result) {
$_POST['img'] = $imgName;
}else {
array_push($errMsg, "Ошибка загрузки изображения на сервер!");
}
}
}else{
array_push($errMsg, "Ошибка получения изображения!");
}
$admin = 0; //Ставим постоянное значение, так как при регистрации пользователь не может быть админом
$login = trim($_POST['login']); //trim() используется для того, чтобы убрать все пробелы до и после
$email = trim($_POST['email']);
$firstname = trim($_POST['firstname']);
$lastname = trim($_POST['lastname']);
$password = trim($_POST['password']);
// $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$confpassword = trim($_POST['confirmpassword']);
$sex = trim($_POST['sex']);
$birthday = trim($_POST['calendar']);
$country = trim($_POST['country']);
$city = trim($_POST['city']);
$indexnumber = trim($_POST['zip']);
$img = trim($_POST['img']);
if($login === '' || $email === '' || $firstname === '' || $lastname === '' || $password === '' || $sex === '' || $birthday === '' || $country === '' || $city === '' || $indexnumber === '' || $img === '' ){
array_push($errMsg, "Не все поля заполнены!");
}elseif (mb_strlen($login, 'UTF8') < 2){
array_push($errMsg, "Логин должен быть более 2-х символов!");
}elseif ($password !== $confpassword) {
array_push($errMsg, "Пароли должны соответствовать друг другу!");
}else{
$existence = selectOne('users', ['email' => $email]);
if($existence['email'] === $email){
array_push($errMsg, "Пользователь с такой почтой уже зарегистрирован!");
}else{
$pass = password_hash($password, PASSWORD_DEFAULT); //Вставили хеширование пароля
$post =[
'admin'=> $admin,
'username'=> $login,
'email'=> $email,
'firstname'=> $firstname,
'lastname'=> $lastname,
'sex'=> $sex,
'birthday'=> $birthday,
'password'=> $pass, //изменился с $password на $pass з за хеширования переменной
'country'=> $country,
'city'=> $city,
'indexnumber'=> $indexnumber,
'img'=> $img
];
$id = insert('users', $post); //отправка на сервер в базу
$user = selectOne('users', ['id' => $id]);
userAuth($user);
}
}
}else{
$login = '';
$email = '';
$firstname = '';
$lastname = '';
$sex = '';
$birthday = '';
$country = '';
$city = '';
$indexnumber = '';
$img = '';
}
Идет при регистрации сохранение картинки в нужную папку. Затем пытаюсь вывести картинку
<a href="<?php echo BASE_URL . "personal.php"; ?>"><?php echo $_SESSION['login']; ?></a>
Но ничего не происходит. Кто знает как можно решить такую проблему?
//Код для формы регистрации
if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['button-reg'])){
if (!empty($_FILES['img']['name'])){
$imgName = time() . "_" . $_FILES['img']['name'];
$fileTmpName = $_FILES['img']['tmp_name'];
$fileType = $_FILES['img']['type'];
$destination = ROOT_PATH . "\assets\images\users\\" . $imgName;
if(strpos($fileType, 'image') === false){
array_push($errMsg, "Можно загружать только изображения!");
}else {
$result = move_uploaded_file($fileTmpName, $destination);
if ($result) {
$_POST['img'] = $imgName;
}else {
array_push($errMsg, "Ошибка загрузки изображения на сервер!");
}
}
}else{
array_push($errMsg, "Ошибка получения изображения!");
}
$admin = 0; //Ставим постоянное значение, так как при регистрации пользователь не может быть админом
$login = trim($_POST['login']); //trim() используется для того, чтобы убрать все пробелы до и после
$email = trim($_POST['email']);
$firstname = trim($_POST['firstname']);
$lastname = trim($_POST['lastname']);
$password = trim($_POST['password']);
// $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$confpassword = trim($_POST['confirmpassword']);
$sex = trim($_POST['sex']);
$birthday = trim($_POST['calendar']);
$country = trim($_POST['country']);
$city = trim($_POST['city']);
$indexnumber = trim($_POST['zip']);
$img = trim($_POST['img']);
if($login === '' || $email === '' || $firstname === '' || $lastname === '' || $password === '' || $sex === '' || $birthday === '' || $country === '' || $city === '' || $indexnumber === '' || $img === '' ){
array_push($errMsg, "Не все поля заполнены!");
}elseif (mb_strlen($login, 'UTF8') < 2){
array_push($errMsg, "Логин должен быть более 2-х символов!");
}elseif ($password !== $confpassword) {
array_push($errMsg, "Пароли должны соответствовать друг другу!");
}else{
$existence = selectOne('users', ['email' => $email]);
if($existence['email'] === $email){
array_push($errMsg, "Пользователь с такой почтой уже зарегистрирован!");
}else{
$pass = password_hash($password, PASSWORD_DEFAULT); //Вставили хеширование пароля
$post =[
'admin'=> $admin,
'username'=> $login,
'email'=> $email,
'firstname'=> $firstname,
'lastname'=> $lastname,
'sex'=> $sex,
'birthday'=> $birthday,
'password'=> $pass, //изменился с $password на $pass з за хеширования переменной
'country'=> $country,
'city'=> $city,
'indexnumber'=> $indexnumber,
'img'=> $img
];
$id = insert('users', $post); //отправка на сервер в базу
$user = selectOne('users', ['id' => $id]);
userAuth($user);
}
}
}else{
$login = '';
$email = '';
$firstname = '';
$lastname = '';
$sex = '';
$birthday = '';
$country = '';
$city = '';
$indexnumber = '';
$img = '';
}
Идет при регистрации сохранение картинки в нужную папку. Затем пытаюсь вывести картинку
<a href="<?php echo BASE_URL . "personal.php"; ?>"><?php echo $_SESSION['login']; ?></a>
Но ничего не происходит. Кто знает как можно решить такую проблему?