четверг, 28 сентября 2017 г.

Соцсеть. Добавление фотографий в профили пользователей. Урок 20.

Добавление фотографий в профили пользователей.


Внесем изменения в файл index.php
Изменим вывод сообщений для пользователей.

<?php
include('./classes/DB.php');
include('./classes/Login.php');
include('./classes/Post.php');
include('./classes/Comment.php');
$showTimeline = False;
if(Login::isLoggedIn()) {
$userid = Login::isLoggedIn();
$showTimeline = True; // если пользователь залогинен, то показываем собщения
//echo 'Logged in';
echo Login::isLoggedIn()."<br />";
} else {
echo 'Not logged in';
}
// лайки
if (isset($_GET['postid'])) {
Post::likePost($_GET['postid'], $userid);
}
// комментарии
if (isset($_POST['comment'])) {
Comment::createComment($_POST['commentbody'], $_GET['postid'], $userid);
}

// отображаются посты всех, за кем следует пользователь с id=4
$followingposts = DB::query('SELECT posts.id, posts.body, posts.likes, users.`username` FROM users, posts, followers
WHERE posts.user_id = followers.user_id
AND users.id = posts.user_id
AND follower_id = :userid
ORDER BY posts.likes DESC;', array(':userid'=>$userid));
//print_r($followingposts);
foreach($followingposts as $post) {
echo $post['body']." ~ ".$post['username'];
echo "<form action='index.php?postid=".$post['id']."' method='post'>";
if (!DB::query('SELECT post_id FROM post_likes WHERE post_id=:postid AND user_id=:userid', array(':postid'=>$post['id'], ':userid'=>$userid))) {
echo "<input type='submit' name='like' value='Like'/>";
} else {
echo "<input type='submit' name='unlike' value='Unlike'/>";
}
echo "<span>".$post['likes']." likes</span>
</form>
<form action='index.php?postid=".$post['id']."' method='post'>
<textarea name='commentbody' rows='3' cols='50'></textarea>
<input type='submit' name='comment' value='Comment'/>
</form>";
Comment::displayComments($post['id']);
echo "<hr /><br />";
}
?>

Теперь скачаем imgur по ссылке https://api.imgur.com/
Сначала регистрируем ваше приложение https://api.imgur.com/#registerapp

Client ID:
28cddbb60c2368a

Client secret:
81e95228bd55449c0671ae32eb838493bcbc0897

Здесь инструкция: https://api.imgur.com/oauth2

Копируем это и вставляем в браузер:
https://api.imgur.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=REQUESTED_RESPONSE_TYPE&state=APPLICATION_STATE

Подставляем свои данные:

Нажимаем allow. Копируем url.

Узнаем токены.
access_token: cf181ec3d2fb5d75ceb796032e65368406362c79

refresh_token: 1b403544d8af7b42b360a729b34dce25b96c06eb

Создадим новую страницу my-account.php
<?php


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";

//print_r($_FILES);
// загрузка имеджера
$response = file_get_contents($imgurURL, false, $context);
}

?>
<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>


Обновим страницу https://anastasia4.imgur.com/all/
И фото появляются здесь.
Документация здесь: https://api.imgur.com/endpoints/image#image-upload


Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html