Autor | Zpráva | ||
---|---|---|---|
smid83 Profil * |
#1 · Zasláno: 15. 11. 2013, 10:53:37
Ahoj muže te mi někdo poradit?potřeboval bych nějaký skript
jak udělat aby se místo př http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg ("email@seznam.cz", "Test","chyba obrazku","From: <email@seznam.cz>", $_POST["zprava"]); echo "<p>Dekujeme za odeslání zprávy.</p>\n"; |
||
Alphard Profil |
#2 · Zasláno: 17. 11. 2013, 20:15:42
Můžete použít get_headers(), získat hlavičky odezvy a kontrolovat ji (200 OK, nebo 404 Not Found). Případně si načíst celý soubor, není velký, aby to byl problém. Zbytek je věc podmínek.
Kontrolu bych spouštěl periodicky na pozadí na cronem. |
||
smid83 Profil * |
#3 · Zasláno: 18. 11. 2013, 13:56:37
Děkuji zaradu koukal jsem na to ale vubec nevim jak to mám použít
|
||
smid83 Profil * |
#4 · Zasláno: 19. 11. 2013, 12:28:32
potřeboval bych spíše nějaký názorný skript v nastránce get_headers() jetoho tolik že nevim co z toho a jak použít
|
||
juriad Profil |
#5 · Zasláno: 19. 11. 2013, 12:33:44
|
||
smid83 Profil * |
#6 · Zasláno: 19. 11. 2013, 18:20:16
tak to nevim zkoušel jsem třeba z odkazu od jurian z odkazu
<?php function get_http_response_code($theURL) { $headers = get_headers($theURL); return substr($headers[0], 9, 3); } if(intval(get_http_response_code('filename.jpg')) < 400){ // File exists, huzzah! } ?> |
||
juriad Profil |
Aha, takže ty chceš kontrolovat, zda tvůj soubor existuje? Pak stačí jednoduché:
if(file_exists('filename.jpg')) { // File exists, huzzah! } Pokud chceš kontrolovat existenci cizího souboru, musíš použít funkci get_headers a uvést celou cestu, ne jen nazev. Toto funguje (alespoň mně): function get_http_response_code($theURL) { $headers = get_headers($theURL); return substr($headers[0], 9, 3); } echo get_http_response_code('http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg'); // vypíše 200 echo "<br>\n"; echo get_http_response_code('http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003x.jpg'); // vypíše 404 |
||
smid83 Profil * |
#8 · Zasláno: 20. 11. 2013, 10:19:11
vypadá to pěkně ale potřeboval bych spíš když ten soubor fungovat nebude tak aby se to přeplo na jinej
a v tom souboru bych měl automatickou zpravu opozornující na email ,to už umím tady jde jenom oto jak to udělat aby se to přeplo když danej obrázek nebude fungovat |
||
Časová prodleva: 4 dny
|
|||
smid83 Profil * |
#9 · Zasláno: 24. 11. 2013, 08:21:30
Jde to aby by místo chyby 404 to přesměrovalo někam jinam?
|
||
Alphard Profil |
#10 · Zasláno: 24. 11. 2013, 10:05:37
V PHP ne. Šlo by to, kdyby jste měl přístup k nastavení serveru, ale to u cizího nemáte.
Řešením je existenci souboru ověřit před tím, než vygenerujete odkaz. Dělat to za běhu by ale bylo pomalé, takže nejlépe na pozadí v určitých intervalech, jak jsem psal už před týdnem. Alternativně můžete použít js událost onerror wap.w3schools.com/jsref/event_onerror.asp. |
||
smid83 Profil * |
#11 · Zasláno: 24. 11. 2013, 12:10:29
Tak jsem našel asi to to
<script> function imgError() { alert('The image could not be loaded.'); } </script> <img src="http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg" onerror="imgError()"> Jenže bych potřeboval změnit ten alert('The image could not be loaded.'); oby mi okénko nevyskočilo s upozorněním abych misto toho mohl dát toto v php
@mail($email_to, $email_subject, $email_message, $headers); |
||
Chro Profil |
#12 · Zasláno: 24. 11. 2013, 13:16:32
Místo alertu můžeš použít document.write a zavolat php skript přes neviditelný iframe, v němž bude vykonáno zaslání mailu.
document.write('<iframe style="display: none" src="http://...skript.php" width="0" height="0"></iframe>'); |
||
smid83 Profil * |
#13 · Zasláno: 24. 11. 2013, 13:48:26
diky chtěl jsem to vyřešit takhle fungujeto ale pořád se nechce vypnout načítání když ten obrázek tam neni zobrazí se sice zkouska ale pořád se to načítá na co jsem zapoměl nebo co dělám špatně
<script> function imgError() { document.write('<?php print'zkouska';?>');} </script> <img src="http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg" onerror="imgError()"> |
||
Alphard Profil |
#14 · Zasláno: 24. 11. 2013, 13:52:16
1. Nejčastější potíže s PHP (FAQ) » Jak přenést proměnnou z javascriptu do PHP
2. Neděláte nic pro to, aby se načítání zrušilo. |
||
smid83 Profil * |
#15 · Zasláno: 24. 11. 2013, 14:33:33 · Upravil/a: smid83
já jsem právě myslel že to bude fungovat takto že to nemuže byt tak složity ale asi jo
<script> function imgError() { document.write('<?php mail("email@seznam.cz", "test", $_POST["zprava"]);?>');} </script> <img src="http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg" onerror="imgError()"> dalo by se udělat elespon toto?ktoto nejde viz níže function get_http_response_code($theURL) { $headers = get_headers($theURL); return substr($headers[0], 9, 3); } echo get_http_response_code('http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg'); // vypíše 200 echo "<br>\n"; echo get_http_response_code('http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003x.jpg'); // vypíše 404 že míst 404 mi to vypíše něco jiného,nebo mě to odkáže jinam? |
||
smid83 Profil * |
#16 · Zasláno: 25. 11. 2013, 09:53:21 · Upravil/a: smid83
Tak jsem našel toto ale nevím si rady .aby to správně fungovalo tak ten
mojeOkno = window.open('index.php') potřebuju dát dozávorky pod mojeOkno.close() ale když tam jsou spolu tak to nefunguje mužete mi někdo říct čím to je a jak se to dá vyřešit? <script> function imgError() { mojeOkno.close()} mojeOkno = window.open('index.php') mojeOkno.document.write('Toto okno se automaticky zavře po uplynutí 9 sekund.') self.setTimeout('imgError()', 9000) </script> tady je zbytek kodu <img src="http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg" onerror="imgError()"> |
||
juriad Profil |
#17 · Zasláno: 25. 11. 2013, 10:17:58
Jde to mnohem jednodušeji. Stačí jen změnit src toho obrázku, který nefunguje na adresu tvého PHP skriptu.
kód: http://kod.djpw.cz/met
ukázka: http://kod.djpw.cz/met-
Záměrně neklikatelné: obrázky nejsou vhodné pro děti. Všimni si v nástrojích pro vývojáře v prohlížeči požadavku na nefunkcni-obrazek.php. V tom PHP skriptu získáš adresu nefunkčního obrázku z $_GET['url'] . Následně si můžeš třeba poslat mail nebo cokoli jiného.
|
||
smid83 Profil * |
#18 · Zasláno: 25. 11. 2013, 10:36:46
juriad:
tomuhle vubec nerozumím jak se stím zachází |
||
juriad Profil |
Ve skriptu nefunkcni-obrazek.php bude to tvé odesílání emailu. Tento skript se „zavolá“, kdykoli některý obrázek na stránce vrátí chybu.
<?php if(isset($_GET['url'])) { @mail("aa@bb.cc", "Nefunkcni obrazek", "Na strance nefunguje obrazek " . $_GET['url'], "From: xx@yy.zz"); } Doplněna závorka Co přesně nechápeš? |
||
smid83 Profil * |
#20 · Zasláno: 25. 11. 2013, 12:48:22
co dělat stímhle
http://kod.djpw.cz/met já tam nechci dávat ručně obrázky nevim vubec jak se stím pracuje,jak to sestavyt
|
||
juriad Profil |
#21 · Zasláno: 25. 11. 2013, 13:12:59
To je ukázka, na které jsem ti chtěl demonstrovat, jak to funguje. Prostě do hlavičky stránky přidáš ten čtyřřádkový javascript definující funkci imgError a každému obrázku přídáš atribut onerror.
|
||
smid83 Profil * |
#22 · Zasláno: 25. 11. 2013, 14:18:42
ja ti asi rozumim
myslíš takto ale jak ve window.open nastavit ($_GET['url']) aby se neotvírala druhá stránka aby to zustalo na té samé nebo aby se hned pak zavřela
<script> function imgError() { window.open('pica.php?mail=vse')} </script><?php endif; ?> <img src="http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg" onerror="imgError()"> |
||
juriad Profil |
#23 · Zasláno: 25. 11. 2013, 15:49:18
Zapomeň na nějaké window.open; udělej to tak, jak jsem napsal. Můžeš to zkopírovat z ukázky, ta funguje.
1) přidat parametr img funkci imgError 2) window.open nahradit za: img.onerror = undefined; img.src='pica.php?url=' + encodeURIComponent(img.src); Toto ti zavolá skript pica.php a parametrem bude obrázek, který se nezobrazil. |
||
smid83 Profil * |
#24 · Zasláno: 25. 11. 2013, 16:13:03
tak jsem to udělal takhle jestli jsem tě pochopil ale pořád mi to píše chybnou hlášku na řádku tam kde je
if(isset($_GET['url']) { a ten this mám správně?
<script> function imgError() { img.onerror = undefined; img.src='pica.php?url=' + encodeURIComponent(img.src);} </script><?php if(isset($_GET['url']) { @mail("aa@bb.cc", "Nefunkcni obrazek", "Na strance nefunguje obrazek " . $_GET['url'], "From: xx@yy.zz"); } ?> <img src="http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg" onerror="this.imgError()"> |
||
Chro Profil |
#25 · Zasláno: 25. 11. 2013, 16:44:28
Chybí ti tam ještě jedna uzavírací závorka. if(isset($_GET['url']))
|
||
smid83 Profil * |
#26 · Zasláno: 25. 11. 2013, 17:16:27
diky to jsem opravil a dal jsem misto
aa@bb.cc svojí adresu schválně odkaz na chybnej img a nic mi nepřišlo co dělám ještě špatně
|
||
juriad Profil |
#27 · Zasláno: 25. 11. 2013, 22:31:59
Máš tam dvě chyby. Za tu chybějící závorku se omlouvám.
function imgError(img) ... onerror="imgError(this)"> |
||
smid83 Profil * |
#28 · Zasláno: 26. 11. 2013, 12:34:58
Chlapy všem vám moc a moc děkuju hlavně za trpjelivost už to funguje trápil jsem se stím celej měsíc .
Měl bych ještě jednu otázku ono by se to teoreticky dalo použít i na chbné odkazy ale nevím co tam napsat místo img .jinak posílám celej funkční hotovej skript a ještě jednou díky <script> function imgError(img) { img.onerror = undefined; img.src='zkouska.php?url=' + encodeURIComponent(img.src);} </script><?php if(isset($_GET['url'])) { @mail("muj.mail@seznam.cz", "Nefunkcni obrazek", "Na strance nefunguje obrazek " . $_GET['url'], "From: aa@yy.zz"); } ?> <img src="http://img02.redtubefiles.com/_thumbs/0000172/0172495/0172495_003n.jpg" onerror="imgError(this)"> |
||
Chro Profil |
#29 · Zasláno: 26. 11. 2013, 15:28:22
Zda je odkaz chybný, tzn. vedoucí na neexistující stránku s případným zobrazením chybové hlášky, zjistíš až poté, co na něho klikneš. Řeší se to jinak, viz
ErrorDocument 404 S tím, že v chybovém souboru (klidně s příponou *.php) může být obsažen skript s odesíláním na mail. |
||
Časová prodleva: 12 dní
|
|||
smid83 Profil * |
#30 · Zasláno: 8. 12. 2013, 16:46:27
ahoj objevil jsem chybu týká se to skriptu ktery jsem psal #28
kolikrát mi to pošle email o chybě obrázku i když ibrázek funguje nevíte čím by to mohlo být? ukázka funkčního obrázku ktery se mi posílá jako nefunkční <img src="http://et10.xhamster.com/t/250/4_2385250.jpg" onerror="imgError(this)">
|
||
Téma pokračuje na další straně.
|
0