Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmiana wygenerowanego obrazka
onelife
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.08.2013

Ostrzeżenie: (0%)
-----


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.

Ten post edytował onelife 3.02.2014, 08:13:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Określ bardziej istote problemu - co to są te kolejne obrazki, wersje tej samej grafiki.
Czy podmiana ma się odbywać przez przeładowania strony?
Go to the top of the page
+Quote Post
onelife
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.08.2013

Ostrzeżenie: (0%)
-----



Tak są te same wersję tylko inne kolorystycznie,chciałbym by podmiana odbywała się bez przeładowania strony.

Ten post edytował onelife 3.02.2014, 10:27:52
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Najprościej za pomocą jQuery - poczytaj pod hasłem "jQuery change image".
Można ukryć inne wersje i robić hide/show lub podmieniać src.
Go to the top of the page
+Quote Post
onelife
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.08.2013

Ostrzeżenie: (0%)
-----


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>';



Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
onelife
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.08.2013

Ostrzeżenie: (0%)
-----


Jest tak:


Kod
http://localhost/gener.php?Nick=mojnick&syg=nawzaobrazka.png
Go to the top of the page
+Quote Post
markonix
post
Post #8





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


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)

Ten post edytował markonix 4.02.2014, 21:32:16
Go to the top of the page
+Quote Post
onelife
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.08.2013

Ostrzeżenie: (0%)
-----


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

Ten post edytował onelife 5.02.2014, 09:02:57
Go to the top of the page
+Quote Post
phpion
post
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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).
Go to the top of the page
+Quote Post
markonix
post
Post #11





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
onelife
post
Post #12





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.08.2013

Ostrzeżenie: (0%)
-----


Dowolnych. (IMG:style_emoticons/default/smile.gif)


Można zamknąć,dziękuje za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 17:50