Dim565

Dim565
Рейтинг
57
Регистрация
19.08.2010

Извините за тупизм - не догадался, что можно теги приплюсовывать в кавычках :) Спасибо за помощь

Подскажите пожалуйста: сделал по самому простому способу, который предлагал Bermuda:

  • Создал 2 PHP-файла:
  • <?php
    
    // we will be sending Javascript codes, remember...
    header('Content-Type: text/javascript');

    // select the timezone for your countdown
    $timezone = trim($_GET['timezone']);
    putenv("TZ=$timezone");

    // Counting down to New Year's on 2020
    $countdown_to = trim($_GET['countto']); // 24-Hour Format: YYYY-MM-DD HH:MM:SS"

    // Getting the current time
    $count_from = date("Y-m-d H:i:s"); // current time -- NO NEED TO CHANGE

    // Date difference function. Will be using below
    function datediff($interval, $datefrom, $dateto, $using_timestamps = false) {
    /*
    $interval can be:
    yyyy - Number of full years
    q - Number of full quarters
    m - Number of full months
    y - Difference between day numbers
    (eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32".)
    d - Number of full days
    w - Number of full weekdays
    ww - Number of full weeks
    h - Number of full hours
    n - Number of full minutes
    s - Number of full seconds (default)
    */

    if (!$using_timestamps) {
    $datefrom = strtotime($datefrom, 0);
    $dateto = strtotime($dateto, 0);
    }
    $difference = $dateto - $datefrom; // Difference in seconds

    switch($interval) {

    case 'yyyy': // Number of full years

    $years_difference = floor($difference / 31536000);
    if (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom), date("j", $datefrom), date("Y", $datefrom)+$years_difference) > $dateto) {
    $years_difference--;
    }
    if (mktime(date("H", $dateto), date("i", $dateto), date("s", $dateto), date("n", $dateto), date("j", $dateto), date("Y", $dateto)-($years_difference+1)) > $datefrom) {
    $years_difference++;
    }
    $datediff = $years_difference;
    break;

    case "q": // Number of full quarters

    $quarters_difference = floor($difference / 8035200);
    while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($quarters_difference*3), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
    $months_difference++;
    }
    $quarters_difference--;
    $datediff = $quarters_difference;
    break;

    case "m": // Number of full months

    $months_difference = floor($difference / 2678400);
    while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($months_difference), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
    $months_difference++;
    }
    $months_difference--;
    $datediff = $months_difference;
    break;

    case 'y': // Difference between day numbers

    $datediff = date("z", $dateto) - date("z", $datefrom);
    break;

    case "d": // Number of full days

    $datediff = floor($difference / 86400);
    break;

    case "w": // Number of full weekdays

    $days_difference = floor($difference / 86400);
    $weeks_difference = floor($days_difference / 7); // Complete weeks
    $first_day = date("w", $datefrom);
    $days_remainder = floor($days_difference % 7);
    $odd_days = $first_day + $days_remainder; // Do we have a Saturday or Sunday in the remainder?
    if ($odd_days > 7) { // Sunday
    $days_remainder--;
    }
    if ($odd_days > 6) { // Saturday
    $days_remainder--;
    }
    $datediff = ($weeks_difference * 5) + $days_remainder;
    break;

    case "ww": // Number of full weeks

    $datediff = floor($difference / 604800);
    break;

    case "h": // Number of full hours

    $datediff = floor($difference / 3600);
    break;

    case "n": // Number of full minutes

    $datediff = floor($difference / 60);
    break;

    default: // Number of full seconds (default)

    $datediff = $difference;
    break;
    }

    return $datediff;
    }

    // getting Date difference in SECONDS
    $diff = datediff("s", $count_from, $countdown_to);
    ?>

    // Here’s where the Javascript starts
    countdown = <?=$diff?>;

    // Converting date difference from seconds to actual time
    function convert_to_time(secs)
    {
    secs = parseInt(secs);
    hh = secs / 3600;
    hh = parseInt(hh);
    mmt = secs - (hh * 3600);
    mm = mmt / 60;
    mm = parseInt(mm);
    ss = mmt - (mm * 60);

    if (hh > 23)
    {
    dd = hh / 24;
    dd = parseInt(dd);
    hh = hh - (dd * 24);
    } else { dd = 0; }

    if (ss < 10) { ss = "0"+ss; }
    if (mm < 10) { mm = "0"+mm; }
    if (hh < 10) { hh = "0"+hh; }
    if (dd == 0) { return (hh+":"+mm+":"+ss); }
    else {
    if (dd > 1) { return (dd+" days "+hh+":"+mm+":"+ss); }
    else { return (dd+" day "+hh+":"+mm+":"+ss); }
    }
    }

    // Our function that will do the actual countdown
    function do_cd()
    {
    if (countdown < 0)
    {
    <?php
    if(strtolower(trim($_GET['do'])) == 'r' )
    {
    ?>
    // redirect web page
    document.location.href = "<?=$_GET['data']?>";
    <?php } ?>

    <?php
    if(strtolower(trim($_GET['do'])) == 't' )
    {
    ?>
    // change text
    document.getElementById('cd').innerHTML = "<?=$_GET['data']?>";
    <?php } ?>

    }
    else
    {
    document.getElementById('cd').innerHTML = convert_to_time(countdown);
    setTimeout('do_cd()', 1000);
    }
    countdown = countdown - 1;
    }

    document.write("<div id='cd'></div>\n");

    do_cd();

    <? exit(); ?>
    А во втором php-файле (countdown2.php)
  • На странице пишу так:
    <SCRIPT language="JavaScript" SRC="countdown.php?timezone=Asia/Kuala_Lumpur&countto=2020-01-01 00:00:00&do=t&data=WAWASAN 2020"></SCRIPT><BR/>
    
  • <SCRIPT language="JavaScript" SRC="countdown2.php?timezone=Asia/Kuala_Lumpur&countto=2011-05-05 00:00:00&do=t&data=WAWASAN 2020"></SCRIPT>

