PHP разработчики. Обсуждение.

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
25 Июл 2018
Сообщения
34
Реакции
10
Хейоу народ. Я так понял что тут нет подобных тем, как бы я это не искал, но авторизацию без БД не видел. Однако для нескольких аккаунтов это удобно.

Давайте начнём с того что мы будем делать и как:
- Создадим файл, в котором будет массив с аккаунтами, назовём accounts.php
- Создадим файл index.php в котором будет проверка сессии на авторизацию
- Создадим файл home.php и login.php - там будет всё.

Приступим.

Создаём файл accounts.php и пишем там такой код:
Код:
Expand Collapse Copy
<?php
$acccounts = array(
'admin' => 'admin', // логин => пароль.
'dev' => 'dev',
);

Let's go дальше.
Создаём файл index.php там будет проверка сессии, пишем следующий код:
Код:
Expand Collapse Copy
<?php
session_start();
if($_session['authed'] == "yes")
{
header("Location: /home.php"); // перенаправляем на home.php
} else
{
header("Location: /login.php"); // перенаправляем на login.php
}

Такс, тут мы сделали, идём дальше, в файл login.php, ловите код:
Код:
Expand Collapse Copy
<?php
require("accounts.php");
session_start();
if($_session['authed'] == "yes") { header("Location: /home.php"); } // перенаправляем если пользователь зашёл по ссылке на этот файл и уже был авторизован.
if(isset($_POST['btnlogin']))
{
 if($_POST['password'] == $accounts[$_POST['login']])
 {
  $_SESSION['authed'] = "yes";
 } else {
  echo "Не верный пароль.";
 }
}
?>
<form method="post">
<input type="login" name="login" placeholder="Login">
<input type="password" name="password" placeholder="Password">
<button type="submit" name="btnlogin">Login</button>
</form>

Вот вроде бы и всё, но ещё файл home.php
Код:
Expand Collapse Copy
<?php
session_start();
if($_session['authed'] != "yes")
{
 header("Location: /index.php");  // если не верно, перенаправит на Index.php где после проверки отправит на login.php.
}

Вот и всё, теперь размещаем в файле home.php ваш код админки и готово!

Писал сам, копипасты тут нет ;-)
Думаю тема была кому-то полезной, если найдёте ошибки в коде или будут проблемы - пишите - решим!
 
Последнее редактирование модератором:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Что с ней делать?
 
Хейоу вот опять я со своим кодом, но сегодня я задался вопросом, а понимают ли люди как отправлять POST на чужой сервер?
В интернете есть ответ на этот вопрос, но на форуме я не нашёл.

И так, в данном случае, есть сайт: example.com/getinfo.php (пример) и он принимает только POST запросы, так вот как можно отправить их?
Есть 2 способа:
- Через <form> (указываем в action ссылку на этот скрипт), но это не удобно и не всегда получится его использовать.
- Через Curl - его мы сейчас и рассмотрим.

И так, к примеру я делаю бота для ВК и мне нужно отправить POST с параметрами пользователя.
Сервер example.com/getinfo.php принимает только POST запросы и 1 параметр - uid
Если бы это был GET запрос, выглядело бы всё достаточно просто - example.com/getinfo.php?uid=ид, но у нас только POST

Рассмотрим следующий код:
Код:
Expand Collapse Copy
$id = "1";

$dwcurl = curl_init();
curl_setopt_array($dwcurl, array(
    CURLOPT_URL => 'https://example.com/getinfo.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query(array('uid' => $id))
));
$response = curl_exec($dwcurl); // получаем ответ на наш POST запрос
curl_close($dwcurl);

А тем кто захотел использовать <form> вот код:
Код:
Expand Collapse Copy
<form action="https://example.com/getinfo.php" method="POST">
<input name="uid" placeholder="Enter id">
<button type="submit">Get info</button>
</form>

Как видим, теперь в переменной $response у нас хранится ответ сервера после POST запроса с параметрами.

