ďťż

[php] Losowy Wyświetlany Avatar jak oszukać skrypt forum

       

Podstrony


telcocafe

Chciałbym mieć np. losowy avatar na tym forum - losowany przez php - można podać adres av.php.png -lub jakoś tam to zrobić by oszukać forum i losowo wybierać?
Wiem jak wylosować, ale jak to oszukać?
Są obrazki w stylu: Twój IP to.....
Jak to zrobić?



skocz.pl skroc adres, i dodaj mu koncowke jpg :)

O to chodzi :) - ale było coś w stylu Header:image/jpg czy jakoś tak - to chyba to.

Jeśli wczytujesz w PHP (do zmiennej) obrazek, to musisz wysłać nagłówek, np. content-type: image/png.
Ale jeśli przekierowujesz ścieżkę do pliku, nie musisz tego robić.

A co do sposobu oszukania - tak jak pisał Kuba1530 - PHP dajesz gdzieś jako index i tylko szukasz serwisu, który skróci twój adres bez slasha na końcu :)

Przykładowy sposób (tylko) wczytywania GIFów:{ header("content-type: image/gif"); $im = imagecreatefromgif('obrazek.gif'); imagegif($im); #imagedestroy($im); }
Użytkownik DJ_ProG edytował ten post 06 luty 2007, 09:27


Lepiej nie mieć pośrednika w postaci takich serwisów i wrzucić skrypt losujący do katalogu o nazwie np. avatar.gif - skrypt o nazwie index.php.
I zamiast używać gd do tego, lepiej po prostu include('obrazek.gif');

Zwykłe include zadziała? Przecież to będzie index.php - za pomocą include da się wstawić obrazek?

@Einzeinbleth:
a jeśli Twój serwer wymaga slasha na końcu, to pomysł pada... dlatego czasem używa się aliasów ;)

@up:
Zależy jak rozumiesz "wczytać" :)
AFAIR, to będzie tak, jakbyś do zmiennej pobrał zawartość obrazka (fread) i echem go wyświetlił ;)

Najlepiej sam sprawdź!
Użytkownik DJ_ProG edytował ten post 06 luty 2007, 13:27
zrob skrypt w pliku

skrypt.php a na forum podaj adres

http://nazwa.pl/skrypt.php/skrypt.jpg ;-)

lub to zlookaj http://www.compzone....+avatar-31.html :>
Użytkownik bikstopa edytował ten post 06 luty 2007, 13:46
Działa! A jak zrobić z innymi obrazkami niż gif (potrzebuję jpg)?

EDIT: Znalazłem o wiele lepszy sposób:
Otóż jako adres do obrazka podajemy:
http://nazwa.pl/skry...img=obrazek.gif

A kod PHP skrypt.php

{ header("content-type: image/gif"); $im = imagecreatefromgif($_GET['img']); imagegif($im); #imagedestroy($im); }

Na moim kompie działa, sprawdzę na normalnym serwerze.
Użytkownik Capitan V edytował ten post 06 luty 2007, 19:14
imagecreatefromjpeg
header( 'Content-type: image/jpeg' );

Poza tym, tutaj masz spis funkcji obrazkowych.

header('Location: '.$_GET['img']);

I wszystko gra :)
Użytkownik Coldpeer edytował ten post 07 luty 2007, 18:00
Ale jest problem z tym:
$im = imagecreatefromgif($_GET['img']);

@Coldpeer

niby tak ale jak z rozszerzeniami?
można funkcją explode(); rozbić obrazek.gif na "obrazek" i "gif", ale w adresie może być więcej kropek.
Gdybym to ominął to by było uniwersalne.
Użytkownik Capitan V edytował ten post 07 luty 2007, 20:13
Masz może to ;)
<? ################################ $s = 'obrazek.lol.nup.xP.gif'; ################################ function laststrpos($s, $c) { # by DJ ProG B) $p = strpos(strrev($s),strrev($c)); if ($p === FALSE) $i = -1; else $i = strlen($s)-$p-1; return (integer)$i; } $p = laststrpos($s,'.'); $nazwa = substr($s,0,$p); $rozszerzenie = substr($s,$p+1); ?>

@down: zgadza się, ale chciałem podać ostatnio napisaną funkcją :)
Przyda się nie tylko w tym problemie. Poza tym, pamiętaj o tym, że rozwiązań jest wiele :) Ja zaproponowałem swoje ;)
Użytkownik DJ_ProG edytował ten post 08 luty 2007, 16:48
Jest chyba łatwiejsze rozwiązanie - jak wiadomo rozszerzenie z kropką jest na końcu. Można więc funkcją explode() podzielić adres na tablicę, którą można posortować w kolejności odwrotnej funkcją krsort(). Wtedy wartość "gif" będzie pierwszym elementem w tablicy.
Dzięki wszystkim za pomoc.


Jest chyba łatwiejsze rozwiązanie - jak wiadomo rozszerzenie z kropką jest na końcu. Można więc funkcją explode() podzielić adres na tablicę, którą można posortować w kolejności odwrotnej funkcją krsort(). Wtedy wartość "gif" będzie pierwszym elementem w tablicy.
Wydaje mi się, że szybsze będzie użycie

$rozszerzenie = $t[count($t)-1];
;)

$rozszerzenie = strpos($adres, -3);
I po co sobie utrudniać życie?


(...) A skąd wiesz, czy rozszerzenie będzie składać się z trzech znaków? :) Może być np. "jpeg" :P
Użytkownik DJ_ProG edytował ten post 09 luty 2007, 09:00
Czyli moim sposobem będzie najlepiej. Napiszcie jak zwolnić pamięć zmiennej w PHP.

PHP sam dba o zarządzanie pamięcią.

@down: ahh, nie pomyślałem ;)
Użytkownik Coldpeer edytował ten post 09 luty 2007, 16:17
unset($zmienna);

Mam wszystkie potrzebne info. Dzięki wszystkim za pomoc - temat uważam za ukończony.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.