Avatar billede viggosmor Nybegynder
15. december 2009 - 11:00 Der er 1 løsning

Captcha kode fungerer ikke.

Har lavet en email formular hvor der er en captcha kode, som brugeren skal indtaste for at kunne sende en mail til mig, men der er bare et rødt kryds der hvor koden skulle være, kan simpelthen ikk egennemskue hvad jeg har gjort galt....

Min kontakt.php ser således ud:





<?php

      session_start();

    function outputImage()
    {
        // Denne funktion skriver et billede til browseren
        header( 'Content-Type: image/png' );
        $im = imagecreate( 60, 20 );
        // Baggrundsfarven
        $bgcol = imagecolorallocate( $im, 255, 255, 255 );
        // Rammen
        $bordercol = imagecolorallocate( $im, 0, 0, 0 );
        // Tekstfarce
        $textcol = imagecolorallocate( $im, 100, 100, 220 );
        // Fyld med baggrundsfarven
        imagefill( $im, 1, 1, $bgcol );
        for ( $i = 0; $i < 4; $i++ )
        {
            // Tilfældig farve til linjerne
            $tmpCol = imagecolorallocate( 
                $im, mt_rand( 100, 230), mt_rand( 100, 230), mt_rand( 100, 230) );
            // Tegn linje
            imageline( $im, 0, mt_rand( 0, 19 ), 59, mt_rand( 0, 19 ), $tmpCol );
        }
        // Skriv CAPTCHA-teksten
        imagestring( $im, 5, 9, 2, $_SESSION['captcha-code'], $textcol );
        // Wave effect
        for ( $i = 0; $i < 60; $i += 2 )
            imagecopy( $im, $im, $i - 2, sin( $i / 10 ) * 3, $i, 0, 2, 20 );
        // Tegn rammen
        imagerectangle( $im, 0, 0, 59, 19, $bordercol );
        // Smid billedet til browseren
        imagepng( $im );
        imagedestroy( $im );
        // Stop scriptet her!
        exit;
    }
   
    function newCode()
    {
        // Denne funktion laver en tekst der (som regel) kan udtales
        $vowels = array_slice( preg_split( '//', 'AEUY' ), 1, -1 );
        $nvowels = count( $vowels ) - 1;
        $consonants = array_slice( preg_split( '//', 'BCDFGHJKLMNPQRSTVWXZ' ), 1, -1 );
        $nconsonants = count( $consonants ) - 1;
        $code = "";
        $rnd = mt_rand( 0, 1 ) == 1 ? true : false;
        // Loopet herunder bygger teksten
        while ( strlen( $code ) < 5 )
        {
            $code .= ( $rnd ? $vowels[ mt_rand( 0, $nvowels ) ]
                : $consonants[ mt_rand( 0, $nconsonants ) ] );
            $rnd = !$rnd;
        }
        // Smid teksten i en sessionsvariabel
        $_SESSION['captcha-code'] = $code;
    }
    if ( isset( $_GET['img'] ) || isset( $_GET['newimg'] ))
    {
        if ( isset( $_GET['newimg'] ) )
        {
            // Brugeren kunne ikke læse koden, så lav en ny
            newCode();
        }
        // Vis billede
        outputImage();
        // Scriptet stopper i outputImage() - Denne kode bliver altså kun
        // kørt når der gives ?img eller ?newimg i URL'en
    }
   
    // Dan ny CAPTCHA-tekst
    newCode();


?>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title>Søderberg-indretning - Indretning af boligstylist Lone Søderberg</title>
   
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="MSSmartTagsPreventParsing" content="true" />
   
    <meta name="description" content="Boligstylist Lone Søderberg, tilbyder indretning hos private i Københavnsområdet" />
    <meta name="keywords" content="mmd, multimediedesigner, boligstylist, Lone Søderberg, studerende" />
   
    <meta name="author" content="Søderberg-indretning" />
   
       
<style type="text/css" media="all">
    @import "css/kontakt.css";
</style>
<script type="text/javascript" src="swfobject.js"></script>
        <script type="text/javascript">
       
        swfobject.embedSWF("menu.swf", "menu1", "950", "40", "9.0.0", "expressInstall.swf");
        </script>
       
        <script src="AC_RunActiveContent.js" type="text/javascript"></script>
       
        <script language="JavaScript" src="gen_validatorv31.js" type="text/javascript"></script>
<script type="text/javascript">
    function getNewImg()
    {
        var d = new Date();
        document.getElementById('theImg').src ='<?= $_SERVER['PHP_SELF'] ?>?newimg&amp;x' + d.getTime();
    }
</script>
</head>

<body>

<div id="forsideIndhold">
<div id="bannerForside"><img src="banner/kontaktBanner.jpg" alt="søderberg-indretning" /></div>
<div id="menu1">
        <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>


<div id="kontakt1">

</div>
<div id="kontaktTekst">

<h1>Kontakt</h1>

