• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Captchacode in bestehenden Script einbauen

aJunkie

Mitglied
Wie kann ich folgendes auf dieser Seite hier in folgendes Script einbauen?

PHP:
<?PHP
//KONFIGURATION

//MySQL-Einstellungen:
***

//Weitere Einstellungen:
$smilies = 1;
$pass = "";
$width = 730;
$break = 100;
$spamm = 60;
$limit = 20;

//Design-Einstellungen:
$align = "center";
$css1 = "border-width:1px; border-style:solid; border-color:#6DBFFB; background-color:#ffffff; color:#000000; font-family: OCR A Extended; ";
$fontsize = "12px";
$fieldlength = 60;
$maxheight = "400px";

$tabelle = "fehler";    //MySql-Tabelle in der die Daten gespeichert werden
$picpf = "/smilies";   //Pfad zum Verzeichnis, das die Smilies enthält


function smilies(&$text){
global $picpf;
$text = str_replace(":)", "<img src=\"".$picpf."/1.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":D", "<img src=\"".$picpf."/2.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace("8)", "<img src=\"".$picpf."/3.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":eek:", "<img src=\"".$picpf."/4.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":p", "<img src=\"".$picpf."/5.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":(", "<img src=\"".$picpf."/6.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":x", "<img src=\"".$picpf."/7.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":oX:", "<img src=\"".$picpf."/8.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":roll", "<img src=\"".$picpf."/9.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(";)", "<img src=\"".$picpf."/10.gif\" alt=\"Smilie\" border=\"0\" />", $text);

return $text;
}

$db = @mysql_connect($host, $user, $passw)
or die ("Verbindungsaufnahme mit der MySQL-Server war <b>nicht</b> erfolgreich!<br />Bitte gehen Sie nochmals zurück.<br />Sollte weiterhin keine Verbindung zum MySQL-Server zu Stande kommen wenden Sie sich an den technischen Ansprechparnter");
@mysql_select_db($database, $db)
or die ("Verbindungsaufnahme mit Datenbank war <b>nicht</b> erfolgreich!<br />Bitte gehen Sie nochmals zurück.<br />Sollte weiterhin keine Verbindung zur MySQL-Datenbank zu Stande kommen wenden Sie sich an den technischen Ansprechparnter");
//Connect!!ED!! to MySQL-DB

$result = mysql_list_tables($database,$db);
$menge = mysql_num_rows($result);

for($x = 0; $x < $menge; $x++)
    {
    if(mysql_tablename($result, $x) == $tabelle) $check = 1;
    }

if(!isset($check) OR isset($check) && $check != 1)
    {
    $install_query = "CREATE TABLE ".$tabelle." (
    `id` int(10) NOT NULL auto_increment,
    `username` varchar(50) NOT NULL default '',
    `nachricht` text NOT NULL default '',
    `time` int(20) NOT NULL default '0',
    `ip` varchar(20) default NULL,
    `uid` varchar(32) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1;";

    if(mysql_query($install_query)) echo "MySQL-Tabelle '".$tabelle."' wurde erfolgreich angelegt";
    else echo "Beim Anlegen der MySQL-Tabelle '".$tabelle."' trat ein Fehler auf. Die Tabelle konnte nicht angelegt werden";
    }

//Eintragen von neuen Posts
if(isset($_POST['send']) && $_POST['send'] == 1 && isset($_POST['post']) && !empty($_POST['post']) && isset($_POST['name']) && !empty($_POST['name']) && $_POST['name'] != "Name")
    {
    //Überprüfung der Spammtime & IP & UID
    $aktime = time()-$spamm;
    $checkentry = mysql_query("SELECT * FROM ".$tabelle." WHERE uid='".addslashes($_POST['uid'])."' OR time>='".$aktime."' AND ip='".addslashes($_SERVER['REMOTE_ADDR'])."'");
    $checkentry2 = mysql_num_rows($checkentry);
    if($checkentry2 < 1)
        {
        $sql_insert = "INSERT INTO ".$tabelle." (username,nachricht,time,ip,uid) VALUES ('".addslashes($_POST['name'])."', '".addslashes($_POST['post'])."', '".time()."', '".$_SERVER['REMOTE_ADDR']."', '".addslashes($_POST['uid'])."')";
        $result = mysql_query($sql_insert, $db);
        }
    else    
        {
        $spammtime = 1;
        }
    }

