You are not logged in.

  • Login

1

Wednesday, August 24th 2011, 9:52pm

jQuery: Überprüfen ob fremdes Captcha richtig ausgefüllt ist

Hallo,
ich hab wieder ein Problem mit einem userscript ;(

Ich habe ein Formular mit Captcha:

HTML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<td background="/static/bgg.png" valign="top" width="570">
	<br><br>
		<table border="0" cellpadding="0" cellspacing="0" width="100%">
	   	    <tbody><tr>
		         <td align="center" background="/static/menu.png"><img src="/static/menu2.png" alt="" align="absmiddle" height="30" width="1">
	            	 <a href="/premium.php">jetzt PremiumAccount bestellen</a>
                 </td>
            </tr>
	   	    </tbody>
        </table><br>
 
 
	Hallo Scrat96,<br><br> du willst Wasser suchen gehen. Das dauert ca. 30 Minuten.<br><br><br>
 
	<form action="wasser.php" method="post">
		<input name="do" value="true" type="hidden">
    	<table border="0">
			<tbody><tr>
               	<td colspan="2">
					<b>Zufallscode bitte abschreiben:</b>
				</td>
			</tr>
			<tr>
				<td>
					<input name="zufallscode" size="4" type="text">
				</td>
 
				<td>
					<img src="checkbild.php?sid=39ab04c20f6ebbb43f30004c964e28f3&amp;code=788">
				</td>
			</tr>
		</tbody></table>
		<br>
		<input value="Wasser suchen" type="submit">
		</form>
 
 
		<!-- INHALT ENDE -->
		<br>
 
</td>


Sobald auf den Submitbutton mit dem Value "Wasser suchen" gedrückt wird und der Code richtig eingeben ist, soll eine einfache Fnktion auseführt werden.Ist das mit jQuery möglich?
Wenn der Code richtig eingeben ist, wird diese gesamte td auf der Seite gelöscht und ein neuer Inhalt geladen "Du bist jetzt 30 Minuten Wassersuchen". Kann man evtl. damiteine Alternative machen? Die Seite wird allerdings nicht neu geladen.

Danke ;)

2

Wednesday, August 24th 2011, 10:20pm

Hi,

ja, das ist natürlich möglich, das eine Funktion aufgerufen wird.

Damit das Formular nicht abgesandt wird, musst du entweder den submit via js unterbinden oder die einfachere Möglichkeit nutzen und aus dem "submit" einen "button" machen.

Mit jQuery kannst du dann einfach das Click Event nutzen.


Die Clientseitige Abfrage ob die Eingabe richtig ist, funktioniert nur mit Ajax.
(Ausser natürlich, der richtige Code des Captchas steht im Quelltext und ist Clientseitig verfügbar, wovon ich mal nicht ausgehe, da dann das ganze Captcha keinen Nutzen bringt ;) ).


Beim klicken sendest du die Daten asynchron an den Server, welcher das Catpcha überprüft und du dann bei "success" deine gewünschten Operationen ausführst, also die Captchaeingabe löscht und den Text einfügt.

3

Wednesday, August 24th 2011, 10:28pm

Ufff, AJAX. Damit hab ich mich überhaupt noch nicht beschäftigt :sleeping:

Wieso muss man den input in einen button umwandeln? Das ist mir noch unklar ;)

4

Wednesday, August 24th 2011, 10:36pm

Wieso muss man den input in einen button umwandeln? Das ist mir noch unklar

da beim klicken eines "submit-buttons" das Formular abgesandt, also ein Http Request erzeugt wird so, dass deine Seite neu geladen wird.
Du selber möchtest ja, das das neuladen der Seite verhindern, den Http Request also asynchron ausführen (Ajax=Asynchronous JavaScript and XML) so, dass dieser im Hintergrund ausgeführt wird. Dafür musst du das absenden des Formulars unterbinden, was du erreichst, indem du aus dem submit einen button machst, da dieser das Formular nicht abschickt.

5

Wednesday, August 24th 2011, 10:40pm

Wieso muss man den input in einen button umwandeln? Das ist mir noch unklar

da beim klicken eines "submit-buttons" das Formular abgesandt, also ein Http Request erzeugt wird so, dass deine Seite neu geladen wird.
Du selber möchtest ja, das das neuladen der Seite verhindern, den Http Request also asynchron ausführen (Ajax=Asynchronous JavaScript and XML) so, dass dieser im Hintergrund ausgeführt wird. Dafür musst du das absenden des Formulars unterbinden, was du erreichst, indem du aus dem submit einen button machst, da dieser das Formular nicht abschickt.


Nenene, das mein ich nicht ;)
Die Seite wird beim absenden des Formulars nicht neu geladen, sondern editiert.

6

Thursday, August 25th 2011, 7:38am

Wieso muss man den input in einen button umwandeln? Das ist mir noch unklar

da beim klicken eines "submit-buttons" das Formular abgesandt, also ein Http Request erzeugt wird so, dass deine Seite neu geladen wird.
Du selber möchtest ja, das das neuladen der Seite verhindern, den Http Request also asynchron ausführen (Ajax=Asynchronous JavaScript and XML) so, dass dieser im Hintergrund ausgeführt wird. Dafür musst du das absenden des Formulars unterbinden, was du erreichst, indem du aus dem submit einen button machst, da dieser das Formular nicht abschickt.


Nenene, das mein ich nicht ;)
Die Seite wird beim absenden des Formulars nicht neu geladen, sondern editiert.

Ich hab ja auch geschrieben, dass du das Neuladen der Seite nicht möchtest.

Mit edidiert meinst du du das einfügen des Textes ? Wenn ja, dann nimm lieber manipuliert ;)

7

Thursday, August 25th 2011, 9:15am

Achso,
ich hab eigentlich gedacht das wäre einfach mit einer einfachen IF-Anweisung oder so :sleeping:

if("eingabe" == "captchabildlink.php")


Gibt es das nicht?

8

Thursday, August 25th 2011, 11:27am

nein, das gibt es nicht. Für dein Vorhaben führt kein Weg um Ajax herum.

9

Thursday, August 25th 2011, 11:42am

Wobei wenn man es auf ne skurile Weise lösen will dann kann man im Captcha ein Kommentar hinzufügen mit dem "output" und das ganze dann filtern.
Geht sicherlich auch und keiner würde auch auf die Idee kommen da nachzuschauen.

Ist keine Problemlösung, aber das ist das was mich spontant eingefallen ist und was ich teilen wollte :p

Similar threads

Social bookmarks