Ещё 1 вариант через file_get_contents (предложил https://yougame.biz/members/4580/)
Код:
Expand Collapse Copy
function request(string $url, array $data = []): string
{
    $context = stream_context_create([
        'http' => [
            'method' => 'POST',
            'content' => http_build_query($data),
        ],
    ]);

    return @file_get_contents($url, false, $context);
}

Думаю вам понравится.
 
Последнее редактирование:
мм.ты просто сообщение отредактировал
1 . там было в конце написано Жду лайкоф
Ты такую херню несешь, всем понятно, о чём ты говорил.
2. Если ты не понимаешь рофлов, это уже не мои проблемы. Я согласился с твоим сообщением и убрал из него текст "Жду лайкоф"
 
твоя бд это файлик с массивом?:roflanEbalo:

$id = "1"; $dwcurl = curl_init(); curl_setopt_array($dwcurl, array( CURLOPT_URL => '
Пожалуйста, авторизуйтесь для просмотра ссылки.
', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(array('uid' => $id)) )); $response = curl_exec($dwcurl); // получаем ответ на наш POST запрос curl_close($dwcurl);

предпочтительнее будет проверять наличие курла, и вообще можно через file_get_contents слать посты

Код:
Expand Collapse Copy
function request(string $url, array $data = []): string
{
    $context = stream_context_create([
        'http' => [
            'method' => 'POST',
            'content' => http_build_query($data),
        ],
    ]);

    return @file_get_contents($url, false, $context);
}
 
твоя бд это файлик с массивом?
Я писал, что для админки без бд можно сделать. Достаточно массива, всего лишь несколько аккаунтов. Ты ведь не будешь доверять 1000 людям админку своего сайта.
предпочтительнее будет проверять наличие курла, и вообще можно через file_get_contents слать посты
Хорошо, но этот вариант тоже правильный + в основном на всех хостах и всех ЛокалСерверах есть Curl (Denwer, OpenServer и т.п.). Да и писал я что через Curl есть вариант, я не писал что нет вариантов больше ;-)
 
Хорошо, но этот вариант тоже правильный + в основном на всех хостах и всех ЛокалСерверах есть Curl (Denwer, OpenServer и т.п.)
если отправлять запросы с прокси (http/https) через курл, то будет дико жрать цп) поэтому в данном случае лучше использовать вариант с file_get_contents
 
Не знаю кому может пригодиться QR генератор. но сейчас расскажу как создавать QR через PHP на своём сайте.

Нам понадобится PHP QR Code (Библиотека)
Ссылка
Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама!)

И так, скачиваем архив с библиотекой, в ней будет папка phpqrcode, закидываем её на наш хост.
Дальше создаём файл qr.php (к примеру, любое название) и пишем туда следующий код:

Код:
Expand Collapse Copy
<?php
include('phpqrcode/qrlib.php');
QRcode::png('Этот текст будет в QR коде');

Можно сделать сохранение в файл, это указано в документации библиотеки на оф сайте.

QR код можно расшифровать специальными приложениями.
Так-же можно зашифровать отправку сообщения, мобильный телефон и сайт помимо текста.

Думаю пойдёт.
 
Хейоу народ. Я так понял что тут нет подобных тем, как бы я это не искал, но авторизацию без БД не видел. Однако для нескольких аккаунтов это удобно.

Давайте начнём с того что мы будем делать и как:
- Создадим файл, в котором будет массив с аккаунтами, назовём accounts.php
- Создадим файл index.php в котором будет проверка сессии на авторизацию
- Создадим файл home.php и login.php - там будет всё.

Приступим.

Создаём файл accounts.php и пишем там такой код:
Код:
Expand Collapse Copy
<?php
$acccounts = array(
'admin' => 'admin', // логин => пароль.
'dev' => 'dev',
);

Let's go дальше.
Создаём файл index.php там будет проверка сессии, пишем следующий код:
Код:
Expand Collapse Copy
<?php
session_start();
if($_session['authed'] == "yes")
{
header("Location: /home.php"); // перенаправляем на home.php
} else
{
header("Location: /login.php"); // перенаправляем на login.php
}