<!--Ausgabe der Beiträge-->
<form name="shoutbox" action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="<?PHP echo $width; ?>" align="<?PHP echo $align; ?>" style="border-width:0px; border-style:solid; border-color:#6DBFFB; font-color:#000000">

    <tr>
        <td style="font-size:<?PHP echo $fontsize; ?>;<?PHP echo $css1; ?>" colspan="4">
            <div style="width:<?PHP echo $width; ?>px; height:<?PHP echo $maxheight; ?>; overflow:auto;">
            <?PHP
            //Ausgabe der Meldung, wenn die Spamtime noch nicht abgelaufen ist:
            if(isset($spammtime))
                {
                echo "<b>Du hast bereits vor zu kurzer Zeit einen Beitrag geschrieben! Bitte warte einen Moment (1 min).</b><br /><br />";
                }

            $posts = mysql_query($postquery);
            while($rowp = mysql_fetch_array($posts))
                {
                $datum = date("d.n - G:i",$rowp['time']);

                $string = stripslashes($rowp['nachricht']);
                $string = wordwrap($string , $break , "<br />" , 1);
                $string = preg_replace('"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i','\\1<a href="http://\2" target="_blank">\\2</a>', $string);
                if($smilies == 1) $string = smilies($string);

                $nbreak = wordwrap($rowp['username'] , $break , "-<br />" , 1);

                echo "<a href=\"".$_SERVER['PHP_SELF']."?action=del&amp;id=".$rowp['id']."\" style=\"color:red; text-decoration:none; font-size:9px;\">x</a> ";
                echo "<span style=\"color:#303030; font-size:11px; font-family: OCR A Extended; \">".$datum."</span><br><b>".$nbreak.":</b><br />".$string."<br /><hr>";
                }
            ?>
            </div>
        </td>
    </tr>
<!--ENDE: Ausgabe der Beiträge-->

<!--Ausgabe des Formulars-->
    <tr>
        <td align="left" width="25%" style="font-size:1;"><?PHP if($_GET['site'] > 1){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=1\"><b>&laquo; 1</b></a>"; }else{ echo "&nbsp;"; } ?></td>
        <td align="center" width="25%" style="font-size:1;">&nbsp;<?PHP if($zl > 0){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$zl."\"><b>&lt; ".$zl."</b></a>"; } ?></td>
        <td align="center" width="25%" style="font-size:1;"><?PHP if(isset($vl) && $vl <= $maxsites){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$vl."\"><b>".$vl." &gt;</b></a>"; } ?>&nbsp;</td>
        <td align="right" width="25%" style="font-size:1;"><?PHP if(isset($_GET['site']) && $_GET['site'] < $maxsites OR $vl == 2){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$maxsites."\"><b>".$maxsites." &raquo;</b></a>"; }else{ echo "&nbsp;"; } ?></td>
    </tr>
    <tr>
    <td><strong>Name:</strong></td>
        <td style="<?PHP echo $css1; ?>" colspan="2">
            <input type="text" name="name" size="<?PHP echo $fieldlength; ?>" style="font-size:<?PHP echo $fontsize; ?>; border: 0px; background-color:#ffffff; color:#000000;" />
        </td>
    </tr>
    <tr>
    <td><strong>Nachricht:</strong></td>
        <td style="<?PHP echo $css1; ?>" colspan="2">
            <textarea name="post" cols="50" rows="4" style="font-size:<?PHP echo $fontsize; ?>; border: 0px; background-color:#ffffff; color:#000000;"></textarea>
        </td>
    </tr>
