Hej viggosmor
Jeg har nu lagt coderdk's captcha kode på den test side jeg lavede til dig se her
http://www.prebendahl.dk/exp/test/viggosmor/ mailform kode
<?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>Mopse-info, alt om mopsen, pleje, opdrættere, links, mops-toppen, mm.</title>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<meta name="description" content="Læs alt om mopsen her" />
<meta name="keywords" content="mops, mopshvalpe, mops-opdrættere, mopselinks" />
<meta name="author" content="
http://soederberg-webdesign.dk" />
<style type="text/css" media="all">
@import "mopseInfo.css";
</style>
<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&x' + d.getTime();
}
</script>
</head>
<body>
<div id="content">
<div id="Navigation1">
<ul>
<li><a href="index.php"><img src="images/icons/home.jpg" border="0" alt="Forside"/></a></li>
<li><a href="info.php"><img src="images/icons/info.jpg" border="0" alt="Info"/></a></li>
<li><a href="links.php"><img src="images/icons/link.jpg" border="0" alt="Links"/></a></li>
</ul>
</div>
<div id="banner">
<object type="application/x-shockwave-flash" data="images/banner/banner1.swf" width="900" height="250">
<param name="movie" value="images/banner/banner1.swf" />
<param name="quality" value="high" />
</object>
</div>
<div id="sidebar">
<ul>
<li><a href="raceInfo.php">Race Info</a></li>
<li><a href="tips.php">Tips om mopsen</a></li>
<li><a href="opdraetterDKK.php">Opdrættere i DKK regi</a></li>
<li><a href="opdraetterDRU.php">Opdrættere i DRU regi</a></li>
<li><a href="traeningInfo.php">Træning af mopsen</a></li>
<li><a href="historier.php">Fortæl en sjov mopse historie</a></li>
<li><a href="pleje.php">Pleje af mopsen</a></li>
<li><a href="Billedgalleri.php">Billedgalleri</a></li>
<li><a href="udstillinger.php">Udstillinger og resultater</a></li>
<li><a href="parringer.php">Parringer</a></li>
<li><a href="
http://www.mopsviggo.dk/mops_toppen/">Tilmeld din side til Mops Toppen</a></li>
<li><a href="blogs.php">Få en blog om din mops</a></li>
<li><a href="kontakt.php">Kontakt administrator</a></li>
</ul>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
<div id="indhold2">
<h1>Kontakt administrator</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 synes du om Mopse-info.dk?</div>
</td>
<td><p align="left">
<label>
<input type="radio" name="budget" value="Chess" id="budget_0" />
Flot side</label>
<br />
<label>
<input type="radio" name="budget" value="Chess Cartoons" id="budget_1" />
Lækker side</label>
<br />
<label>
<input type="radio" name="budget" value="Pens" id="budget_2" />
Grim side</label>
<br />
<label>
<input type="radio" name="budget" value="Markers and Watercolours" id="budget_3" />
Brugbar side</label>
<br />
<label>
<input type="radio" name="budget" value="Digital" id="budget_4" />
Ligegyldig side</label>
<br />
<img id="theImg" align="top" src="<?= $_SERVER['PHP_SELF'] ?>?img" />
<input type="button" value="Ny kode!" onclick="getNewImg()" /><br />
<input type="text" style="width: 60px" name="kode" /> Skriv bogstaverne i billedet:
</p></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-webdesign.dk">soederberg-webdesign</a> Copyright © Lone Søderberg</p>
</div>
</div>
<div align="center"></div>
</body>
</html>
Modtage side
<!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>Mopse-info, alt om mopsen, pleje, opdrættere, links, mops-toppen, mm.</title>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<meta name="description" content="Læs alt om mopsen her" />
<meta name="keywords" content="mops, mopshvalpe, mops-opdrættere, mopselinks" />
<meta name="author" content="
http://soederberg-webdesign.dk" />
<style type="text/css" media="all">
@import "mopseInfo.css";
</style>
</head>
<body>
<div id="content">
<div id="Navigation1">
<ul>
<li><a href="index.php"><img src="images/icons/home.jpg" border="0" alt="Forside"/></a></li>
<li><a href="info.php"><img src="images/icons/info.jpg" border="0" alt="Info"/></a></li>
<li><a href="links.php"><img src="images/icons/link.jpg" border="0" alt="Links"/></a></li>
</ul>
</div>
<div id="banner">
<object type="application/x-shockwave-flash" data="images/banner/banner1.swf" width="900" height="250">
<param name="movie" value="images/banner/banner1.swf" />
<param name="quality" value="high" />
</object>
</div>
<div id="sidebar">
<ul>
<li><a href="raceInfo.php">Race Info</a></li>
<li><a href="tips.php">Tips om mopsen</a></li>
<li><a href="opdraetterDKK.php">Opdrættere i DKK regi</a></li>
<li><a href="opdraetterDRU.php">Opdrættere i DRU regi</a></li>
<li><a href="traeningInfo.php">Træning af mopsen</a></li>
<li><a href="historier.php">Fortæl en sjov mopse historie</a></li>
<li><a href="pleje.php">Pleje af mopsen</a></li>
<li><a href="Billedgalleri.php">Billedgalleri</a></li>
<li><a href="udstillinger.php">Udstillinger og resultater</a></li>
<li><a href="parringer.php">Parringer</a></li>
<li><a href="
http://www.mopsviggo.dk/mops_toppen/">Tilmeld din side til Mops Toppen</a></li>
<li><a href="blogs.php">Få en blog om din mops</a></li>
<li><a href="kontakt.php">Kontakt administrator</a></li>
</ul>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
<div id="indhold">
<!-- ok kode skal stå her -->
<?php
session_start();
if ( !empty( $_POST['kode'] ) && strtoupper( $_POST['kode'] ) == $_SESSION['captcha-code'] )
{
echo "<h1>Tak for din hendvendelse, jeg vender hurtigt tilbage til dig</h1>";// Koden brugeren tastede var korrekt, og du kan nu gemme hvad han har postet
}
else
{
echo "<p>Desværre, koden du skrev, var forkert. Prøv igen.</p>";
}
?>
</div>
</div>
<div id="footer">
<p align="center">Design af <a href="
http://soederberg-webdesign.dk">soederberg-webdesign</a> Copyright © Lone Søderberg</p>
</div>
<div align="center"></div>
</body>
</html>