Autor Zpráva
liquid
Profil *
Ahoj. Potřeboval bych trochu pomoct s jednim scriptem. Potřebuju refrešovat captchu pokud je nečitelná. Do teď jsem to řešil tak že se refrešuje celá stránka, values ze všech inputů, se uloží do sessions a pak se to tam znovu všechno načte, ale to asi vůbec neni dobrý co se bezpečnosti týče. V java scriptu moc neumim nepomohl by mi někdo s tím scriptem prosím? Nechce se mi to řešit nějakym rámem. Chtěl bych to v jquery. Děkuji případně.
Chamurappi
Profil
Reaguji na liquida:
to asi vůbec neni dobrý co se bezpečnosti týče
Proč? Není to dobré zejména z hlediska uživatelské přívětivosti.

nepomohl by mi někdo s tím scriptem prosím?
Co má dělat? Jestli jen načíst obrázek do existujícího <img>, tak document.getElementById("ídéčko").src = "adresa-obrázku", případně "adresa-obrázku?" + Math.random(), aby se přebila keš.

Chtěl bych to v jquery.
Proč? Zbytečná závislost navíc.
liquid
Profil *
Chamurappi : no z hlediska uživatelské přívětivosti to právě přávětivé bylo. Vysvětlím to. Uživatel vyplnil formulář a dostal se ke captche pak se mu zdála nečitelná takže jí refrešoval. všechno co napsal se uložilo do sešnu a při refreši se to zam zase vypsalo. nepřišel o nic a to ani když captchu vyplnil špatně. ale nezdá se mi bezpečné že po tom refreši bylo ve zdrojovém kódu stránky jeho heslo.

Má to dělat jen načíst obrázek do již existujícího ano. s tím že se nepřepíše vyplněný formulář.


takže jsem to udělal jakože takhle?

<script>
document.getElementById("captcha").src = "captcha.jpg?" + Math.random(); 
</script>
<img src="captcha.jpg" id="captcha" alt="captcha" />

ale ještě bych tam potřeboval něco na co když kliknu tak se ten obrázek jakože refrešuje.
Chamurappi
Profil
Reaguji na liquida:
takže jsem to udělal jakože takhle?
Ne, v době spuštění skriptu ve stránce neexistuje element s id="captcha". Docela mi vrtá hlavou, proč lidi pokaždé zkouší dávat skript před věci, se kterými se skriptem manipuluje.

něco na co když kliknu tak se ten obrázek jakože refrešuje
Dej tomu něčemu atribut onclick a do něj ten příkaz.
liquid
Profil *
Docela mi vrtá hlavou, proč lidi pokaždé zkouší dávat skript před věci, se kterými se skriptem manipuluje. no protože tomu nerozumí že jo :D

Dej tomu něčemu atribut onclick a do něj ten příkaz. - a čemu například?
Chamurappi
Profil
Reaguji na liquida:
no protože tomu nerozumí že jo :D
Chápu, že mimo svět JS si člověk nemusí uvědomovat, že se stránka zpracovává postupně. Ale i tak, pokud ses domníval, že je jedno, kde skript bude, proč jsi ho umístil zrovna před? Zajímal by mě ten myšlenkový proces, protože je velmi častý.

a čemu například?
Čemukoliv. Tlačítku, obrázku, <span>u… to je celkem jedno.
liquid
Profil *
Chamurappi No s tim umisťovánim to budu mít ještě komplikovanější. Musim totiž pak ještě oddělit všechny ty scripty od sebe. Snad bude google přívětivý, protože jak php, tak html, tak js musí bejt odděleně. Na php a html mám smarty. Nevim jak se dělá s javascriptem zatim a to sem teprve na začátku :D čeká mě boj ještě. Nicméně abych odpověděl proč sem ho tak čistě umístil tam kam jsem ho umístil... no... prostě to tak nějak všude vždycky bylo. Když jsem odněkud okopíroval nějakej ajax nebo tak, tak byl ten js taky vždycky před. Asi jsem to doposud viděl vždycky takhle. Snažím se odpovědět uplně co možná nejpřesněji, aby se ti tahle situace s tím fenoménem trochu vyjasnila, ale ... nejvíc důvod je že nevim. Prostě jsem ho tam dal a doufal. Začátky jsou plné záhad. :/


Jako ale... když sem přehodil pořadí tak to teda nefunguje vůbec.


tak by to mělo bejt takhle? to taky nefunguje.

<button onclick="function()" id="captcha" >Click me</button> 
<script>
object.onclick=function(){
     document.getElementById("captcha").src = "captcha.jpg?" + Math.random(); 
}
</script>
Chamurappi
Profil
Reaguji na liquida:
Snad bude google přívětivý, protože jak php, tak html, tak js musí bejt odděleně.
Tomu nerozumím. Jak přívětivý? Proč to musí být odděleně? Z hlediska vyhledávače je přeci úplně jedno, jak je stránka sestavená na straně serveru, šablonovací systém nehraje absolutně žádnou roli, zajímá ho jen výsledné HTML a je mu také celkem šumák, jestli jsou skripty v něm, nebo odděleně. Pokud dáš ten jeden řádek do externího souboru, zbrzdíš načítání.

Asi jsem to doposud viděl vždycky takhle.
Hm. Chápu. Zlozvyk z jQuery.

onclick="function()"
Co by mělo dělat tohle?
Nevím, co v tom hledáš za vědu, opravdu stačí dát tlačítku atribut onclick a do něj ten příkaz:
<button type=button onclick="document.getElementById('captcha').src = 'captcha.jpg?' + Math.random();">
Pochopitelně ídéčko "captcha" dáš obrázku, jehož src chceš měnit, nikoliv tlačítku.
liquid
Profil *
Jde o to že na tom nedělám sám. Proto se to musí oddělovat. Taky to neni jenom v jednom jazyce, takže texty jsou jinde a kódy jsou jinde. proto to musim oddělit. ale chápu už jak to bylo pochopeno.. tou přívětivostí jsem myslel že snad najdu všechny informace sám a nebudu muset otravovat tady.

Ta věda v tom je prostě syntaxe. Nerozumim tomu jak funguje ten js a jak komunikuje s html. Chápu php protože je procedurální a to mě vyhovuje. Tohle když sim dám do pspadu tak má každý slovo jinou barvu :D takže něco je objekt něco medota něco něco něco. Musim se to naučit a taky se to naučim protože chci. Jenom zatim k tomu nedošlo.


Lol teď se mi povedlo metotou pokus omyl udělat jedno velký tlačítko z celýho formuláře :D to jsem v životě neviděl. To jen taková vsuvka.


Ale... už mám pokrok. už to skoro funguje. Jenom nastal novej problém.. mohl bych tim javascriptem oslovovat přímo i ten script co tu kapču vykresluje? protože ono to teď sice refrešuje obrázek, ale znaky jsou pokaždý stejný. to nevim jestli je ideální právě.
liquid
Profil *
už! sem na to přišel. děkuju všem za pomoc

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: