Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Captcha zeigt es wegen random nicht an

  1. #1
    Azubi(ne)
    Registriert seit
    28.03.2006
    Ort
    CH
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Captcha zeigt es wegen random nicht an

    Hallo miteinander,
    ich habe ein Captcha erstellt, und wollte die Linien die über der Zahl Liegen Variabel anzeigen lassen. doch leider funktioniert dies nicht. wenn ich die Zahlen einfach ohne "rand" funktion eingebe, klappt es wunderbar. doch das möchte ich ja nicht!

    Hier mal der Code des Captchas:

    Code:
    <?php
     
        $bild = imagecreate&#40;120,40&#41;;
        $rund="".$HTTP_GET_VARS&#91;"geb"&#93;;
    	$wert=$rund-35;
        if $rund != "" &#123;
        srand&#40;&#41;;
        $l11 = rand&#40;1, 40&#41;;
        $l12 = rand&#40;1, 40&#41;;
        $l13 = rand&#40;1, 40&#41;;
        $l21 = rand&#40;1, 40&#41;;
        $l22 = rand&#40;1, 40&#41;;
        $l23 = rand&#40;1, 40&#41;;
        $l31 = rand&#40;1, 120&#41;;
        $l32 = rand&#40;1, 120&#41;;
        $l33 = rand&#40;1, 120&#41;;
        $l41 = rand&#40;1, 120&#41;;
        $l42 = rand&#40;1, 120&#41;;
        $l43 = rand&#40;1, 120&#41;;
    	&#125;
      /*
        imageline&#40;$bild,0,30,100,10,$weiss&#41;;
        imageline&#40;$bild,0,10,100,30,$weiss&#41;;
        imageline&#40;$bild,20,0,80,40,$weiss&#41;;
        imageline&#40;$bild,$l11,$l21,$l31,$141,$weiss&#41;;
        imageline&#40;$bild,$l12,$l22,$l32,$142,$weiss&#41;;
        imageline&#40;$bild,$l13,$l23,$l33,$143,$weiss&#41;;
    */
    
         
    // Farben definieren
        $hinterg = imagecolorallocate&#40;$bild,204,204,255&#41;;
        $weiss = imagecolorallocate&#40;$bild,255,255,255&#41;;
        $blau = imagecolorallocate&#40;$bild,0,0,255&#41;;
        
        
    // Schrift einfügen
        imagestring&#40;$bild,12,30,12,$wert,$blau&#41;;
       
     // Störlinien setzen
        imageline&#40;$bild,$l11,$l21,$l31,$l41,$weiss&#41;;
        imageline&#40;$bild,$l12,$l22,$l32,$l42,$weiss&#41;;
        imageline&#40;$bild,$l13,$l23,$l33,$143,$weiss&#41;;
       
     // Type im Header definieren und Bild ausgeben
        header&#40;"Content-Type&#58; image/jpeg"&#41;;
        imagejpeg&#40;$bild&#41;;
        // Bild löschen
        imagedestroy&#40;$bild&#41;;
        
    ?>
    Kann mir da jemand einen Tipp geben?
    ich komme nicht draus.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Mit freundlichen Grüssen
    bambiD

    http://www.bambid.ch

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    wozu das rad umständlich 2x erfinden...

    die könnens besser:
    http://www.jtr.de/scripting/php/clas...cha/index.html

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    28.03.2006
    Ort
    CH
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo,
    also ich habe mir die Mühe gemacht und habe mein Formular umständlich und mit viel Mühe umgestellt, dass das Captcha auch funktioniert. Und nun habe ich eine Frage welche für einen Profi hier im Forum eigentlich kein Problem sein sollte, und dann bekomme ich eine solche nonsens Antwort, welche mich wieder zur totalen Umstellung meines Formulars führen würde. Nein, auf das habe ich keinen Bock. Ich möchte nicht schon ein vorgefertigtes Skript benutzen bei welchem ich nicht verstehe was im Hintergrund abläuft. Nein ich möchte eines welches ich selbst (mit Tutorial) erstellt habe und ich auch verstehe.
    Also bitte helft mir doch bei meinem Problem. Ich weis nicht wieso diese Linien nicht mit "rand" gemacht werden können.

    besten Dank für die Antwort. Hoffe du verstehst mich, ist nicht böse gemeint, aber das ist das was ich vertreten kann.
    Mit freundlichen Grüssen
    bambiD

    http://www.bambid.ch

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Code:
    <?php
     
        $bild = imagecreate&#40;120,40&#41;;
        $rund=$_GET&#91;'geb'&#93;;
        $wert=$rund-35;
    #    if &#40;!empty&#40;$rund&#41;&#41; 
    #	&#123;
         srand&#40;&#41;;
         $l11 = rand&#40;1, 40&#41;;
         $l12 = rand&#40;1, 40&#41;;
         $l13 = rand&#40;1, 40&#41;;
         $l21 = rand&#40;1, 40&#41;;
         $l22 = rand&#40;1, 40&#41;;
         $l23 = rand&#40;1, 40&#41;;
         $l31 = rand&#40;1, 120&#41;;
         $l32 = rand&#40;1, 120&#41;;
         $l33 = rand&#40;1, 120&#41;;
         $l41 = rand&#40;1, 120&#41;;
         $l42 = rand&#40;1, 120&#41;;
         $l43 = rand&#40;1, 120&#41;;
     #  &#125;
      /*
        imageline&#40;$bild,0,30,100,10,$weiss&#41;;
        imageline&#40;$bild,0,10,100,30,$weiss&#41;;
        imageline&#40;$bild,20,0,80,40,$weiss&#41;;
        imageline&#40;$bild,$l11,$l21,$l31,$141,$weiss&#41;;
        imageline&#40;$bild,$l12,$l22,$l32,$142,$weiss&#41;;
        imageline&#40;$bild,$l13,$l23,$l33,$143,$weiss&#41;;
    */
    
         
    // Farben definieren
        $hinterg = imagecolorallocate&#40;$bild,204,204,255&#41;;
        $weiss   = imagecolorallocate&#40;$bild,255,255,255&#41;;
        $blau    = imagecolorallocate&#40;$bild,0,0,255&#41;;
       
       
    // Schrift einfügen
        imagestring&#40;$bild,12,30,12,$wert,$blau&#41;;
       
     // Störlinien setzen
        imageline&#40;$bild,$l11,$l21,$l31,$l41, $weiss&#41;;
        imageline&#40;$bild,$l12,$l22,$l32,$l42, $weiss&#41;;
        imageline&#40;$bild,$l13,$l23,$l33,$l43, $weiss&#41;;
       
     // Type im Header definieren und Bild ausgeben
        header&#40;"Content-Type&#58; image/jpeg"&#41;;
        imagejpeg&#40;$bild&#41;;
        // Bild löschen
        imagedestroy&#40;$bild&#41;;
       
    ?>
    zeile 6: if ohne klammern ()
    zeile 28: $l43 und nicht $143 eine EINS ist kein L
    zeile 6,7,21 nur striche"punkte" mittels rand() generieren, wenn get leer ist?!
    zeile 4 $_GET ist aktueller.. wir sind doch nicht mehr bei php 3
    zeile 6 mit empy() geht es schneller

    Kommentar: auch wenn die Applikation fertig ist, sind deine Störstriche vollkommen unzureichend.
    Und wenn du nicht noch irgend wo was mit einer Session ein baust, gib mal den Link wenn es fertig ist... und schreib mal nen exponens dazu wie viele "GB" Einträge du den haben willst.

  5. #5
    Azubi(ne)
    Themenstarter

    Registriert seit
    28.03.2006
    Ort
    CH
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo erstmal und guten Morgen,
    Ich habe ja das Capcha so erstellt wie oben beschrieben. Was auch wunderbar funktioniert. Jetzt habe ich das Problem, was mache ich wenn ich das Bild nicht Lesen kann?

    ich habe dann versucht etwas zu erstellen mit jscript aber leider bin ich da am ende meiner bescheidenen kenntnissen. ich habe gegoogelt und habe nur Bilder gefunden die über zeitsteuerung geladen werden.
    das Problem dabei ist, dass mir das nichts bringt. ist ja blöd jemand tipt den Code ein und genau in dem moment wechselt die grafik.

    Wie muss ich das also machen?

    Hier mal der Code:
    Code:
    <div id="content">
    		
    
    </p>
    		<form id="Katbest" action="includes/kbestellung.php" method="get" target="_blank">
    					<div align="center">
    				<table width="350" border="0" cellspacing="2" cellpadding="0" align="left">
    					<tr>
    						<td colspan="2">
    							<div align="left">
    								<span class="Grundtext">Wie sind Sie an unsere Website gelangt?</span>
    								
    
    <input size="29" name="Website_gelangt" /></p>
    							</div>
    						</td>
    					</tr>
    					<tr height="30">
    						<td width="92" height="30">
    							<div align="left">
    								</div>
    						</td>
    						<td height="30">
    							<div align="left">
    								</div>
    						</td>
    					</tr>
    					<tr>
    						<td colspan="2">
    							<div align="left">
    								<span class="Links">Bitte die zeichenfolge von neben an einfügen.</span></div>
    						</td>
    					</tr>
    					<tr>
    						<td width="92">
    							<div align="left">
    								<?php
            								echo '[img]captcha.php?geb='.$rund.'[/img]
    
    ';
            								echo '<input type="hidden" name="geb" value="'.$rund.'" />';
            								?></div>
    						</td>
    						<td>
    							<div align="left">
    								<?php echo '<input type="text" name="testwert" maxlength="6" />
    
    ';?></div>
    						</td>
    					</tr>
    					<tr>
    						<td colspan="2" valign="top">
    							<div align="left">
    								<span class="zusatz">Sie können den Code nicht lesen? <span class="Links" onclick="load image id=code">Hier</span> neu laden.</span></div>
    						</td>
    					</tr>
    					<tr>
    						<td colspan="2">
    							<div align="left">
    								<input value="Formular abschicken" name="submit" type="submit" /><input type="reset" /></div>
    						</td>
    					</tr>
    				</table>
    			</div>
    				</form>
    </div>
    Das "Hier" welches als css "Links" deklariert ist, soll das captcha neu laden.

    Danke für die schnelle antwort.
    Mit freundlichen Grüssen
    bambiD

    http://www.bambid.ch

  6. #6
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    verstehe die frage nicht....

    geb zur not auch mal nen link zum angucken des problems

  7. #7
    Azubi(ne)
    Themenstarter

    Registriert seit
    28.03.2006
    Ort
    CH
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Es ist ganz einfach!
    also ich habe ein Captcha erstellt, welches ich mittels:
    Code:
    <?php
                                    echo '[img]captcha.php?geb='.$rund.'[/img]
    
    ';
                                    echo '<input type="hidden" name="geb" value="'.$rund.'" />';
                                    ?></div>
    anzeigen lasse.

    jetzt habe ich darunter einen Link der nur das Bild und nicht die ganze Seite neu laden soll.
    Was das ganze bringen soll. Wenn jemand das Captcha nicht lesen kann, soll er das bild neu laden können.
    Da es unterhalb eines Formulars ist, kann ich nicht die ganze Seite laden, da der IE das Formular löscht.

    alles klar?

    MfG bambid
    Mit freundlichen Grüssen
    bambiD

    http://www.bambid.ch

  8. #8
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    probier es mal so....

    ist ungetestet und nur fix zusammen gehackt

    Code:
    function picture_reload &#40;&#41; &#123;
     var obj = document.getElementById&#40;'code'&#41;;
    
     var a = new Image&#40;&#41;
     a.src  = obj.src;
    
     obj.src    = a.src;
     obj.height = a.height;
     obj.width  = a.width;
    &#125;

  9. #9
    Azubi(ne)
    Themenstarter

    Registriert seit
    28.03.2006
    Ort
    CH
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Bis jetzt bin ich soweit:
    Code:
    <html><head><title>Test</title>
    <?php 
    srand&#40;&#41;;
            $rund_1 = rand&#40;1000, 9999&#41;;
            $rund = $rund_1+35;
            $wert = $rund-35;
            ?>
    <script type="text/javascript">
    loadnew = new Image&#40;120,30&#41;;
    loadnew.src = "captcha.php?geb=<?php echo $rund; ?>";
    function Bildwechsel &#40;&#41; &#123;
      document.code.src = loadnew.src;
    &#125;
    
    </script>
    </head><body>
    
    
    
    
    <?php
    		echo '[img]captcha.php?geb='.$rund.'[/img]
    
    ';
    		echo '<input type="hidden" name="geb" value="'.$rund.'" />';
    ?>
    
    <script language="javascript">
    
    </script>
    Bild aktualisieren
    </p>
    </body></html>
    aber leider läd er nicht das neue captcha
    bzw. es wird nicht der neue Hintergrund geladen was es eigentlich sollte. und es gemacht hatte, als ich den Code <?php echo $rund; ?> nicht eingefügt hatte. doch an was liegt das?
    die übergabe funktioniert sonst wunderbar. aber er übergibt die zahl geb nicht wirklich richtig.
    oder
    das catcha kann die geb nicht auslesen.
    an was kann das liegen?

    besten dank für die Hilfe!

    Das ganze kann man hier anschauen:

    http://www.2007.ferronato.ch/catchatest.php
    Mit freundlichen Grüssen
    bambiD

    http://www.bambid.ch

  10. #10
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    gieb deiner grafik mal noch folgende optionen mit

    also in der PHP datei die die grafik lädt:
    header('Cache-Control: no-cache, no-store, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

Ähnliche Themen

  1. Captcha wird nicht angezeigt!
    Von fler171087 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 38
    Letzter Beitrag: 21.03.2008, 21:40
  2. Captcha - Finde den Fehler nicht
    Von Dark_Dog im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 24.10.2007, 15:13
  3. IE zeigt meine ani nicht an
    Von im Forum Flash Forum
    Antworten: 0
    Letzter Beitrag: 26.02.2007, 18:07
  4. ttf datei + captcha klappt nicht
    Von mop im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 04.06.2006, 16:16
  5. IE zeigt HP nicht richtig an
    Von Gettokind im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 12.09.2004, 16:41

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •