Обновление фото профиля.
В БД в таблице users
добавим поле profileimg varchar
255 allow null
Идем в файл
create-account.php и
меняем добавляемые данные.
Вносим
пустую строку.
<?php
include('classes/DB.php');
if(isset($_POST['createaccount']))
{
$username =
$_POST['username'];
$password =
$_POST['password'];
$email =
$_POST['email'];
if(!DB::query('SELECT
username FROM users WHERE username=:username',
array(':username'=>$username))) {
if(strlen($username)
>= 3 && strlen($username) <= 32) {
if(preg_match('/[a-zA-Z0-9_]+/', $username)) {
if(strlen($password)
>= 6 && strlen($password) <= 60) {
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
if(!DB::query('SELECT email FROM users WHERE
email=:email', array(':email'=>$email))) {
DB::query('INSERT INTO users VALUES (:id,
:username, :password, :email, \'0\', \'\')', array(':id'=>null,
':username'=>$username,
':password'=>password_hash($password, PASSWORD_BCRYPT),
':email'=>$email));
echo
"Success!";
}
else {
echo
'Email in use!';
}
}
else {
echo
'Invalid email!';
}
}
else {
echo
'Invalid password!';
}
} else {
echo
'Invalid username!';
}
} else {
echo
'Invalid username!';
}
} else {
echo 'User
already exists!';
}
}
?>
<h1>Register</h1>
<form
action="create-account.php" method="post">
<p><input
type="text" name="username"
placeholder="Username"/></p>
<p><input
type="password" name="password"
placeholder="Password"/></p>
<p><input
type="email" name="email"
placeholder="someone@somesite.com"/></p>
<input
type="submit" name="createaccount" value="Create
Account"/>
</form>
Регистрируем нового
пользователя для проверки по адресу:
http://newsocial.loc/create-account.php
В поле картинка
записывается пустая строка.
В файле my-account.php
проверяем залогинен ли
пользователь.
И записываем
ссылку на загруженное фото в БД.
<?php
include('./classes/DB.php');
include('./classes/Login.php');
if(Login::isLoggedIn())
{
$userid
= Login::isLoggedIn();
}
else {
die('Not
logged in');
}
if
(isset($_POST['uploadprofileimg'])) {
$image
=
base64_encode(file_get_contents($_FILES['profileimg']['tmp_name']));
$options
= array('http'=>array(
'method'=>"POST",
'header'=>"Authorization: Bearer
cf181ec3d2fb5d75ceb796032e65368406362c79\n".
"Content-Type:
application/x-www-form-urlencoded",
'content'=>$image
));
$context
= stream_context_create($options); // stream_context_create —
Создаёт контекст потока
$imgurURL
= "https://api.imgur.com/3/image";
//
проверяем размер загужаемго изображения
> 10MB
if
($_FILES['profileimg']['size'] > 10240000) {
die('Image
too big, must be 10MB or less!');
}
//print_r($_FILES);
//
загрузка имеджера
$response
= file_get_contents($imgurURL, false, $context);
$response
= json_decode($response);
echo
"<pre>";
print_r($response);
echo
"</pre>";
echo
$response->data->link;
DB::query("UPDATE users SET profileimg
=:profileimg WHERE id=:userid",
array(':profileimg'=>$response->data->link,
':userid'=>$userid));
}
?>
<h1>My
account</h1>
<form
action="my-account.php" method="post"
enctype="multipart/form-data">
Upload
a profile image:
<input
type="file" name="profileimg"/>
<input
type="submit" name="uploadprofileimg"
value="Upload Image"/>
</form>
Комментариев нет:
Отправить комментарий