За последние 24 часа нас посетили 17713 программистов и 1625 роботов. Сейчас ищут 1016 программистов ...

Нужен скрипт входа на сайт через Картинку

Тема в разделе "Сделайте за меня", создана пользователем JIEHNH, 12 ноя 2014.

  1. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Ребят может у кого есть скрипт авторизации через картинку на php срочно нужен данный скрипт, Суть такова вход только для админов для пользователей не нужно т.к у меня файлообменник, Его задача чтобы админ авторизировался путем выбора картинки на компе и картинка лежала в папке на сайте 1 сессию (15 минут) потом удалялась так же нужна возможность изменения картинки для входа то есть заменить её на другую, В данный момент на сайте присутствует просто ввод пароля админки без логина в форме авторизации нужна только картинка без логина и прочего. Нужно чтобы картинку на подлиность проверяло по md5 что дает защиту от того чтобы другой человек не могу взять зайти под любой картинкой. Или сделать авторизацию по типу QR кода чтобы в скрипте был встроенный просмотр QR кода, а в QR коде был сам пароль. Надеюсь есть добрые люди)

    Добавлено спустя 1 минуту 5 секунд:
    Только бесплатно)
     
  2. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Код (PHP):
    1. <?php
    2. $md5_key = '12bfa2be24e15fcea823c86489b04fa5';
    3.  
    4. if (isset($_FILES['pic']) && $md5_key == md5_file($_FILES['pic']['tmp_name'])) {
    5.     session_start();
    6.     $_SESSION['auth'] = true;
    7. }
    8. ?><!DOCTYPE HTML>
    9. <html>
    10.  <head>
    11.   <meta charset="utf-8">
    12.   <title>Авторизация</title>
    13.  </head>
    14.  <body>  
    15.   <form action="?"
    16.    enctype="multipart/form-data" method="post">
    17.    <p>Загрузите файл с картинкой</p>
    18.    <p><input type="file" name="pic"></p>
    19.    <p><input type="submit" value="Отправить"></p>
    20.   </form>
    21.  </body>
    22. </html>
     
  3. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Спасибо, а где указывать путь до папки? и скрипт для какой версии PHP?

    Добавлено спустя 7 минут 14 секунд:
    и еще как к данному скрипту привязать картинку для сравнивания??? Потом же как админку подключить к этому скрипту?

    Добавлено спустя 1 минуту 5 секунд:
    и куда указать ссылку на переадресацию в саму админку при совпадении md5 картинок
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а вот это уже за деньги)))
     
  5. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Я подожду ответа человека который дал скрипт
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    сарказм же))) какие все серьезные стали, я прям не могу)))))
     
  7. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Я думал вы в серьез так вы не знаете ответов?
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а мне нельзя оффтопить пока вы ждете решения?)))
     
  9. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Версия php 5.6.2
    Сами посчитайте md5 файла и впишите в $md5_key

    login.php
    Код (PHP):
    1. <?php
    2. $md5_key = '12bfa2be24e15fcea823c86489b04fa5';
    3.  
    4. if (isset($_FILES['pic']) && $md5_key == md5_file($_FILES['pic']['tmp_name'])) {
    5.     session_start();
    6.     $_SESSION['auth'] = true;
    7.     header('Location: /admin.php');
    8. }
    9. ?><!DOCTYPE HTML>
    10. <html>
    11.  <head>
    12.   <meta charset="utf-8">
    13.   <title>Авторизация</title>
    14.  </head>
    15.  <body>  
    16.   <form action="?"
    17.    enctype="multipart/form-data" method="post">
    18.    <p>Загрузите файл с картинкой</p>
    19.    <p><input type="file" name="pic"></p>
    20.    <p><input type="submit" value="Отправить"></p>
    21.   </form>
    22.  </body>
    23. </html>
    admin.php пример админки
    Код (PHP):
    1. <?php
    2. if ( isset($_SESSION['auth']) == false || $_SESSION['auth'] != true) {
    3. exit();
    4. }
    5. ?>
    6. тут секретные данные
     
  10. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Спасибо, а где указывать путь до папки? и куда указать ссылку на переадресацию в саму админку при совпадении md5 картинок
     
  11. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    пере адресация Location: /admin.php
    перенаправляй в админку
     
  12. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    а путь куда картинки буду сохранятся или они не будут сохранятся???
     
  13. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    они во временной директории, смотреть можно в php.ini где она
     
  14. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    да и еще у меня в файле editor.php хранится сразу форма ввода пароля и сама админка вот я поставил ваш скрипт и как бы после отправки файла ничего не происходит(

    Добавлено спустя 4 минуты 1 секунду:
    Вот мой файл админки куда вставлен ваш
    Код (Text):
    1. <?php
    2. /* File:    BitDrop - editor.php - v1.4
    3.  * Date:    June 17, 2013
    4.  * Copyright (C) 2013 by http://codeeverywhere.ca
    5.  */
    6. session_start();
    7.  
    8. include('../bitdrop.class.php');
    9.  
    10. //If password is good, then authenticate
    11. if(isset($_POST['submit']) and isset($_POST['password']) and $_POST['password'] == editorPass){ $_SESSION['auth'] = true; }
    12.  
    13. //If logout is set, destroy the session
    14. if( isset($_GET['logout']) ){ $_SESSION['auth'] = false; session_destroy(); }
    15.  
    16. //If authenticated show the editor else show login form
    17. if(!isset($_GET['logout']) and $_SESSION['auth'] == true):
    18. ?>
    19. <!DOCTYPE html>
    20. <html>
    21.     <head>
    22.         <title>editor dashboard - <?=serviceName?></title>
    23.        
    24.         <link rel="stylesheet" type="text/css" href="css/bitdrop.css" />
    25.         <link rel="stylesheet" type="text/css" href="css/ui.css" />
    26.        
    27.         <script type="text/javascript" src="js/numericalize.js"></script>
    28.         <script type="text/javascript" src="js/jquery-1.10.1.min.js"></script>
    29.     </head>
    30.    
    31.     <script type="text/javascript">
    32.     $(function()
    33.     {
    34.         var html;
    35.         $.each($.parseJSON('<?=$bitdrop->getData('admin')?>'), function(i, file)
    36.         {
    37.             html = '<tr><td>';
    38.             if(file.flag == 1) html += ' <img src="images/flag.png" alt="flag" width="14" height="14">';
    39.             html += ' '+decodeURIComponent(file.name);
    40.             html += ' <span class="icon-views">'+file.views+'</span>';
    41.             if(file.public == 1) html += ' <span class="green">&bull;</span>';
    42.             if(file.password == 1) html += ' <span class="yellow">&bull;</span>';
    43.             html += '</td>\
    44.             <td><span class="data">'+file.size+'</span></td>\
    45.             <td><a href="'+file.link+'" class="link">'+file.link+'</a></td>\
    46.             <td><span class="time-min">'+file.date+'</span></td>\
    47.             <td>\
    48.             <a href="#" title="show shortURL history" class="showHistory">?</a>\
    49.             <a href="#" title="reset the upload date" class="reset">&plus;</a>\
    50.             <a href="#" title="delete this file" class="delete">&times;</a>\
    51.             </td>\
    52.             </tr>';
    53.         $('#admin > tbody').append(html);
    54.         });
    55.        
    56.         var json = $.parseJSON('<?=$bitdrop->getData('total')?>');
    57.         $('#admin-files').text(json[0].count + ' файлов');       
    58.         $('#admin-size').text(json[0].sum);
    59.        
    60.         //--
    61.         $('.delete').click(function(e)
    62.         {
    63.             e.preventDefault();
    64.             var row = $(this).parent().parent();
    65.             row.css('background', '#efc223');
    66.             $.ajax({
    67.                 type: "POST",
    68.                 url: 'controller.php?method=delete',
    69.                 data: 'shortURL=' + $('td:nth-child(3)', row).text(),
    70.                 success: function(response)
    71.                 {
    72.                     console.log( response );
    73.                     row.css('background', '#FF6666');
    74.                     row.fadeOut(250, function(){ $(this).remove() });
    75.                 }
    76.             });
    77.         });
    78.         //--
    79.        
    80.         //--
    81.         $('.deleteAllExpired').click(function(e)
    82.         {
    83.             e.preventDefault();
    84.             $.ajax({
    85.                 type: "POST",
    86.                 url: 'controller.php?method=deleteAllExpired',
    87.                 success: function(response)
    88.                 {
    89.                     console.log( response );
    90.                     location.reload();
    91.                 }
    92.             });
    93.         });
    94.         //--
    95.        
    96.         //--
    97.         $('.reset').click(function(e)
    98.         {
    99.             e.preventDefault();
    100.             var row = $(this).parent().parent();
    101.             row.css('background', '#efc223');
    102.             $.ajax({
    103.                 type: "POST",
    104.                 url: 'controller.php?method=reset',
    105.                 data: 'shortURL=' + $('td:nth-child(3)', row).text(),
    106.                 success: function(response)
    107.                 {
    108.                     console.log( response );
    109.                     row.css('background', 'none');
    110.                     $('td:nth-child(4)', row).html('<span class="ui-label-green">Reset</span>');
    111.                 }
    112.             });
    113.         });
    114.         //--
    115.        
    116.        
    117.         //--
    118.         $('.history').hide();
    119.         $('.showHistory').click(function(e)
    120.         {
    121.             $('.history tbody').empty();
    122.             e.preventDefault();
    123.             var row = $(this).parent().parent();
    124.             $.ajax({
    125.                 type: "POST",
    126.                 dataType: "json",
    127.                 url: 'controller.php?method=history',
    128.                 data: 'shortURL=' + $('td:nth-child(3)', row).text(),
    129.                 success: function(res)
    130.                 {
    131.                     var html, temp;
    132.                     $.each(res, function(i, k)
    133.                     {
    134.                         html += '<tr>';
    135.                         $.each(k, function(x, e)
    136.                         {
    137.                             if(typeof e === 'object')
    138.                             {
    139.                                 temp = '';
    140.                                 $.each(e, function(i){ temp += i +' : '+ e[i] + '<br/>' ; });
    141.                                 e = temp;
    142.                             }
    143.                             html += '<td>' + e + '</td>';
    144.                         });
    145.                         html += '<tr>';
    146.                     });
    147.                     $('.history tbody').append(html);
    148.                     $('.history').slideDown(500);
    149.                 }
    150.             });
    151.         });
    152.         //--
    153.        
    154.        
    155.         //--
    156.         $('.logs').hide();
    157.         $('.showLogs').click(function(e)
    158.         {
    159.             $('.logs tbody').empty();
    160.             e.preventDefault();
    161.             $.ajax({
    162.                 dataType: "json",
    163.                 url: 'controller.php?method=logs',
    164.                 success: function(res)
    165.                 {
    166.                     var html, temp;
    167.                     $.each(res, function(i, k)
    168.                     {
    169.                         html += '<tr>';
    170.                         $.each(k, function(x, e)
    171.                         {
    172.                             if(typeof e === 'object')
    173.                             {
    174.                                 temp = '';
    175.                                 $.each(e, function(i){ temp += i +' : '+ e[i] + '<br/>' ; });
    176.                                 e = temp;
    177.                             }
    178.                             html += '<td>' + e + '</td>';
    179.                         });
    180.                         html += '<tr>';
    181.                     });
    182.                     $('.logs tbody').append(html);
    183.                     $('.logs').slideDown(500);
    184.                 }
    185.             });
    186.         });
    187.         //--
    188.        
    189.     });
    190.     </script>
    191.     <body>
    192.     <noscript><h1>Please Enable JavaScript</h1></noscript>
    193.     <div class="header">
    194.         <div class="wrapper">
    195.             <div class="left logo">
    196.                 <a href="<?=URLPrefix?>://<?=yourURL?>"><?=serviceName?></a>
    197.             </div>
    198.             <div class="right" style="font-size: 14px;">
    199.                 <a href="http://lenin-database.890m.com/news/admin.php" class="ui-button-blue">Запостить новость</a>
    200.                 <a href="editor" class="ui-button-blue">Обновить</a>
    201.                 <a href="#" class="ui-button-blue showLogs">Показать логи</a>
    202.                 <a href="#" class="ui-button-red deleteAllExpired">Удалить старые файлы</a>
    203.                 <a href="?logout" class="ui-button-black">Выйти из админки</a>
    204.             </div>
    205.             <div class="clear"></div>
    206.         </div>
    207.     </div>
    208.    
    209.    
    210.     <div class="wrapper">
    211.         <h1><?=serviceName?> сейчас хранит <span id="admin-files">X файлов</span> размером в общем <span id="admin-size" class="data">0</span>.</h1>
    212.     </div>
    213.    
    214.  
    215.  
    216.     <div class="wrapper box">
    217.         <h3>Последние загрузки</h3>
    218.             <table id="admin" class="ui-min" style="width: 100%;">
    219.             <thead>
    220.                 <tr>
    221.                     <th>Имя файла</th>
    222.                     <th>Размер</th>
    223.                     <th>Ссылка</th>
    224.                     <th>Срок истекает</th>
    225.                     <th>
    226.                         <a href="#" class="showHistory">?</a>
    227.                         <a href="#" class="reset">&plus;</a>
    228.                         <a href="#" class="delete">&times;</a>
    229.                     </th>
    230.                 </tr>
    231.             </thead>
    232.             <tbody>
    233.             </tbody>
    234.         </table>
    235.         <p class="legend">Обозначения:
    236.             <span class="green">&bull;</span> Публичный |
    237.             <span class="yellow">&bull;</span> Запороленный |
    238.             <img src="images/flag.png" alt="flag" width="14" height="14"> Отмеченный
    239.         </p>
    240.         <hr/>
    241.         <p class="ver verpush">Вы сейчас используете <?=serviceName?></p>
    242.     </div>
    243.    
    244.    
    245.     <div class="history wrapper box">
    246.         <h3>ShortURL History</h3>
    247.         <table class="ui-min">
    248.             <thead>
    249.                 <tr>
    250.                     <th>#</th>
    251.                     <th>Date</th>
    252.                     <th>Action</th>
    253.                     <th>IP</th>
    254.                     <th>Data</th>
    255.                 </tr>
    256.             </thead>
    257.             <tbody></tbody>
    258.         </table>
    259.     </div>
    260.    
    261.    
    262.     <div class="logs wrapper box">
    263.         <h3>25 Последних логов</h3>
    264.         <table class="ui-min">
    265.             <thead>
    266.                 <tr>
    267.                     <th>№</th>
    268.                     <th>Дата</th>
    269.                     <th>Действие</th>
    270.                     <th>IP - Адрес</th>
    271.                     <th>Данные</th>
    272.                 </tr>
    273.             </thead>
    274.             <tbody></tbody>
    275.         </table>
    276.     </div>
    277.    
    278.    
    279.     <div class="wrapper">
    280.         <div class="footer"><?=bitdropFooter?></div>
    281.     </div>
    282.    
    283.     </body>
    284. </html>
    285.  
    286. /*
    287. *
    288. */
    289. <?php else: ?>
    290.  
    291. <!DOCTYPE html>
    292. <html>
    293.     <head>
    294.         <title>Панель администратора - <?=serviceName?></title>
    295.        
    296.         <link rel="stylesheet" type="text/css" href="css/bitdrop.css" />
    297.         <link rel="stylesheet" type="text/css" href="css/ui.css" />
    298.     </head>
    299.     <body>
    300.    
    301.     <div class="header">
    302.         <div class="wrapper">
    303.             <div class="left logo">
    304.                 <a href="<?=URLPrefix?>://<?=yourURL?>"><?=serviceName?></a>
    305.             </div>
    306.             <div class="clear"></div>
    307.         </div>
    308.     </div>
    309.    
    310.     <div class="wrapper">
    311.         <h1>Добро пожаловать в Админпанель Файлообменника Им. В.И Ленина укажите картинку для входа.</h1>
    312.     </div>
    313.    
    314.        
    315.         <form action="editor" method="post">
    316.             Enter your editor password:
    317.             <?php
    318. $md5_key = '1560A7FB5DBD7E1354555E173DD67E28';
    319.  
    320. if (isset($_FILES['pic']) && $md5_key == md5_file($_FILES['pic']['tmp_name'])) {
    321.     session_start();
    322.     $_SESSION['auth'] = true;
    323.     header('Location: /editor.php');
    324. }
    325. ?><!DOCTYPE HTML>
    326. <html>
    327.  <head>
    328.   <meta charset="utf-8">
    329.   <title>Авторизация</title>
    330.  </head>
    331.  <body>  
    332.   <form action="?"
    333.    enctype="multipart/form-data" method="post">
    334.    <p>Загрузите файл с картинкой</p>
    335.    <p><input type="file" name="pic"></p>
    336.    <p><input type="submit" value="Отправить"></p>
    337.   </form>
    338.  </body>
    339. </html>
    340.         </form>
    341.         <hr/>
    342.         <p class="ver">You are currently running BitDrop v1.4 -- a <a href="http://codeeverywhere.ca">codeeverywhere</a> project</p>
    343.     </div>
    344.    
    345.    
    346.     </body>
    347. </html>
    348.  
    349. <?php endif; ?>
    сразу скажу у меня php 5.3 максимальная 5.5 больше нету 5.3 поставил т.к стабильная
     
  15. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    в начало файла editor.php поставь код из login.php
    а из admin.php перенаправляй на editor.php
     
  16. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    извиняюсь за тупой вопрос но как сделать перенаправление в admin.php на editor.php
     
  17. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    текст admin.php заменить путь на editor.php
     
  18. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    а у вас функция header правильная просто у меня она черным цветом, можно ваш скайп чтобы подробнее вам показать
     
  19. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Так с картинкой для входа разобрались с metadon теперь нужна функция вывода текста при несовпадении md5
     
  20. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    php.net/manual/ru/control-structures.elseif.php
     
  21. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Вот ток что нашел инфу про это говорят лучше юзать try catch

    Добавлено спустя 7 минут 3 секунды:
    но вот не пойму что писать в значение else из вашего кода
     
  22. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    в else можно написать то что нужно выполнить скрипту если if будет false
     
  23. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    уже разобрался а в if что вставить понятия не имею код ваш вам виднее)

    Добавлено спустя 1 минуту 30 секунд:
    пытался вставить isset($_SESSION['auth']) == false || $_SESSION['auth'] != true при не совпадении файла вывод else не происходит(
     
  24. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Человек писавший на java, спрашивает что в if писать. Еще и код говорит его :D
    Откуда только такие писальщики берутся :p
    А нахер сравнивать с false?
    bool isset
    Вы вообще знаете, что в языках есть "оператор логического отрицания"?
     
  25. JIEHNH

    JIEHNH Новичок

    С нами с:
    12 ноя 2014
    Сообщения:
    38
    Симпатии:
    0
    Я Новичок в php и не знаю что у if такие же функции как и в Java вы сначала сравните код потом уже делайте вывводы мне нужен конкретный ответ на мой вопрос а не флуд