Также пробовал менять во втором скрипте:

($_GET['countto']); на ($_GET['countto2']);

($_GET['timezone']); на ($_GET['timezone2']);
- не помогло

Скажите, кто знает - в чем проблема? Ведь разные контейнеры=дивы теперь создаются!?

maldivec, спасибо. все работает!

ReFeRy_pf, действительно раньше не работало из-за присутствия между началом и концом php-кода вот это: substr(....

Ок, благодарю всех, буду пробовать

Dim565 добавил 04-03-2011 в 07:11

gormarket:

$text = 'текст1[HEADER]
текст2[CUT]
текст3';
$substr = preg_split("/\[HEADER\]|\[CUT\]/m",$text);

части текста будут в элементах массива $substr[0], $substr[1] и $substr[2]

Благодарю. Ваше решение сразу заработало и все очень удобно!

Dim565 добавил 04-03-2011 в 07:34

Извините за такие ламерские вопросы, но может кто еще подскажет:

хочу не писать такой код везде:

$text = 'текст1[HEADER] 

текст2[CUT]
текст3';
$substr = preg_split("/\[HEADER\]|\[CUT\]/m",$text);
echo html_entity_decode($substr[1]);?>
, а описать один раз этот код, а затем выводить где нужно:
echo html_entity_decode($substr[1]);?>
(потом 2 и 3-ий).

Как можно это реализовать? Если пишу так:

<?php $text = 'текст1[HEADER] 

текст2[CUT]
текст3';
$substr = preg_split("/\[HEADER\]|\[CUT\]/m",$text);?>
...
<?php echo html_entity_decode($substr[1]);?>
где ...-другой php-код на странице

- не работает. Видимо, тут нужны или функции или глобальные переменные? Искал в учебниках - везде только примеры, где глобальная переменная внутр <?php ... ?>

А чтобы код вызова переменной был вне основного PHP-кода - не нашел. Если открываю PHP, а знаки ?> ставлю в самом конце кода - тоже не работает

Спасибо, буду пробовать ковырять код с дивом

Dim565 добавил 03-03-2011 в 15:12

Ничего не вышло, пробовал часа 3 - видимо, не все так просто

WesenD, огласите все требования: сколько места, нужно ли PHP, сколько баз, какая панель предпочтительна и т.п

Честно - не увидел главного заявления

Теперь VDS по цене хостинга.

VDS 300 рублей, а хостинг 60 рублей - разница в 5 раз!

Действительно, если раньше хостинг устраивал и сбоев было не так много, то не стоит спешить с переездом. Имхо, новый хостинг может быть еще хуже (сомневаюсь, что вы пойдете к дорогому и крупному хостингу).

Сужу по собственному опыту - Trust-Host также работал великолепно, но месяц назад начались проблемы мелкие. Закончились они крупной проблемой - у большинства сайт сутки не работал. Но лично я хоть и хотел уйти, но решил подождать...проблема решилась и последний месяц все ок

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

А может быть, проще заблокировать все не Российские IP? Ложных срабатываний не должно же быть?

Dim565 добавил 11.12.2010 в 08:58

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

ПЕРВЫЙ, информации об ап-тайме серваков и вообще информации о них - 0

Всего: 189