За последние 24 часа нас посетили 35375 программистов и 1745 роботов. Сейчас ищут 930 программистов ...

два вопроса

Тема в разделе "PHP для новичков", создана пользователем Ter, 18 авг 2011.

  1. Ter

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

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    Решил не плодить 2 темы и задать два маленьких вопроса в этой темке. чтож, поехали
    1. есть кусок кода, добавления записи
    PHP:
    1.  
    2. $date=date('d.m.Y');
    3. $text="$link/index.html:::$topic:::$date:::$newname1";
    4. $lines = file("topics.dat");
    5. $fh1 = fopen("topics.dat", "a");
    6. fwrite($fh1, "$text\n");
    7. fclose($fh1);
    8.  
    Дело в том, что он добавляет запись, потом ещё и т.д., опускаясь на строку ниже, а надо, чтобы вторая добавленная запись была выше первой, т.е. не запись 1, запись 2, запись 3, а запись 3, запись 2, запись 1, наоборот [кеп].
    2. есть кусок кода, что-то похожее на счётчик кликов
    PHP:
    1.  
    2. $f=fopen("vote.dat","a+");
    3. flock($f,LOCK_EX);
    4. $count=fread($f,100);
    5. @$count++;
    6. ftruncate($f,0);
    7. fwrite($f,$count);
    8. fflush($f);
    9. flock($f,LOCK_UN);
    10. fclose($f);
    11. header("location:index.php");
    12.  
    Проблема в том, что человек может накликать хоть миллион раз и всё это засчитается, а надо, чтобы был запрет до 1 клика с одного ip-адреса.
    Есть идеи?;)
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    1 - проще читать снизу, чем записывать сверху.

    2 - да. хранить айпи
     
  3. Ter

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

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    igordata
    1. сам знаю, но из-за некоторых причин, не могу так сделать, поэтому и спрашиваю
    2. а как его проверять?
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ter
    у меня есть бумажка, и я знаю, что задницу надо вытирать. Есть идеи? =)

    вопрос в чем состоит? как узнать ip? все скучны вопросы надо сначала спрашивать у яндекса или гугла, и оттуда сразу копипатить код. это оч ускоряет процесс.

    Ter
    1. сам знаю, но из-за некоторых причин, не могу так сделать
    религия? =) или препод злой?

    перезаписать файл надо целиком тогда. все прочесть, добавить в начало, сохранить.
     
  5. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    1. Что за причины?
    2. $_SERVER['REMOTE_ADDR']
     
  6. Ter

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

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    igordata, много пустой болтавни
    Elkaz, из-за удаления, если поменяю местами вывод, то неправильно будет работать скрипт...
    хорошо, как я понял, $_SERVER['REMOTE_ADDR'] показывает ип адрес, а как его проверить? там нужен массив?
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ter
    Простите сер, я ж просто хотел подтереть ваш зад за вас, но раз вы такой умный - можете сделать это сами =)
     
  8. Ter

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

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    igordata, окей