onelife
3.02.2014, 08:13:08
Cześć. Mam taki kod
Kod
$Link = "http://testowastrona/gener.php?Nick=".$_GET['nick'];
$Wyswietlsygne= '<img src="'.$Link.'">';
$Kopiuj= '<textarea cols="50">'.$Link.'</textarea>';
I obrazek się wyświetla. Ale chciałbym dodać możliwość zmiany obrazka poprzez kliknięcie np. [1] , [2] że pokazują się następne wygenerowane obrazki w miejscu tego 1.
markonix
3.02.2014, 10:18:59
Określ bardziej istote problemu - co to są te kolejne obrazki, wersje tej samej grafiki.
Czy podmiana ma się odbywać przez przeładowania strony?
onelife
3.02.2014, 10:23:24
Tak są te same wersję tylko inne kolorystycznie,chciałbym by podmiana odbywała się bez przeładowania strony.
markonix
3.02.2014, 13:33:14
Najprościej za pomocą jQuery - poczytaj pod hasłem "jQuery change image".
Można ukryć inne wersje i robić hide/show lub podmieniać src.
onelife
3.02.2014, 13:58:56
W sumie to znalazłem coś takiego
Kod
<script type="text/javascript">
function klik(o, src1, src2) {
var sources = o.src.split("/");
var image = sources[sources.length-1];
if(image == src1) {
o.src = src2;
} else {
o.src = src1;
}
}
</script>
</head>
<img src="1.gif" alt="" onclick="klik(this, '1.gif', '2.gif')" />
Tylko nie wiem jak bym mógł to podczepić pod mój kod php
Kod
$Link = "http://testowastrona/gener.php?Nick=".$_GET['nick'];
$Wyswietlsygne= '<img src="'.$Link.'">';
$Kopiuj= '<textarea cols="50">'.$Link.'</textarea>';
markonix
3.02.2014, 15:24:28
No to kiepsko szukasz bo tym przykładem nie osiągniesz co trzeba tzn. linki do wersji tej samej grafiki.
Określ po pierwsze pod jakim adresem są te inne wersje grafiki.
onelife
4.02.2014, 13:01:59
Jest tak:
Kod
http://localhost/gener.php?Nick=mojnick&syg=nawzaobrazka.png
markonix
4.02.2014, 21:30:12
Rozumiem, że w żaden sposób nie zabezpieczasz przed podawaniem dowolnych nicków w linku oraz dowolnego pliku, niekoniecznie obrazka w zmiennej "syg"? To tak tylko na marginesie.
Podaje rozwiązanie z jQuery (bardziej przejrzyste).
1) Linki do wersji to dowolne elementy (button, span, link), nie ma znaczenia. Ważne aby miały np. atrybut data-image="TU WSTAWIASZ nazwę obrazka" (nazwa atrybutu dowolna).
2) Za pomocą zdarzenia Click na tym elemencie wychwytujesz zmianę. $(this).attr('data-image') pozwala na pobranie klikniętej wersji obrazka (1, 2, 3 itd.) do której przycisk odwołuje.
3) Tworzysz link czyli cały link + na końcu pobraną nazwę obrazka. Możesz w data-image też trzymać już pełną ścieżkę, nie ma to znaczenia.
4) Tak utworzony link wstawiasz do funkcji zmieniającej "src" obrazka czyli ścieżkę grafiki: $('.klasa_obrazka').attr('src', wygenerowany_url)
onelife
5.02.2014, 09:01:03
Okej, a co do zabezpieczenia dania dowolnego pliku badź nicku to jak mogę to poprawić? Tzn jeśli wpiszemy zły nick to jest "Niestety podałes niepoprawne dane!" jeśli jest zły obrazek to pojawiają się błedy typu Warning: imagecreatefrompng(s4234.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in
phpion
5.02.2014, 09:07:25
Sprawdzaj czy obrazek faktycznie istnieje (
file_exists lub
is_file) lub po prostu stwórz tablicę dozwolonych nazw i sprawdzaj czy przekazana w adresie znajduje się wśród nich (
in_array).
markonix
5.02.2014, 11:51:51
Cytat(onelife @ 5.02.2014, 09:01:03 )

Okej, a co do zabezpieczenia dania dowolnego pliku badź nicku to jak mogę to poprawić? Tzn jeśli wpiszemy zły nick to jest "Niestety podałes niepoprawne dane!" jeśli jest zły obrazek to pojawiają się błedy typu Warning: imagecreatefrompng(s4234.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in
Tzn nick wydaje mi się, że to powinien być nick zalogowanego?
Jeżeli to jest generator dowolnych banerów to nie było tematu.
onelife
5.02.2014, 16:36:23
Dowolnych.
Można zamknąć,dziękuje za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.