styczeń 20th, 2010
Telefon od Google (tak, od “tych” Google):
Art: p=8
<?php
header(”Content-type: image/png”); // naglowek - “ze jestesmy obrazkiem”
$img = imagecreate(120, 30); // tworzenie obrazka o podanych rozmiarach
$background = imagecolorallocate($img, 33, 33, 33); // tlo obrazka
$textcolor = imagecolorallocate($img, 0, 250, 0); // kolor tekstu
$czas = date(”H:i:s”); // tekst z aktualnym czasem (zawsze)
imagestring($img, 15, 24, 5, $czas, $textcolor); // wypisanie tekstu
imagepng($img); // tworzenie obrazka
imagedestroy($img); // kasowanie danych o obrazku
?>
Witam, opisze dzis jak zrobic obrazek za pomoca biblioteki GD.
Obrazek bedzie nie duzy (120, 30) i bedzie wyswietlal aktualny czas w formacie Godziny:Minuty:Sekundy.
Na poczatku trzeba przekazac przegladarce, ze jestesmy obrazkiem funkcja header:
header(”Content-type: image/png”);
W tym przypadku bedziemy generowac PNG.
Tworzymy obrazek o rozmiarach 120×30 i przypisujemy “wytwor” do zmiennej $img
$img = imagecreate(120, 30);
Nastepnie do zmiennej przypiszemy kolor tla:
$background = imagecolorallocate($img, 33, 33, 33);
Pogrubione - zmienna z utworzonym obrazkiem.
Pochylone - kolory tla, RGB.
Kolor tekstu:
$textcolor = imagecolorallocate($img, 0, 250, 0);
Najwazniejsze informacje do wygenerowania obrazka i tekstu mamy.
Potrzebujemy tekstu, ktoremu przypiszemy kolor. Ma to byc aktualny czas, wiec uzyjemy funkcji date();
$czas = date(”H:i:s“);
H - 24 godzinny format czasu ( 00 - 23 )
i - minuty ( 00 - 59 )
s - sekundy ( 00 - 59 )
Czas zostal przypsany do zmiennj $czas, aby latwiej bylo go potem uzyc.
Piszemy tekst na obrazku:
imagestring($img, 15, 24, 5, $czas, $textcolor);
Lecimy po kolei wartosciami:
$img - zmienna z obrazkiem
15 - wielkosc czcionki
24,5 - odsuniecie w pixelach od lewego gornego rogu
$czas - w to miejsce wstawia sie tekst, ktory ma zostac wyswietlony na obrazku. W naszym przypadku czas.
$textcolor - zdefiniowany wczesniej kolor.
Na samym koncu trzeba zlozyc wszystko w calosc i wyswietlic:
imagepng($img); //wyslanie obrazka do przegladarki
imagedestroy($img); //zniszczenie danych (przegladarka juz je otrzyma?a i nie sa potrzebne)
Calo kod: p=9
Witam, postanowilem napisac jak to zrobic z wykorzystaniem moich 2 wczesniejszych funkcji
Do przechwytywania danych wysylanych uzywam Firefox + Live HTTP Header.
Za przyklad posluzy forum Satellity.
Aby zalogowac sie potrzeba link, do ktorego sa wysylane dane z loginem i haslem. W tym przypadku jest to login.php. Widzimy dwa pola: Nazwa uzytkownika i Haslo, do tego jeszcze pole wyboru czy ma logowac automatycznie i przycisk. Jednak po sprawdzeniu Live HTTP Header widzimy jeszcze jedno pole lecz na stronie jest ukryte. (Mozna zobaczyc tez to w kodzie, lecz tak jest wygodniej). Skrypt do logowania potrzebuje 5 zmiennych z danymi. Sa to username, password, autologin, redirect i login. Wiadomo, ze username i password to sa passy do konta, autologin jak sama nazwa wskazuje to pytanie o automatyczne logowanie. Nie wiemy tylko co to jest redirect i login. Teoretycznie, bo LHH pokaze nam co jest wysylane
Nie bede pokazywal jak go uzywac, powiem odrazu co jest wysylane w tych zmiennych. Zmienna redirect to jak sie domyslam zmienna, ktora zapisuje na jaka strone ma przeniesc po zalogowaniu, zostawiamy puste. W login jest “Zaloguj”. Nie wiem co to jest, ale niech bedzie
Jak bedzie wygladal kod?
Na poczatku warto ustawic czas, po ktorym serwer ma przerwac wczytywac skrypt jezeli sie nie zaladuje. Ja dzialam na localhoscie, dlatego ustawiam na 0, tj. nieskonczonosc.
set_time_limit(0);
Nie ktore hostingi moga miec zablokowana ta funkcje.
Dlaczego mam ustawicna nieskonczonsc? Przeciez to tylko szybkie logowanie. Mozna ustawic sobie na 30 (czyli 30 sekund). Ja uzywam takiego, poniewaz pisalem bota (nie spam bota) i skrypt wykonywal sie 10 minut.
Aby zalogowac sie uzyjemy funkcji curl_post.
curl_post(”http://satellite.justnet.pl/forum4/login.php“, “username=TwojNick&password=TwojeHaslo&autologin=on&redirect=&login=Zaloguj”, “ciasteczka.txt“);
Jedziemy po kolei.
Pierwsze pogrubienie to link, do ktorego przekazywane sa dane (tak samo jak bys chcial zalogowac sie manualnie). W kolejnych dwoch polach podajemy dane. Ostatnie pogrubienie to plik z ciasteczkami. Nalezy utworzyc go przed zaladowaniem skryptu. Zeby zalogowac sie na Przemo, potrzebny jest plik z ciasteczkami, ale nie wszedzie jest on potrezbny.
Jak sprawdzic czy zalogowalem sie poprawnie? Mozna przed funkcja curl_post wstawic polecenie echo lub przypisac do zmiennej i przeszukac.
Jezeli cos nie jasne pisac w komentarzach, ew. GG.
Pozdrawiam, Snejk.