<div id="formHolder"><form action="contactform.php" method="post" name="form1" id="form1">
  <table width="100%" border="1" cellpadding="6" cellspacing="10" >
        <tr>
          <!-- Her følger skabelsen af alle tekstfelterne. Input navn (name, email osv) er vigtigt, fordi det bliver brugt af funktionerne på contactform.php til at videreføre det som brugeren skriver til os. -->
          <td><label for="email">
          Email:
          </label> </td>
          <td><div align="left">
            <input name="email" type="text" id="email" size="35" maxlength="100" />
          </div></td>
        </tr>
        <tr>
          <td><label for="name">
          Navn:
          </label></td>
          <td><div align="left">
            <input name="name" type="text" id="name" size="35" maxlength="80" />
          </div></td>
        </tr>
        <tr>
          <!-- Her følger quizspørgsmålene. Når man laver dem via "indput type", kommer svarmulighederne til at fremstå som radiobuttons, hvor brugeren kan sætte sit kryds i een. -->
          <td> 
              <div align="left">Hvad drejer din henvendelse om?</div>
           
        </td>
          <td><p align="left">
            <label>
              <input type="radio" name="budget" value="Chess" id="budget_0" />
              Privat indretning</label>
            <br />
              <label>
                <input type="radio" name="budget" value="Chess Cartoons" id="budget_1" />
                Firma indretning</label>
              <br />
              <label>
                <input type="radio" name="budget" value="Pens" id="budget_2" />
                webdesign</label>
              <br />
             
                  <label>
                <input type="radio" name="budget" value="Digital" id="budget_4" />
                Andet</label>
              <br />
             
             
          </p></td>
          </tr>
         
      <tr>
        <td><div align="left">
            <label for="travelers">
            Skriv bogstaverne i billedet:
</label></div></td>
<td><div align="left">
              <img src="<?= $_SERVER['PHP_SELF'] ?>?img" alt="" name="theImg" align="top" id="theImg" />
    <input type="text" style="width: 60px" name="kode" />
    <input type="button" value="Ny kode!" onclick="getNewImg()" /></div>
    </td>
        </tr>

         
        <tr>
          <!-- Her følger quizspørgsmålene. Det er "rullevindue" spørgsmål, i stedet for radiobuttons som ovenover, hvor brugeren kan markere een. Det er opnået ved at bruge "option value" i stedet for "input type". Det er lidt hurtigere gjort på rullevinduemåden, i øvrigt.  -->
          <td><div align="left">
            <label for="travelers">
            Hvordan fik du kendskab til sitet?
</label></div></td>
          <td><div align="left">
            <select name="travelers" id="travelers">
              <option>Vælg...</option>
              <option value="google">Gennem Google</option>
              <option value="Venner">Gennem venner</option>
              <option value="Familie">Gennem familie</option>
              <option value="Other">Andet</option>
            </select>
          </div></td>
        </tr>
        <!-- Her dannes feltet til kommentarer som brugeren kan skrive i. Det skabes ved at bruge columns og rows, og ved at putte det ind i en textarea klamme.  -->
        <tr>
          <td><div align="left">
            <label for="comments">
            Kommentarer:
</label></div></td>
          <td><div align="left">
            <textarea name="comments" id="comments" cols="26" rows="5"></textarea>
          </div></td>
        </tr>
       
        <tr>
          <!-- Her til sidst laves 2 knapper. En til at slette alt som brugeren har skrevet i formen, hvis vedkommende gerne vil begynde forfra, og så en "send email" knap. Man laver knapperne ved at vælge input type, og så reset for den der skal rydde formen, og submit for den der skal smide mailen afsted. -->
          <td><div align="right">
            <label for="clear"></label>
            <div align="left">
              <input type="reset" name="clear" id="clear" value="Fortryd" />
            </div>
          </div></td>
          <td><div align="right">
            <label for="submit"></label>
            <div align="left">
              <input type="submit" name="submit" id="submit" value="Send Email!" />
            </div>
          </div></td>
        </tr>
      </table>
    </form>
  <script language="JavaScript" type="text/javascript">
//You should create the validator only after the definition of the HTML form
  var frmvalidator  = new Validator("form1");

  frmvalidator.addValidation("email","maxlen=50");
  frmvalidator.addValidation("email","req","Indtastning af email mangler!");
  frmvalidator.addValidation("email","email");
 
  frmvalidator.addValidation("name","req","Indtastning af navn mangler!");
  frmvalidator.addValidation("name","alfa");
 
  frmvalidator.addValidation("budget","selone_radio=on","Vælg venligst hvad du syndes om Mopse-info.dk!");
  frmvalidator.addValidation("kode","req","Indtastning af kode mangler!");
  frmvalidator.addValidation("kode","alfa");
 
  frmvalidator.addValidation("travelers","dontselect=0","Vælg venligst hvordan du fik kendskab til sitet!");

</script>
</div>

</div>

<div id="footer">
<p align="center">Design af <a href="http://soederberg-indretning.dk">Søderberg indretning</a> Copyright &copy; Lone Søderberg</p></div>


</div>

</body>
</html>
Avatar billede viggosmor Nybegynder
15. december 2009 - 11:18 #1
Nå fandt selv ud af det....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester