Jak zrobić skrypt zmieniający avarta

Witam!

Chce zrobić skrypt który będzie o określonej godzinie zmieniał avarta.

Czyli na forum wybiorę pozycje “Wyślij obrazek z adresu: http://www.mojastronka.yoyo.pl/avart.jpg

Na stronkę wgram trzy obrazki. Chce by pierwszy obrazek zmieni nazwę na “avart.jpg” o godzinie 10:00.

Drugi obrazek zmieni nazwę na “avart.jpg” o godzinie 11:00.

Trzeci obrazek zmieni nazwę na “avart.jpg” o godzinie 12:00.

W ten sposób, co godzinę będę miał inny avatar.

Proszę o pomoc, chyba że znacie prostszy sposób :slight_smile:

Jako adres obrazka w ustawieniach profilu możesz podać adres skryptu PHP, który z kolei będzie przekierowywał w zależności od godziny na różne obrazki.

Nie pomyślałem tylko czy to nie będzie opóźniało ładowania obrazka?

Albo nieważne, tylko skąd wziąć taki skrypt?

Nie pomyślałem tylko czy to nie będzie opóźniało ładowania obrazka?

Raczej nie powinno to wydłużać czasu ładowania się obrazka.

Albo nieważne, tylko skąd wziąć taki skrypt?

Napisać samemu lub zlecić to komuś kto się na tym zna.

My Ci tylko możemy podpowiedzieć :wink:

  1. Sprawdzasz, która godzina

  2. Sprawdzasz ifami która i jest, i wyświetlasz odpowiedni obrazek

Koniec.

A moglibyście mnie poratować jakimiś linkami.

Tylko mnie nakierujcie. Proszę :slight_smile:

Pobieranie daty:http://php.net/manual/en/function.date.php

i potem piszesz prosty skrypcik na ifach. Poczytaj i wrzucaj tu kod to będziemy go razem przerabiać.

Z pobierania daty nie zrozumiałem wszystkiego ale w komentarzach coś znalazłem:

<?php

function date_at_timezone($format, $locale, $timestamp=null){


    if(is_null($timestamp)) $timestamp = time();


    //Prepare to calculate the time zone offset

    $current = time();


    //Switch to new time zone locale

    $tz = date_default_timezone_get();

    date_default_timezone_set($locale);


    //Calculate the offset

    $offset = time() - $current;


    //Get the date in the new locale

    $output = date($format, $timestamp - $offset);


    //Restore the previous time zone

    date_default_timezone_set($tz);


    return $output;


}


//Examples

$t = time();


print date("g:i A T", $t); //4:16 PM PDT

print date_at_timezone("g:i A T", "America/New_York", $t); //7:16 PM EDT

print date_at_timezone("g:i A T", "Pacific/Samoa", $t); //12:16 PM SST

print date("g:i A T", $t); //4:16 PM PDT

?>

U mnie na stronce wyświetla jakiś błąd w 10 lini:

“Fatal error: Call to undefined function: date_default_timezone_get() in /var/www/sites/yoyo.pl/p/r/strona/2.0/index.php on line 10”

Ale powyżej wyświetla godzinę.

W google nic nie znalazłem ale jeszcze popróbuje coś poszukać.

Zrób tak

<?php

$t = time();

$godzina = date("G:i", $t); 

?>

To przypisze Ci aktualną datę w formacie dwudziestoczterogodzinnym. Teraz wystarczy ifami ustawić przedziały np.

//avatar o godzinie 12:00

if(($godzina=12:00) OR (($godzina>12:00) AND ($godzina<13:00))){

echo 'avatar od godziny 12:00 do 12:59';

}

Pisane z palca, mogą być błędy. Napisz jak idzie to jutro rano sprawdzę i pomogę.

Wstawiłem ten skrypt w takiej postaci:

<?php

$t = time();

$godzina = date(“G:i”, $t);

//avatar o godzinie 12:00

if(($godzina=12:00) OR (($godzina>12:00) AND ($godzina<13:00))){

echo ‘1.jpg’;

?>

Ale nie chce działać, po południu spróbuje coś jeszcze pozmieniać.

Nie działa bo nie zmieniłeś godziny. Spróbuj dodać taki skrypcik.

<?php

$t = time();

$godzina = date("G:i", $t); 

//avatar o godzinie 12:00

if(($godzina=='7:00') OR (($godzina>'7:00') AND ($godzina<'8:00'))){

echo 'avatar od godziny 8:00 do 8:59';

}

else {

echo 'jest inna godzina';

}


?>

Teraz żeby zmieniały się co godzinę musisz dodać kolejne ify z godzinami.

elseif(($godzina=='8:00') OR (($godzina>'8:00') AND ($godzina<'9:00'))){

echo 'avatar od godziny 8:00 do 8:59';

}

I tak dalej.

Wielkie dzięki za pomoc wszystko w skrypcie działa jak należy ale…

Ale na stronce nie chce mi wyświetlać skryptu.

Adres do skryptu to: http://www.avarty.yoyo.pl/users/mistrzu4/index.php

Np tutaj sie nie da wstawić komendą [img*][/img*]:

index.php

Tutaj jest kod jaki wstawiam:

?php

$t = time();

$godzina = date("G:i", $t);

//avatar o godzinie 12:00

if(($godzina=='14:00') OR (($godzina'14:00') AND ($godzina'15:00'))){

echo '
}

else {

echo '
}


?

[/code]

Nie rozumiem problemu, o którym napisałeś.

Nie mogę wstawić tego avarta na forum. Screen

Również nie mogę go dodać do podpisu funkcją:

[img*]http://www.avarty.yoyo.pl/users/mistrzu4/index.php[/img*]

Domyśl się dlaczego #-o

Przecież index php to nie awatar.

Już chyba wszyscy wiemy o co Ci chodzi i to Ci się chyba nie uda ponieważ, na forach awatary (nawet te z linków) pobierają się i zapisują na serwie forum, więc jeśli chodzi o forum to tylko ręczne zmienianie… no chyba że się mylę (wątpię), to trzeba jeszcze zrobić tak żeby ścieżka jak i plik muszą być tej samej nazwy.

No tak o tym też nie pomyślałem.

No ale co z funkcją [img*][/img*]??

Ona przecież powinna działać.

A i nie da się ściągnąć na stronkę jakiegoś bota który zmieniał by avarta?

No funkcja img powinna działać wiec mówię, trzeba tak przerobić skrypt, aby link do obrazka (jak i nazwa obrazka) była zawsze taka sama.

Czyli żeby funkcja IMG działała, trzeba tak przerobić skrypt, aby link do obrazka (jak i nazwa obrazka) była zawsze taka sama?

Tak.

Znalazłem funkcje która zmienia nazwę pliku.

<?php

rename("aktualna_nazwa.jpg", "nowa_nazwa.jpg");

?>

Tylko czy pomożecie zrobić by o danej godzinie zmieniał nazwę?