2 Codeschnipsel mit 1 Code verbinden

G

greendog

Hi!

Ich möchte diesen Code

Code:
<?php
$count = "./count.txt";
$pass = "./pass.txt";
$steps = 2000;

require_once("./iplock.php");
$check = new ip_check();

$cc = explode("|", file_get_contents($count));

if($check->ip_pruefen()) {
    $fp = fopen($count, "w");
    $cc[0]++;
    echo $cc[0]."<br/>";
    if($cc[0] == $cc[1]) {
        $password = md5(microtime());
        echo "Gl&uuml;ckwunsch, Sie sind der ".$cc[0].". Besucher!<br/>Bitte melden Sie sich mit diesem Passwort per Mail an: bla@bla.bla<br/>
                Pass: ".$password;
        $cc[1] = $cc[1] + $steps;
        $rc = fopen($pass, "a");
        $entry = $_SERVER['REMOTE_ADDR']."|".$cc[0]."|".date('l, d. F Y')."|".$password;
        if(!fwrite($rc, $entry)) echo "Error while writing Password File!";
    } else echo $cc[1] - $cc[0]." Hits bis zum n&auml;chsten Hit!";
    $cont = $cc[0]."|".$cc[1];
    if(!fwrite($fp, $cont)) {
        echo "Error while Updating Counter.";
    }
} else {
    echo $cc[0]."<br/>";
    echo $cc[1] - $cc[0]." Hits bis zum n&auml;chsten Hit!";
} 
?>

mit folgenden Codes verbinden.
1) Soll der User ein Captcha eingeben (Bestätigunsbildchen)
Sollte das richtig sein, sollte noch eine
2) Cookie Sperre eingebaut sein, die für 4 Stunden gültig erst...
wenn der Cookie nicht vorhanden ist und das Captcha richtig ist, erst dann soll das oben geannte Script ausgeführt werden.

Hier mal die 2 Codesschnipsel die mit dem oben genanten Script zusammen kommen sollen.

Code für CookieSet (4 Stunden gültig)
Code:
<?php
session_set_cookie_params(14400);
session_start();
?>

Anwendung (in Zusammenhang mit einem einfachen Counter
Code:
<?php
$datei = fopen("counter.txt","r+");
$counterstand = fgets($datei, 10);

if($counterstand == "")
   {
   $counterstand = 0;
   }

if(!session_is_registered('counter_ip'))
   {
   $counterstand++;
   rewind($datei);
   fwrite($datei, $counterstand);
   session_register('counter_ip');
   }

echo $counterstand;
fclose($datei);
?>

Code für Verify Images
MySQL Eintrag
Code:
CREATE TABLE `img` (
`code` char(3) NOT NULL default '',
`verify` varchar(6) NOT NULL default ''
) TYPE=MyISAM;

config.php
Code:
<?
$host = "localhost"; // MySQL-Host eintragen
$user = "root"; // MySQL-Benuztername eintragen
$pass = ""; // MySQL-Passwort eintragen
$database = "data"; // MySQL-Datenbank eintragen

$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
?>

Ausgabe der Bilder
Code:
<?
include("config.php");
function random_string($chars = 6)
{
  $s = uniqid(mt_rand(), true);
  $s = sha1($s);
  $s = substr($s, mt_rand(0, 40-$chars), $chars);
  return $s;
}
$verify = random_string(6);
$zahl = rand(1,9).rand(1,9).rand(1,9);
mysql_query("INSERT INTO `img` VALUES ('$zahl','$verify')");

print '

<img src="rand.php?a='.$verify.'" border="0" alt="Bitte abtippen!">
<input type="text" name="code" />
<input type="hidden" name="verify" value="'.$verify.'" />
';
?>

rand.php
Code:
<?
$a = $_GET['a'];
include("config.php");

$s = mysql_query("SELECT * FROM `img` WHERE `verify` = '$a'");
$code = mysql_fetch_assoc($s);

$zahl = $code['code'];

header("Content-type: image/png");
$image = imagecreate(70, 25);
$red = imagecolorallocate($image, 255,0,0);
$blue = imagecolorallocate($image, 0,0,255);
$green = imagecolorallocate($image, 0,255,0);
imageline($image, 0, 0, 70, 25, $green);
imageline($image, 70, 0, 0, 25, $blue);
imageline($image, 70, 12, 0, 12, $green);
imagestring($image, 10, 22, 5, "$zahl", $blue);
imagepng($image);
?>

Prüfung ob Verify Code richtig
Code:
<?
include("config.php");
$code = $_POST['code'];
$verify = $_POST['verify'];

$s = mysql_query("SELECT * FROM `img` WHERE `verify` = '$verify'");
$fetch = mysql_fetch_assoc($s);

If ($fetch['code'] != $code) {
print("Sie haben den Sicherheitscode falsch abgetippt!");
mysql_query("DELETE FROM `img` WHERE `verify` = '$verify'");
die("");
} Else {
mysql_query("DELETE FROM `img` WHERE `verify` = '$verify'");
}
?>

Hoffe das hilft dir ein bisschen :)

Vielen Dank! Ich hoffe das es für Profis, und davon gibt es hier ja viele ;) , kein problem ist, dass kostenlos zu machen... wäre toll da ich nur Schüler bin :-/
Danke im Voraus
 
Zurück