<?PHP if($smilies == 1){ ?>
<script type="text/javascript">
function smilie(text)
{
eval("document.shoutbox.post.value += \""+text+"\"");
}
</script>
    <tr>
        <td align="center" colspan="4">
            <a href="#" onclick="javascript:smilie(' :) ');"><img src="<?PHP echo $picpf; ?>/1.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' :D ');"><img src="<?PHP echo $picpf; ?>/2.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' 8) ');"><img src="<?PHP echo $picpf; ?>/3.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' :eek: ');"><img src="<?PHP echo $picpf; ?>/4.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' :p ');"><img src="<?PHP echo $picpf; ?>/5.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' :( ');"><img src="<?PHP echo $picpf; ?>/6.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' :x ');"><img src="<?PHP echo $picpf; ?>/7.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' :oX: ');"><img src="<?PHP echo $picpf; ?>/8.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' :roll ');"><img src="<?PHP echo $picpf; ?>/9.gif" alt="Smilie" border="0" /></a>
            <a href="#" onclick="javascript:smilie(' ;) ');"><img src="<?PHP echo $picpf; ?>/10.gif" alt="Smilie" border="0" /></a>
        </td>
    </tr>
<?PHP } ?>
    <tr>
        <td align="center" colspan="4">
            <input type="submit" value="Abschicken" style="font-size:13px; font-weight:bold;border: 0px; background-color: #000000; color: #ffffff;" />
            <input type="hidden" name="send" value="1" />
            <?PHP
            mt_srand((double)microtime() * 1000000);
            $uidzufall = mt_rand(1,9999);
            ?>
            <input type="hidden" name="uid" value="<? echo md5($_SERVER['REMOTE_ADDR'].time().$uidzufall); ?>" />
        </td>
    </tr>

</table>
</form>
?>
Wie man sehen kann, handelt es sich um eine Shoutbox, die leider noch keinen Spamschutz hat.

Den Script habe ich stark kürzen müssen, da es zu viele Zeichen waren.
 
Hallo also einmal musst du ein neues input einfügen für dein Captcha und das captcha einbinden..

und der PHP Code kommt dann bei

//Eintragen von neuen Posts
hin

Also sprich:

PHP:
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

Auserdem musst du noch an den Anfang nach <?php session_start(); schreiben ;-)
 
Mein Script sieht zurzeit so aus, aber der Fehler ist dann immer:
PHP:
Parse error:  syntax error, unexpected $end in /var/www/web1190/html/shout1.php on line 237
Zeile 237 ist dann bei mir der letzte, wo PHP zugemacht wird.

PHP:
<?PHP session_start();
//Copright

$host = "localhost";
$database = ""; 
$user = "";
$passw = ""; 

$smilies = 1;
$pass = "";
$width = 730;
$break = 100;
$spamm = 60;
$limit = 20;  

//Design-Einstellungen:
// ***

$tabelle = "fehler"; 
$picpf = "/smilies"; 


//Funktion zum Ersetzen der Smilie-Codes
function smilies(&$text){
global $picpf;
$text = str_replace(":)", "<img src=\"".$picpf."/1.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":D", "<img src=\"".$picpf."/2.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace("8)", "<img src=\"".$picpf."/3.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":eek:", "<img src=\"".$picpf."/4.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":p", "<img src=\"".$picpf."/5.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":(", "<img src=\"".$picpf."/6.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":x", "<img src=\"".$picpf."/7.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":oX:", "<img src=\"".$picpf."/8.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(":roll", "<img src=\"".$picpf."/9.gif\" alt=\"Smilie\" border=\"0\" />", $text);
$text = str_replace(";)", "<img src=\"".$picpf."/10.gif\" alt=\"Smilie\" border=\"0\" />", $text);

return $text;
}

//Connect to MySQL-DB
$db = @mysql_connect($host, $user, $passw)
or die ("Verbindungsaufnahme mit der MySQL-Server war <b>nicht</b> erfolgreich!<br />Bitte gehen Sie nochmals zurück.<br />Sollte weiterhin keine Verbindung zum MySQL-Server zu Stande kommen wenden Sie sich an den technischen Ansprechparnter");
@mysql_select_db($database, $db)
or die ("Verbindungsaufnahme mit Datenbank war <b>nicht</b> erfolgreich!<br />Bitte gehen Sie nochmals zurück.<br />Sollte weiterhin keine Verbindung zur MySQL-Datenbank zu Stande kommen wenden Sie sich an den technischen Ansprechparnter");
//Connect!!ED!! to MySQL-DB

$result = mysql_list_tables($database,$db);
$menge = mysql_num_rows($result);

for($x = 0; $x < $menge; $x++)
    {
    if(mysql_tablename($result, $x) == $tabelle) $check = 1;
    }