Такс, тут мы сделали, идём дальше, в файл login.php, ловите код:
Код:
Expand Collapse Copy
<?php
require("accounts.php");
session_start();
if($_session['authed'] == "yes") { header("Location: /home.php"); } // перенаправляем если пользователь зашёл по ссылке на этот файл и уже был авторизован.
if(isset($_POST['btnlogin']))
{
 if($_POST['password'] == $accounts[$_POST['login']])
 {
  $_SESSION['authed'] = "yes";
 } else {
  echo "Не верный пароль.";
 }
}
?>
<form method="post">
<input type="login" name="login" placeholder="Login">
<input type="password" name="password" placeholder="Password">
<button type="submit" name="btnlogin">Login</button>
</form>

Вот вроде бы и всё, но ещё файл home.php
Код:
Expand Collapse Copy
<?php
session_start();
if($_session['authed'] != "yes")
{
 header("Location: /index.php");  // если не верно, перенаправит на Index.php где после проверки отправит на login.php.
}

Вот и всё, теперь размещаем в файле home.php ваш код админки и готово!

Писал сам, копипасты тут нет ;-)
Думаю тема была кому-то полезной, если найдёте ошибки в коде или будут проблемы - пишите - решим!
Тупа минус безопасность.

Проверять не саму авторизацию, а значение в массиве сессии, ебануться.
Не показывай эту хуйню никому больше пж.

Даже если ты лоу девелопер, изучи код нормальной авторизации, я такой хуйни не видел ещё.

Что с ней делать?
Не юзать такое убожество нахуй.


Хейоу вот опять я со своим кодом, но сегодня я задался вопросом, а понимают ли люди как отправлять POST на чужой сервер?
В интернете есть ответ на этот вопрос, но на форуме я не нашёл.

И так, в данном случае, есть сайт: example.com/getinfo.php (пример) и он принимает только POST запросы, так вот как можно отправить их?
Есть 2 способа:
- Через <form> (указываем в action ссылку на этот скрипт), но это не удобно и не всегда получится его использовать.
- Через Curl - его мы сейчас и рассмотрим.

И так, к примеру я делаю бота для ВК и мне нужно отправить POST с параметрами пользователя.
Сервер example.com/getinfo.php принимает только POST запросы и 1 параметр - uid
Если бы это был GET запрос, выглядело бы всё достаточно просто - example.com/getinfo.php?uid=ид, но у нас только POST

Рассмотрим следующий код:
Код:
Expand Collapse Copy
$id = "1";

$dwcurl = curl_init();
curl_setopt_array($dwcurl, array(
    CURLOPT_URL => 'https://example.com/getinfo.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query(array('uid' => $id))
));
$response = curl_exec($dwcurl); // получаем ответ на наш POST запрос
curl_close($dwcurl);

А тем кто захотел использовать <form> вот код:
Код:
Expand Collapse Copy
<form action="https://example.com/getinfo.php" method="POST">
<input name="uid" placeholder="Enter id">
<button type="submit">Get info</button>
</form>

Как видим, теперь в переменной $response у нас хранится ответ сервера после POST запроса с параметрами.

Ещё 1 вариант через file_get_contents (предложил https://yougame.biz/members/4580/)
Код:
Expand Collapse Copy
function request(string $url, array $data = []): string
{
    $context = stream_context_create([
        'http' => [
            'method' => 'POST',
            'content' => http_build_query($data),
        ],
    ]);

    return @file_get_contents($url, false, $context);
}

Думаю вам понравится.
Form
Ajax
Curl
File_get_contents

Курла более узкое применение имеет.
Через неё можно авторизоваться на другом сайте по одному клику. Ну и манипулировать функциями уже авторизованным.


Не знаю кому может пригодиться QR генератор. но сейчас расскажу как создавать QR через PHP на своём сайте.

Нам понадобится PHP QR Code (Библиотека)
Ссылка
Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама!)

И так, скачиваем архив с библиотекой, в ней будет папка phpqrcode, закидываем её на наш хост.
Дальше создаём файл qr.php (к примеру, любое название) и пишем туда следующий код:

Код:
Expand Collapse Copy
<?php
include('phpqrcode/qrlib.php');
QRcode::png('Этот текст будет в QR коде');

Можно сделать сохранение в файл, это указано в документации библиотеки на оф сайте.

QR код можно расшифровать специальными приложениями.
Так-же можно зашифровать отправку сообщения, мобильный телефон и сайт помимо текста.

Думаю пойдёт.
Какие нахуй QR коды, ты видел пользователей форума?
Они спастить не смогут нормально.

