[PHP] Новичкам: задаем вопросы

Discussion in 'PHP' started by Kaimi, 7 May 2015.

  1. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    просто не надо подключать публичный FTP к исполняемой папке сайта :)

    Не каждому светит эта головная боль. Однако наличие и активность ботов в сети не указывает на "дырявость" php
     
  2. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    как сделать выдачу временной ссылки без sql и txt файлов, что бы конкретному ip уникальная ссылка была постоянная для конкретного Ip ?
     
    #122 dondy, 23 Jan 2016
    Last edited: 23 Jan 2016
  3. Phalangium

    Phalangium New Member

    Joined:
    23 Jan 2016
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Не совсем понял, что за временная ссылка должна быть, но может это тебе поможет.

    <?php
    $ip =& $_SERVER['REMOTE_ADDR'];

    switch ($ip) {
    case '127.0.0.1':
    echo 'http://ya.ru/';
    break;
    }
    ?>

    <?php
    $ip =& $_SERVER['REMOTE_ADDR'];

    switch ($ip) {
    case '127.0.0.1':
    echo 'http://ya.ru/' . md5(time()) . '.html';
    break;
    }
    ?>
     
  4. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    слепи хэш из IP
    только следует учесть, что куча разных юзеров могут сидеть с одного белого IP, поэтому при лепке хэша можно добавить название браузера, например
     
    dondy likes this.
  5. Gene

    Gene New Member

    Joined:
    22 Jan 2016
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Совсем новичок,прошу помочь и не забрасываться
    Задача зашифровать битным XORом
    $a="Наша строка длиннее, чем сам ключ"
    $b = "Вася"
    1используя цикл строку $b сделать такой же длинны как $a
    2затем посимвольно зашифровать и вывести на экран массив-шифровку
    3 затем расшифровать и вывести


    если не хотите решать,то дайте пожалуйста ссылки на на функции какие нужно чтобы сделать эти пункты
    спасибо заранее
     
  6. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    PHP:
    <?php

    $data 
    'Наша строка длиннее, чем сам ключ';
    $key 'Вася';

    $data_sz strlen($data);
    $key_sz strlen($key);

    if(
    $key_sz $data_sz)
        for(
    $i $key_sz$i $data_sz; ++$i)
            
    $key .= $key[$i $key_sz];

    echo 
    'String to encrypt: ' $data '<br />';
    echo 
    'Extended key: ' $key '<br />';

    for(
    $i 0$i $data_sz; ++$i)
        
    $data[$i] = chr(ord($data[$i]) ^ ord($key[$i]));

    echo 
    'Encrypted string: ' $data '<br />';

    for(
    $i 0$i $data_sz; ++$i)
        
    $data[$i] = chr(ord($data[$i]) ^ ord($key[$i]));

    echo 
    'Decrypted string: ' $data '<br />';
     
    _________________________
    banned and Gene like this.
  7. Gene

    Gene New Member

    Joined:
    22 Jan 2016
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    спасибо большое
     
  8. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Попробуй перед тем, как задать вопрос на форуме, прогуглить его. Ты оху**шь (будешь приятно удивлен), насколько это эффективнее.
     
    beginner2010 and roxblnfk like this.
  9. morlin

    morlin Member

    Joined:
    25 Dec 2015
    Messages:
    242
    Likes Received:
    56
    Reputations:
    0
    У меня есть фейк, ВОТ ОН Все нормально, кроме одного: если нажать "Войти" без ввода логин/пароля, все равно происходит вход. Вопрос: как сделать так, чтобы без ввода логин/пароля показывал ошибку типа "Введите логин и пароль"
     
  10. Gef3Dx

    Gef3Dx New Member

    Joined:
    27 Sep 2009
    Messages:
    28
    Likes Received:
    1
    Reputations:
    -5
    Проверяй поля (input) в условии на пустоту. Лучше Java (ой). И стили css примени как у орегинала страницы на вывод ошибки.
     
  11. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    как мне выбрать случайную запись из базы, при запросе разное случайное значение выводить надо ?
    делаю вот так, но нет результата

    PHP:
    $result=mysql_query("SELECT `invite_code` FROM `promo_code` WHERE `rotator`='on' AND `check_status`='1' ORDER BY RAND() LIMIT 1");
    $sql_result=mysql_query($result);
    $row=mysql_fetch_array($sql_result);
    mysql_free_result($sql_result);
     
  12. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    829
    Likes Received:
    815
    Reputations:
    90
    id у записей есть? where id=rand() если есть
    не шарю в sql, но я бы по id рандил, хотя id такого может не быть
    хм может выбрать все записи( если их не много ) и уже в приложении ранд сделать? или в приложухе срандить диапазон 543 985, взять эти 442 записи и в приложухе опять же срандомить
     
    _________________________
  13. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    нет, все записи без id
    как без id сделать рандомный выбор ?
     
  14. nordwarrior

    nordwarrior New Member

    Joined:
    12 Dec 2015
    Messages:
    13
    Likes Received:
    2
    Reputations:
    2
    2 раза использован mysql_query. Вторую строчку нужно выкинуть. А вообще надо отказываться от этой архаики в пользу PDO.
    В след. раз при вопросах об SQL неплохо было бы видеть схему данных.
     
  15. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    как сделать валидацию проверки ipv4 & ipv6 на соответствие стандарту ?
     
    GAiN likes this.
  16. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    PHP:
    <?php
    $ip 
    '2a02:6b8:0:f09:0:0:0:5c';
    if(
    filter_var($ip,FILTER_VALIDATE_IP))
    {
        echo 
    'ip введен корректно';
    }
    else{
    echo 
    'не соотвествует';
    }
    ?>
     
    dondy likes this.
  17. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    помогите пожалуйста, можно ли решить такую задачку? как отличить ipv4 от ipv6 с помощью php ?
    определить тип посещения: ipv4 или ipv6 адрес
     
    GAiN likes this.
  18. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Посмотреть содержимое $_SERVER['REMOTE_ADDR'] видимо
     
    _________________________
  19. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    я бы вот так сделал, filter_var с флагами FILTER_FLAG_IPV4 и FILTER_FLAG_IPV6:
    PHP:
    <?php
    function type_ip(){
    //ipv4
    if(filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP,FILTER_FLAG_IPV4))
    {
    $ip_type 'ipv4';
    }
    else{
    //ipv6
    if(filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP,FILTER_FLAG_IPV6))
    {
    $ip_type 'ipv6';
    }
    //ipv6
    }
    //ipv4
    return $ip_type;
    }
    echo 
    type_ip();
    //ip type
    ?>
     
    dondy likes this.
  20. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    Всем привет, переделывал один код для календаря на php, но сделать выделение ячеек с субботами и воскресеньями - как выходных дней не получилось, помогите пожалуйста выделить субботы и воскресенья в ячейке календаря
    код календаря:
    PHP:
    <style>
    table.calendar    { border-left:1px solid #999; }
    tr.calendar-row  {  }
    td.calendar-day  { min-height:80px; font-size:11px; position:relative; } * html div.calendar-day { height:80px; }
    td.calendar-day:hover  { background:#eceff5; }
    td.calendar-day-np  { background:#eee; min-height:80px; } * html div.calendar-day-np { height:80px; }
    td.calendar-day-head { background:#ccc; font-weight:bold; text-align:center; width:120px; padding:5px; border-bottom:1px solid #999; border-top:1px solid #999; border-right:1px solid #999; }
    div.day-number    { padding:5px; color:#1C1C1C; font-weight:bold; font-size: 25px; font-family: Arial Black; float:right; margin:-5px -5px 0 0; width:100%; text-align:center; }
    td.calendar-day, td.calendar-day-np { width:120px; padding:5px; border-bottom:1px solid #999; border-right:1px solid #999; }
    </style>
    <?php
    /* Функция генерации календаря */
    function draw_calendar($month,$year){
      
    /* Начало таблицы */
      
    $calendar '<table cellpadding="0" cellspacing="0" class="calendar">';
      
    /* Заглавия в таблице */
      
    $headings = array('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье');
      
    $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';
      
    /* необходимые переменные дней и недель... */
      
    $running_day date('w',mktime(0,0,0,$month,1,$year));
      
    $running_day $running_day 1;
      
    $days_in_month date('t',mktime(0,0,0,$month,1,$year));
      
    $days_in_this_week 1;
      
    $day_counter 0;
      
    $dates_array = array();
      
    /* первая строка календаря */
      
    $calendar.= '<tr class="calendar-row">';
      
    /* вывод пустых ячеек в сетке календаря */
      
    for($x 0$x $running_day$x++):
        
    $calendar.= '<td class="calendar-day-np"> </td>';
        
    $days_in_this_week++;
      endfor;
      
    /* дошли до чисел, будем их писать в первую строку */
      
    for($list_day 1$list_day <= $days_in_month$list_day++):
        
    $calendar.= '<td class="calendar-day">';
          
    /* Пишем номер в ячейку */
    if ($list_day==date('d')) $calendar.= '<div class="day-number" style="color:#CD0000">' $list_day '</div>';
    else 
    $calendar.= '<div class="day-number">' $list_day '</div>';
          
    /** ЗДЕСЬ МОЖНО СДЕЛАТЬ MySQL ЗАПРОС К БАЗЕ ДАННЫХ! ЕСЛИ НАЙДЕНО СОВПАДЕНИЕ ДАТЫ СОБЫТИЯ С ТЕКУЩЕЙ - ВЫВОДИМ! **/
          
    $calendar.= str_repeat('<p> </p>',2);
        
        
    $calendar.= '</td>';
        if(
    $running_day == 6):
          
    $calendar.= '</tr>';
          if((
    $day_counter+1) != $days_in_month):
            
    $calendar.= '<tr class="calendar-row">';
          endif;
          
    $running_day = -1;
          
    $days_in_this_week 0;
        endif;
        
    $days_in_this_week++; $running_day++; $day_counter++;
      endfor;
      
    /* Выводим пустые ячейки в конце последней недели */
      
    if($days_in_this_week 8):
        for(
    $x 1$x <= ($days_in_this_week); $x++):
          
    $calendar.= '<td class="calendar-day-np"> </td>';
        endfor;
      endif;
      
    /* Закрываем последнюю строку */
      
    $calendar.= '</tr>';
      
    /* Закрываем таблицу */
      
    $calendar.= '</table>';

      
    /* Все сделано, возвращаем результат */
      
    return $calendar;
    }
    /* СПОСОБ ПРИМЕНЕНИЯ */
    //месяцы и недели на русском
    function rdate($param$time=0) {
    if(
    intval($time)==0)$time=time();
    $MN=array('Января''Февраля''Марта''Апреля''Мая''Июня''Июля''Августа''Сентября''Октября''Ноября''Декабря');
    $MonthNames[]=$MN[date('n',$time)-1];
    $MN=array('Воскресенье','Понедельник''Вторник''Среда''Четверг''Пятница''Суббота''');
    $MonthNames[]=$MN[date('w',$time)];
    $arr[]='M';
    $arr[]='N';
    if(
    strpos($param,'M')===false) return date($param$time); else return date(str_replace($arr,$MonthNames,$param), $time);
    }
    //месяцы и недели на русском
    $mesjac date('n');
    $god date('Y');
    echo 
    '<h2 style="text-align:center; font-family: Arial Black; font-size: 19px; color: #1E90FF;">Сегодня '.rdate('j M Y года. N. H:i').'</h2>';
    echo 
    draw_calendar($mesjac,$god);
    ?>