if(!isset($check) OR isset($check) && $check != 1)
    {
    $install_query = "CREATE TABLE ".$tabelle." (
    `id` int(10) NOT NULL auto_increment,
    `username` varchar(50) NOT NULL default '',
    `nachricht` text NOT NULL default '',
    `time` int(20) NOT NULL default '0',
    `ip` varchar(20) default NULL,
    `uid` varchar(32) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1;";

    if(mysql_query($install_query)) echo "MySQL-Tabelle '".$tabelle."' wurde erfolgreich angelegt";
    else echo "Beim Anlegen der MySQL-Tabelle '".$tabelle."' trat ein Fehler auf. Die Tabelle konnte nicht angelegt werden";
    }


if(isset($_GET['action']) && $_GET['action'] == "del")
    {
    echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\"><p align=\"center\">";
    echo "<b>Passwort:</b><br />";
    echo "<input type=\"hidden\" name=\"action\" value=\"admindel\" /><input type=\"hidden\" name=\"id\" value=\"".$_GET['id']."\" />";
    echo "<input type=\"password\" name=\"passfeld\" size=\"20\" /><br /><input type=\"submit\" value=\"Löschen\" />";
    echo "</p></form>";
    }

if(isset($_POST['action']) && $_POST['action'] == "admindel" && $_POST['passfeld'] == $pass)
    {
    mysql_query("DELETE FROM ".$tabelle." WHERE id='".addslashes($_POST['id'])."'");
    }

//Eintragen von neuen Posts
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);  
if(isset($_POST['send']) && $_POST['send'] == 1 && isset($_POST['post']) && !empty($_POST['post']) && isset($_POST['name']) && !empty($_POST['name']) && $_POST['name'] != "Name")
    {

    $aktime = time()-$spamm;
    $checkentry = mysql_query("SELECT * FROM ".$tabelle." WHERE uid='".addslashes($_POST['uid'])."' OR time>='".$aktime."' AND ip='".addslashes($_SERVER['REMOTE_ADDR'])."'");
    $checkentry2 = mysql_num_rows($checkentry);
    if($checkentry2 < 1)
        {
        $sql_insert = "INSERT INTO ".$tabelle." (username,nachricht,time,ip,uid) VALUES ('".addslashes($_POST['name'])."', '".addslashes($_POST['post'])."', '".time()."', '".$_SERVER['REMOTE_ADDR']."', '".addslashes($_POST['uid'])."')";
        $result = mysql_query($sql_insert, $db);
        }
    else    
        {
        $spammtime = 1;
        }
    }

$mengequery = mysql_query("SELECT * FROM ".$tabelle."");
$menge = mysql_num_rows($mengequery);
$maxsites = ceil($menge/$limit);

if(isset($_GET['site']) && $_GET['site'] != "" && $_GET['site'] != 0)
    {
    $l1 = $_GET['site']*$limit;
    $l1 = $l1-$limit;
    $mysqllimit = " LIMIT ".$l1.",".$limit."";

    if($_GET['site'] > 1){ $zl = $_GET['site']-1; }
    if($_GET['site'] < $maxsites){ $vl = $_GET['site']+1; }
    }
else
    {
    $mysqllimit = " LIMIT ".$limit."";

    $zl = 0;
    if($menge > $limit){ $vl = 2; }
    }
$postquery = "SELECT * FROM ".$tabelle." ORDER BY time DESC".$mysqllimit."";
?>