Нахуя им qr коды?
В принципе можно сделать авторизацию черех QR, но боюсь ты и сам не потянешь. Что уж говорить про юзеров форума.
 
Тупа минус безопасность.

Проверять не саму авторизацию, а значение в массиве сессии, ебануться.
Не показывай эту хуйню никому больше пж.

Даже если ты лоу девелопер, изучи код нормальной авторизации, я такой хуйни не видел ещё.


Не юзать такое убожество нахуй.



Form
Ajax
Curl
File_get_contents

Курла более узкое применение имеет.
Через неё можно авторизоваться на другом сайте по одному клику. Ну и манипулировать функциями уже авторизованным.



Какие нахуй QR коды, ты видел пользователей форума?
Они спастить не смогут нормально.

Нахуя им qr коды?
В принципе можно сделать авторизацию черех QR, но боюсь ты и сам не потянешь. Что уж говорить про юзеров форума.

Авторизация как пример, могу с бд сделать.
QR не относится к авторизации никак это 1, а 2 - попробовать можно ;-) Не задумывался.
 
Хейоу народ. Я так понял что тут нет подобных тем, как бы я это не искал, но авторизацию без БД не видел
Твоя авторизация статична.
Она мало того что не безопасна.
Она - хуйня.

И да, в каком хосте нету бд?
Ладно несколько лет назад трудно было найти такой хост, особенно фри, но сейчас во всех хостингах есть это.

Лучше бы показал авторизацию через ВК/СТИМ , чем эту хуйню ненужную.

Я ещё более хуею как это дерьмо лайкают.
Он блять сравнивает переменную в массиве без проверки данных пользователей.

Ты просто расширением открываешь сессию и редактируешь её под yes и ты уже в админке.

Даже в дефолт индиги куда лучше безопасность чем здесь.
 
Тупа минус безопасность.
Что-то не нравится, сделай тут пост "БЕЗОПАСНАЯ АВТОРИЗАЦИЯ"
 
И да, в каком хосте нету бд?
Ладно несколько лет назад трудно было найти такой хост, особенно фри, но сейчас во всех хостингах есть это.
Я и не говорил что нету, это лишь как вариант, и я ни слова о безопасности не говорил. У копипастеров я уверен не будет большого актива. Тем более топхакеров которые умеют менять сессии (тож копипастеры). А если на форуме актив большой, человек не станет копипастить код, как минимум закажет на заказ.
 
Что-то не нравится, сделай тут пост "БЕЗОПАСНАЯ АВТОРИЗАЦИЯ"
 

Я и не говорил что нету, это лишь как вариант, и я ни слова о безопасности не говорил. У копипастеров я уверен не будет большого актива. Тем более топхакеров которые умеют менять сессии (тож копипастеры). А если на форуме актив большой, человек не станет копипастить код, как минимум закажет на заказ.
Тогда нахер здесь эта тема?
Ты либо сразу нормальную тему пиши, либо вообще не создавай такой херни.

А если на форуме актив большой, человек не станет копипастить код, как минимум закажет на заказ.
На что расчитан гайд?
- Научить человека.

Ты научил людей чему?
- Быдло коду и шеллам в безопасности.

Какова цель этих постов?
Ты пришел научить людей или же схавать порцию лайков?
Если второе, то я не дам сделать такой херни. По крайней мере в моей ветке, которую я не дам засрать подобным дерьмом.

Если хочешь научить людей тому что знаешь сам, так будь добр, поимей для начала сам знаний, прежде чем выкладывать подобную тему.

Нет, у меня горит не потому-что здесь такой код и такой гайд.
У меня горит потому , что я в свое время делал гайды максимум понятно и открыто, без подобных шеллов и просто научить людей тому что знаю я сам.

Тема не имеет отношения к JS вроде по заголовку понятно.
Если ты затрагиваешь вопрос об отправке GET/POST данных, ты должен упомянуть все возможные способы отправки, ну или хотя-бы основные.

Что-то не нравится, сделай тут пост "БЕЗОПАСНАЯ АВТОРИЗАЦИЯ"
Я уже сливал быдло-панель , но даже блять там нормальная авторизация.
 
Назад
Сверху Снизу