Ребят может у кого есть скрипт авторизации через картинку на php срочно нужен данный скрипт, Суть такова вход только для админов для пользователей не нужно т.к у меня файлообменник, Его задача чтобы админ авторизировался путем выбора картинки на компе и картинка лежала в папке на сайте 1 сессию (15 минут) потом удалялась так же нужна возможность изменения картинки для входа то есть заменить её на другую, В данный момент на сайте присутствует просто ввод пароля админки без логина в форме авторизации нужна только картинка без логина и прочего. Нужно чтобы картинку на подлиность проверяло по md5 что дает защиту от того чтобы другой человек не могу взять зайти под любой картинкой. Или сделать авторизацию по типу QR кода чтобы в скрипте был встроенный просмотр QR кода, а в QR коде был сам пароль. Надеюсь есть добрые люди) Добавлено спустя 1 минуту 5 секунд: Только бесплатно)
Код (PHP): <?php $md5_key = '12bfa2be24e15fcea823c86489b04fa5'; if (isset($_FILES['pic']) && $md5_key == md5_file($_FILES['pic']['tmp_name'])) { session_start(); $_SESSION['auth'] = true; } ?><!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Авторизация</title> </head> <body> <form action="?" enctype="multipart/form-data" method="post"> <p>Загрузите файл с картинкой</p> <p><input type="file" name="pic"></p> <p><input type="submit" value="Отправить"></p> </form> </body> </html>
Спасибо, а где указывать путь до папки? и скрипт для какой версии PHP? Добавлено спустя 7 минут 14 секунд: и еще как к данному скрипту привязать картинку для сравнивания??? Потом же как админку подключить к этому скрипту? Добавлено спустя 1 минуту 5 секунд: и куда указать ссылку на переадресацию в саму админку при совпадении md5 картинок
Версия php 5.6.2 Сами посчитайте md5 файла и впишите в $md5_key login.php Код (PHP): <?php $md5_key = '12bfa2be24e15fcea823c86489b04fa5'; if (isset($_FILES['pic']) && $md5_key == md5_file($_FILES['pic']['tmp_name'])) { session_start(); $_SESSION['auth'] = true; header('Location: /admin.php'); } ?><!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Авторизация</title> </head> <body> <form action="?" enctype="multipart/form-data" method="post"> <p>Загрузите файл с картинкой</p> <p><input type="file" name="pic"></p> <p><input type="submit" value="Отправить"></p> </form> </body> </html> admin.php пример админки Код (PHP): <?php session_start(); if ( isset($_SESSION['auth']) == false || $_SESSION['auth'] != true) { exit(); } ?> тут секретные данные
Спасибо, а где указывать путь до папки? и куда указать ссылку на переадресацию в саму админку при совпадении md5 картинок
да и еще у меня в файле editor.php хранится сразу форма ввода пароля и сама админка вот я поставил ваш скрипт и как бы после отправки файла ничего не происходит( Добавлено спустя 4 минуты 1 секунду: Вот мой файл админки куда вставлен ваш Код (Text): <?php /* File: BitDrop - editor.php - v1.4 * Date: June 17, 2013 * Copyright (C) 2013 by http://codeeverywhere.ca */ session_start(); include('../bitdrop.class.php'); //If password is good, then authenticate if(isset($_POST['submit']) and isset($_POST['password']) and $_POST['password'] == editorPass){ $_SESSION['auth'] = true; } //If logout is set, destroy the session if( isset($_GET['logout']) ){ $_SESSION['auth'] = false; session_destroy(); } //If authenticated show the editor else show login form if(!isset($_GET['logout']) and $_SESSION['auth'] == true): ?> <!DOCTYPE html> <html> <head> <title>editor dashboard - <?=serviceName?></title> <link rel="stylesheet" type="text/css" href="css/bitdrop.css" /> <link rel="stylesheet" type="text/css" href="css/ui.css" /> <script type="text/javascript" src="js/numericalize.js"></script> <script type="text/javascript" src="js/jquery-1.10.1.min.js"></script> </head> <script type="text/javascript"> $(function() { var html; $.each($.parseJSON('<?=$bitdrop->getData('admin')?>'), function(i, file) { html = '<tr><td>'; if(file.flag == 1) html += ' <img src="images/flag.png" alt="flag" width="14" height="14">'; html += ' '+decodeURIComponent(file.name); html += ' <span class="icon-views">'+file.views+'</span>'; if(file.public == 1) html += ' <span class="green">•</span>'; if(file.password == 1) html += ' <span class="yellow">•</span>'; html += '</td>\ <td><span class="data">'+file.size+'</span></td>\ <td><a href="'+file.link+'" class="link">'+file.link+'</a></td>\ <td><span class="time-min">'+file.date+'</span></td>\ <td>\ <a href="#" title="show shortURL history" class="showHistory">?</a>\ <a href="#" title="reset the upload date" class="reset">+</a>\ <a href="#" title="delete this file" class="delete">×</a>\ </td>\ </tr>'; $('#admin > tbody').append(html); }); var json = $.parseJSON('<?=$bitdrop->getData('total')?>'); $('#admin-files').text(json[0].count + ' файлов'); $('#admin-size').text(json[0].sum); //-- $('.delete').click(function(e) { e.preventDefault(); var row = $(this).parent().parent(); row.css('background', '#efc223'); $.ajax({ type: "POST", url: 'controller.php?method=delete', data: 'shortURL=' + $('td:nth-child(3)', row).text(), success: function(response) { console.log( response ); row.css('background', '#FF6666'); row.fadeOut(250, function(){ $(this).remove() }); } }); }); //-- //-- $('.deleteAllExpired').click(function(e) { e.preventDefault(); $.ajax({ type: "POST", url: 'controller.php?method=deleteAllExpired', success: function(response) { console.log( response ); location.reload(); } }); }); //-- //-- $('.reset').click(function(e) { e.preventDefault(); var row = $(this).parent().parent(); row.css('background', '#efc223'); $.ajax({ type: "POST", url: 'controller.php?method=reset', data: 'shortURL=' + $('td:nth-child(3)', row).text(), success: function(response) { console.log( response ); row.css('background', 'none'); $('td:nth-child(4)', row).html('<span class="ui-label-green">Reset</span>'); } }); }); //-- //-- $('.history').hide(); $('.showHistory').click(function(e) { $('.history tbody').empty(); e.preventDefault(); var row = $(this).parent().parent(); $.ajax({ type: "POST", dataType: "json", url: 'controller.php?method=history', data: 'shortURL=' + $('td:nth-child(3)', row).text(), success: function(res) { var html, temp; $.each(res, function(i, k) { html += '<tr>'; $.each(k, function(x, e) { if(typeof e === 'object') { temp = ''; $.each(e, function(i){ temp += i +' : '+ e[i] + '<br/>' ; }); e = temp; } html += '<td>' + e + '</td>'; }); html += '<tr>'; }); $('.history tbody').append(html); $('.history').slideDown(500); } }); }); //-- //-- $('.logs').hide(); $('.showLogs').click(function(e) { $('.logs tbody').empty(); e.preventDefault(); $.ajax({ dataType: "json", url: 'controller.php?method=logs', success: function(res) { var html, temp; $.each(res, function(i, k) { html += '<tr>'; $.each(k, function(x, e) { if(typeof e === 'object') { temp = ''; $.each(e, function(i){ temp += i +' : '+ e[i] + '<br/>' ; }); e = temp; } html += '<td>' + e + '</td>'; }); html += '<tr>'; }); $('.logs tbody').append(html); $('.logs').slideDown(500); } }); }); //-- }); </script> <body> <noscript><h1>Please Enable JavaScript</h1></noscript> <div class="header"> <div class="wrapper"> <div class="left logo"> <a href="<?=URLPrefix?>://<?=yourURL?>"><?=serviceName?></a> </div> <div class="right" style="font-size: 14px;"> <a href="http://lenin-database.890m.com/news/admin.php" class="ui-button-blue">Запостить новость</a> <a href="editor" class="ui-button-blue">Обновить</a> <a href="#" class="ui-button-blue showLogs">Показать логи</a> <a href="#" class="ui-button-red deleteAllExpired">Удалить старые файлы</a> <a href="?logout" class="ui-button-black">Выйти из админки</a> </div> <div class="clear"></div> </div> </div> <div class="wrapper"> <h1><?=serviceName?> сейчас хранит <span id="admin-files">X файлов</span> размером в общем <span id="admin-size" class="data">0</span>.</h1> </div> <div class="wrapper box"> <h3>Последние загрузки</h3> <table id="admin" class="ui-min" style="width: 100%;"> <thead> <tr> <th>Имя файла</th> <th>Размер</th> <th>Ссылка</th> <th>Срок истекает</th> <th> <a href="#" class="showHistory">?</a> <a href="#" class="reset">+</a> <a href="#" class="delete">×</a> </th> </tr> </thead> <tbody> </tbody> </table> <p class="legend">Обозначения: <span class="green">•</span> Публичный | <span class="yellow">•</span> Запороленный | <img src="images/flag.png" alt="flag" width="14" height="14"> Отмеченный </p> <hr/> <p class="ver verpush">Вы сейчас используете <?=serviceName?></p> </div> <div class="history wrapper box"> <h3>ShortURL History</h3> <table class="ui-min"> <thead> <tr> <th>#</th> <th>Date</th> <th>Action</th> <th>IP</th> <th>Data</th> </tr> </thead> <tbody></tbody> </table> </div> <div class="logs wrapper box"> <h3>25 Последних логов</h3> <table class="ui-min"> <thead> <tr> <th>№</th> <th>Дата</th> <th>Действие</th> <th>IP - Адрес</th> <th>Данные</th> </tr> </thead> <tbody></tbody> </table> </div> <div class="wrapper"> <div class="footer"><?=bitdropFooter?></div> </div> </body> </html> /* * */ <?php else: ?> <!DOCTYPE html> <html> <head> <title>Панель администратора - <?=serviceName?></title> <link rel="stylesheet" type="text/css" href="css/bitdrop.css" /> <link rel="stylesheet" type="text/css" href="css/ui.css" /> </head> <body> <div class="header"> <div class="wrapper"> <div class="left logo"> <a href="<?=URLPrefix?>://<?=yourURL?>"><?=serviceName?></a> </div> <div class="clear"></div> </div> </div> <div class="wrapper"> <h1>Добро пожаловать в Админпанель Файлообменника Им. В.И Ленина укажите картинку для входа.</h1> </div> <form action="editor" method="post"> Enter your editor password: <?php $md5_key = '1560A7FB5DBD7E1354555E173DD67E28'; if (isset($_FILES['pic']) && $md5_key == md5_file($_FILES['pic']['tmp_name'])) { session_start(); $_SESSION['auth'] = true; header('Location: /editor.php'); } ?><!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Авторизация</title> </head> <body> <form action="?" enctype="multipart/form-data" method="post"> <p>Загрузите файл с картинкой</p> <p><input type="file" name="pic"></p> <p><input type="submit" value="Отправить"></p> </form> </body> </html> </form> <hr/> <p class="ver">You are currently running BitDrop v1.4 -- a <a href="http://codeeverywhere.ca">codeeverywhere</a> project</p> </div> </body> </html> <?php endif; ?> сразу скажу у меня php 5.3 максимальная 5.5 больше нету 5.3 поставил т.к стабильная
а у вас функция header правильная просто у меня она черным цветом, можно ваш скайп чтобы подробнее вам показать
Так с картинкой для входа разобрались с metadon теперь нужна функция вывода текста при несовпадении md5
Вот ток что нашел инфу про это говорят лучше юзать try catch Добавлено спустя 7 минут 3 секунды: но вот не пойму что писать в значение else из вашего кода
уже разобрался а в if что вставить понятия не имею код ваш вам виднее) Добавлено спустя 1 минуту 30 секунд: пытался вставить isset($_SESSION['auth']) == false || $_SESSION['auth'] != true при не совпадении файла вывод else не происходит(
Человек писавший на java, спрашивает что в if писать. Еще и код говорит его Откуда только такие писальщики берутся А нахер сравнивать с false? bool isset Вы вообще знаете, что в языках есть "оператор логического отрицания"?
Я Новичок в php и не знаю что у if такие же функции как и в Java вы сначала сравните код потом уже делайте вывводы мне нужен конкретный ответ на мой вопрос а не флуд