<form name="shoutbox" action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="<?PHP echo $width; ?>" align="<?PHP echo $align; ?>" style="border-width:0px; border-style:solid; border-color:#6DBFFB; font-color:#000000">

    <tr>
        <td style="font-size:<?PHP echo $fontsize; ?>;" colspan="4">
            <div style="width:<?PHP echo $width; ?>px; overflow:auto;">
            <?PHP
            //Ausgabe der Meldung, wenn die Spamtime noch nicht abgelaufen ist:
            if(isset($spammtime))
                {
                echo "<b>TEXT</b><br /><br />";
                }

            $posts = mysql_query($postquery);
            while($rowp = mysql_fetch_array($posts))
                {
                $datum = date("d.n - G:i",$rowp['time']);

                $string = stripslashes($rowp['nachricht']);
                $string = wordwrap($string , $break , "<br />" , 1);
                $string = preg_replace('"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i','\\1<a href="http://\2" target="_blank">\\2</a>', $string);
                if($smilies == 1) $string = smilies($string);

                $nbreak = wordwrap($rowp['username'] , $break , "-<br />" , 1);

                echo "<a href=\"".$_SERVER['PHP_SELF']."?action=del&amp;id=".$rowp['id']."\" style=\"color:red; text-decoration:none; font-size:9px;\">x</a> ";
                echo "<span style=\"color:#303030; font-size:11px; font-family: OCR A Extended; \">".$datum."</span><br><b>".$nbreak.":</b><br />".$string."<br /><hr>";
                }
            ?>
            </div>
        </td>
    </tr>
<!--ENDE: Ausgabe der Beiträge-->

<!--Ausgabe des Formulars-->
    <tr>
        <td align="left" width="25%" style="font-size:1;"><?PHP if($_GET['site'] > 1){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=1\"><b>&laquo; 1</b></a>"; }else{ echo "&nbsp;"; } ?></td>
        <td align="center" width="25%" style="font-size:1;">&nbsp;<?PHP if($zl > 0){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$zl."\"><b>&lt; ".$zl."</b></a>"; } ?></td>
        <td align="center" width="25%" style="font-size:1;"><?PHP if(isset($vl) && $vl <= $maxsites){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$vl."\"><b>".$vl." &gt;</b></a>"; } ?>&nbsp;</td>
        <td align="right" width="25%" style="font-size:1;"><?PHP if(isset($_GET['site']) && $_GET['site'] < $maxsites OR $vl == 2){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$maxsites."\"><b>".$maxsites." &raquo;</b></a>"; }else{ echo "&nbsp;"; } ?></td>
    </tr>
    <tr>
    <td><strong>Name:</strong></td>
        <td style="<?PHP echo $css1; ?>" colspan="2">
            <input type="text" name="name" size="<?PHP echo $fieldlength; ?>" style="font-size:<?PHP echo $fontsize; ?>; border: 0px; background-color:#ffffff; color:#000000;" />
        </td>
    </tr>
    <tr>
    <td><strong>Nachricht:</strong></td>
        <td style="<?PHP echo $css1; ?>" colspan="2">
            <textarea name="post" cols="50" rows="4" style="font-size:<?PHP echo $fontsize; ?>; border: 0px; background-color:#ffffff; color:#000000;"></textarea>
        </td>
    </tr>
<?PHP if($smilies == 1){ ?>
<script type="text/javascript">
function smilie(text)
{
eval("document.shoutbox.post.value += \""+text+"\"");
}
</script>
    <tr>
        <td align="center" colspan="4">
***gekürzt***
        </td>
    </tr>
<?PHP } ?>
    <tr>
        <td align="center" colspan="4">
            <input type="submit" value="Abschicken" style="font-size:13px; font-weight:bold;border: 0px; background-color: #000000; color: #ffffff;" />
            <input type="hidden" name="send" value="1" />
            <?PHP
            mt_srand((double)microtime() * 1000000);
            $uidzufall = mt_rand(1,9999);
            ?>
            <input type="hidden" name="uid" value="<? echo md5($_SERVER['REMOTE_ADDR'].time().$uidzufall); ?>" />
        </td>
    </tr>

</table>
</form>

<?PHP
//Copyright
?>
 
mit dem dannach hab ich gemeint das nach deinem <?php dann direkt session_start(); kommt..
Der Fehler ist ein Klammerfehler du hast irgentwo eine Klammer aufgemacht und nicht mehr zugemacht..
Kanns mir jetzt nicht näher anschauen aber ich denke du hast die if vom Captcha nicht wieder zu gemacht verbind am besten einfach die 2 if abfragen ;-)
 
Ich werd verrückt.
Ich find den Übeltäter nicht.

Ich weiß auch gar nicht, ob ich es in der richtigen Reihenfolge geschrieben habe.
Blutiger Anfänger. Sorry.

Edit: Hat sich erledigt.
 
Zuletzt bearbeitet:
Zurück
Oben