Captcha in ein schon existierendes Script einfügen

IcomY

Grünschnabel
eventuell könnt ihr mir bei so einem ähnlichen Problem wie hier schon beschrieben helfen es geht auch um das captcha script welches ich in einen linkroboter einfügen wollte, das Script ist folgendes,

PHP:
<?php
// phpwww.de Linkroboter Version 2.0
// Copyright: Helmut Ambach, 2002
// http://www.phpwww.de
// Verbesserungsvorschläge bitte an:
// info@phpwww.de
// Danke!!
// Open Source Code

$DATEINAME = "links"; 
// Dateinamen festlegen (ohne Extension!)
// zur Eröffnung der Files:
// $DATEINAME.html und $DATEINAME.txt
// Durch Ändern der Variablen $DATEINAME sowie
// des Namens dieser Datei können Sie 
// auf sehr einfache Weise weitere Linklisten herstellen.

// *** Die eigentliche Linkroboterfunktion ***
function robot($dateiname) {
	global $URL, $TITEL, $BESCHREIBUNG, $SENT, $fehler;  // Globale Variablen deklarieren
	// Die Variablen des HTML Formulars gelten auch in der Roboter-Funktion.

	$URL = strip_tags(trim($URL));
	$TITEL = strip_tags(stripslashes(trim($TITEL)));
	$BESCHREIBUNG = strip_tags(stripslashes(trim($BESCHREIBUNG)));

	if(!$dateiname){$dateiname = "liste";}
	else {$dateiname = trim($dateiname);}
	$pfad = $dateiname.".html"; 		// HTML-Liste, durch Löschen des Files DATEINAME.html 
								// können Sie die Linkliste in den Ausgangszustand zurücksetzen.
	$urlpfad = $dateiname.".txt";		// Kontroll-Liste, Liste der bereits eingegebenen URLs.

	if(!file_exists($pfad)){touch($pfad); $fp=fopen($urlpfad,"w+"); fclose($fp);}
	if(!file_exists($urlpfad)){touch($urlpfad);}

	$liste = file($pfad); 				// Liest die HTML-Liste ein.
	$i = 0;
	while ($liste[$i] != "") {$liste[$i] = trim($liste[$i]); $i++;}

	$urlliste = file($urlpfad);			// Liest die Kontroll-Liste ein.
	$i = 0;
	while ($urlliste[$i] != "") {$urlliste[$i] = trim($urlliste[$i]); $i++;}

    if ($SENT == 'SENT'){
	  $sperre = in_array($URL,$urlliste);
	  if(strlen($TITEL) < 3) {$sperre = 1; $fehler = "Titel zu kurz!";}
      if(!@fopen($URL,"r")) {$sperre = 1; $fehler = "URL existiert nicht!";}
	  if(strlen($URL) < 13) {$sperre = 1; $fehler = "URL fehlerhaft!";}
      if(!ereg("^http://([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}",$URL))
        {$sperre = 1; $fehler = "URL fehlerhaft!";}
	  // Prüft, ob diese URL bereits eingegeben wurde oder fehlerhafte Angaben
      // gemacht wurden.
	  // Falls die eingegebene URL noch nicht in der Kontroll-Liste enthalten ist,
	  // wird der neue Link an erster Stelle eingefügt:

	  if (!$sperre)	{
		$neuezeile = "<a href='$URL'><b>$TITEL</b></a><br>$BESCHREIBUNG";
		array_unshift($liste,$neuezeile); 
		$schreiben = fopen($pfad,"w+");
		foreach ($liste as $zeile) {
			fputs($schreiben,$zeile."\n");
		}
		fclose($schreiben);
		$schreiben = fopen($urlpfad,"a");
		fputs($schreiben,$URL."\n");
		fclose($schreiben);
      }
      else if(empty($fehler))$fehler = "URL schon vorhanden oder gesperrt!";
	}
    return $liste;

} 	// ENDE der Funktion robot($DATEINAME)

$liste = robot($DATEINAME);
?>
<html>
<head>
	<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">

	<style>
	<!--
    p   {font-family:Arial,Helvetica; text-align: left; margin-top:6pt; margin-bottom: 0pt; color: #00007f}
	li  {font-family:Arial,Helvetica; font-size:12pt; line-height:15pt; text-align: left; margin-top:6pt; margin-bottom: 0pt; color: #00007f}

	A:link {COLOR: blue; TEXT-DECORATION: none}
	A:visited {COLOR: blue; TEXT-DECORATION: none}
	A:active {COLOR: orange; TEXT-DECORATION: none}
	A:hover {COLOR: red; TEXT-DECORATION: none}
	//-->	
	</style>

	<title>Linkroboter</title>
	<base target="_new">
	</head>

<body bgcolor=#CAD8FD>
		<p><font size="4">Link-Roboter:</font>
		<p>Hier k&ouml;nnen Sie interessante Links eintragen:</p>
        <p style='color:red;'><?php echo $fehler; ?>
<table>
<FORM name="Formular" action='<?php echo $PHP_SELF; ?>' target="_top" method="post">
	<TR>
		<TD width=30%><p>Titel der Seite:*</TD>
		<TD width=70%><INPUT maxLength="80" name="TITEL" size="48" value="<?php if(!empty($fehler)) echo $TITEL; ?>"></TD>
	</TR>
	<TR>
		<TD><p>URL der Seite:*</TD>
		<TD><INPUT maxLength="1024" name="URL" size="48" value="<?php if(!empty($fehler)) echo $URL; else echo "http://"; ?>"></TD>
	</TR>
	<TR>
		<TD><p>Beschreibung:*</TD>
		<TD><INPUT maxLength="1024" name="BESCHREIBUNG" size="48" value="<?php if(!empty($fehler)) echo $BESCHREIBUNG; ?>"></TD>
	</TR>
	<TR>
		<TD>	<input type='hidden' name="SENT" value="SENT">
				<input type='hidden' name="DATEINAME" value="<?php echo "$DATEINAME"; ?>">
		<TD><INPUT type='submit' value="Abschicken!" class="button">
	</TR>
</form>
</table>
		<p><font size="4">Aktuelle Links:</p>
		<ul>
<?php foreach ($liste as $zeile) {echo "<li>$zeile\n";} ?>
		</ul>
</body></html>

und das Sicherheitscript liegt hier erklärt aber wie schon gesagt ich raff das nicht! http://peuss.com/PHP/Captcha/
und das wollte ich auch sicher machen hatte es mal so das es eben mit Fehlermeldungen funktionierte aber das war's auch schon!
 
Zuletzt bearbeitet:
Evtl kann man helfen, wenn du mitteilst, was das Problem ist, bzw. wie es sich äußert. Was funktioniert und was nicht? Geb mal ein bisschen mehr Infos. Für eine Analyse des Quellcodes hat wohl keiner Lust, wenn er nicht weiß, was nicht funktioniert.
 
Evtl kann man helfen, wenn du mitteilst, was das Problem ist, bzw. wie es sich äußert. Was funktioniert und was nicht? Geb mal ein bisschen mehr Infos. Für eine Analyse des Quellcodes hat wohl keiner Lust, wenn er nicht weiß, was nicht funktioniert.
ich habe das script wieder durch das Original ersatz,

ich habe das Problem mit der if Else

zum Beispiel hier
---------
wo mach ich das rein
<!-- Code für CAPTCHA-Bild -->
<?
if(!@include "http://www.formular-generator.de/captcha/formular.php?captcha_code=$code&v=ks2") {
?>
<p>Code: <?=$code?></p>
<?
}
?>
<!-- Ende: Code für CAPTCHA-Bild -->
-------------------------
dann dass
------------
<!-- Code für CAPTCHA-Eingabefeld -->
<input type="text" name="captcha_code" size="4" />
<!-- Ende: Code für CAPTCHA-Eingabefeld -->
-------------------
und das schwerste
----------------------
<?
/*
Hier k?nnen Sie sehen, wie man die Variable $captchaValidierungOk abfragt.
Die Variable hat entweder den Wert 'true', falls der Code korrekt
eingegeben wurde, sonst 'false'.
*/
if($captchaValidierungOk) {
?>
<p>Der Sicherheitscode wurde korrekt eingegeben.</p>
<?
} else {
?>
<p>Der Sicherheitscode wurde nicht korrekt eingegeben.</p>
<?
}
?>
-------------------------
ich werde nämlich zugespamt das es nicht mehr schön ist
würde mich um jede Hilfe freuen!
 
Also, den include()-Befehl solltest du zu Beginn des Scripts einbauen, in dem der Code für das Captcha eingebunden werden soll. Also sprich, in das Formular, in dem das Element eingebaut werden soll (Login-, User-Add-, Passwort-Retrieval, oder wo auch immer du das haben willst).

Wobei der erste Teil das Bild selbst zu sein scheint und der Teil mit dem <input type....> (zweiter Teil) kommt als eigentliches Formular-Element rein.

Der dritte Teil kommt in das Script mit der Logik, die ausgeführt wird, wenn das Formular abgesendet wurde.

Da du keine Angaben gemacht hast, wie deine Website aufgebaut ist, evtl. was du für ein CMS verwendest, kann ich dir keine präziseren Angaben machen.
 
Also, den include()-Befehl solltest du zu Beginn des Scripts einbauen, in dem der Code für das Captcha eingebunden werden soll. Also sprich, in das Formular, in dem das Element eingebaut werden soll (Login-, User-Add-, Passwort-Retrieval, oder wo auch immer du das haben willst).

Wobei der erste Teil das Bild selbst zu sein scheint und der Teil mit dem <input type....> (zweiter Teil) kommt als eigentliches Formular-Element rein.

Der dritte Teil kommt in das Script mit der Logik, die ausgeführt wird, wenn das Formular abgesendet wurde.

Da du keine Angaben gemacht hast, wie deine Website aufgebaut ist, evtl. was du für ein CMS verwendest, kann ich dir keine präziseren Angaben machen.

das Script ist zu oberst gepostet, und das Link ist http://www.worldtown.de/linkliste/linkroboter.php
 
PHP:
<?php
// phpwww.de Linkroboter Version 2.0
// Copyright: Helmut Ambach, 2002
// http://www.phpwww.de
// Verbesserungsvorschläge bitte an:
// info@phpwww.de
// Danke!!
// Open Source Code

$DATEINAME = "links"; 
// Dateinamen festlegen (ohne Extension!)
// zur Eröffnung der Files:
// $DATEINAME.html und $DATEINAME.txt
// Durch Ändern der Variablen $DATEINAME sowie
// des Namens dieser Datei können Sie 
// auf sehr einfache Weise weitere Linklisten herstellen.

// *** Die eigentliche Linkroboterfunktion ***
function robot($dateiname) {
    global $URL, $TITEL, $BESCHREIBUNG, $SENT, $fehler;  // Globale Variablen deklarieren
    // Die Variablen des HTML Formulars gelten auch in der Roboter-Funktion.

    $URL = strip_tags(trim($URL));
    $TITEL = strip_tags(stripslashes(trim($TITEL)));
    $BESCHREIBUNG = strip_tags(stripslashes(trim($BESCHREIBUNG)));

    if(!$dateiname){$dateiname = "liste";}
    else {$dateiname = trim($dateiname);}
    $pfad = $dateiname.".html";         // HTML-Liste, durch Löschen des Files DATEINAME.html 
                                // können Sie die Linkliste in den Ausgangszustand zurücksetzen.
    $urlpfad = $dateiname.".txt";        // Kontroll-Liste, Liste der bereits eingegebenen URLs.

    if(!file_exists($pfad)){touch($pfad); $fp=fopen($urlpfad,"w+"); fclose($fp);}
    if(!file_exists($urlpfad)){touch($urlpfad);}

    $liste = file($pfad);                 // Liest die HTML-Liste ein.
    $i = 0;
    while ($liste[$i] != "") {$liste[$i] = trim($liste[$i]); $i++;}

    $urlliste = file($urlpfad);            // Liest die Kontroll-Liste ein.
    $i = 0;
    while ($urlliste[$i] != "") {$urlliste[$i] = trim($urlliste[$i]); $i++;}

    if ($SENT == 'SENT'){
      $sperre = in_array($URL,$urlliste);
      if(strlen($TITEL) < 3) {$sperre = 1; $fehler = "Titel zu kurz!";}
      if(!@fopen($URL,"r")) {$sperre = 1; $fehler = "URL existiert nicht!";}
      if(strlen($URL) < 13) {$sperre = 1; $fehler = "URL fehlerhaft!";}
      if(!ereg("^http://([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}",$URL))
        {$sperre = 1; $fehler = "URL fehlerhaft!";}
      /** Hier die Prüfung auf die korrekte Eingabe des Captcha-Codes. **/
      if(!$captchaValidierungOk) {
          $sperre = 1;
          $fehler = "Code falsch!";
      }

      // Prüft, ob diese URL bereits eingegeben wurde oder fehlerhafte Angaben
      // gemacht wurden.
      // Falls die eingegebene URL noch nicht in der Kontroll-Liste enthalten ist,
      // wird der neue Link an erster Stelle eingefügt:

      if (!$sperre)    {
        $neuezeile = "<a href='$URL'><b>$TITEL</b></a><br>$BESCHREIBUNG";
        array_unshift($liste,$neuezeile); 
        $schreiben = fopen($pfad,"w+");
        foreach ($liste as $zeile) {
            fputs($schreiben,$zeile."\n");
        }
        fclose($schreiben);
        $schreiben = fopen($urlpfad,"a");
        fputs($schreiben,$URL."\n");
        fclose($schreiben);
      }
      else if(empty($fehler))$fehler = "URL schon vorhanden oder gesperrt!";
    }
    return $liste;

}     // ENDE der Funktion robot($DATEINAME)

$liste = robot($DATEINAME);
?>
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">

    <style>
    <!--
    p   {font-family:Arial,Helvetica; text-align: left; margin-top:6pt; margin-bottom: 0pt; color: #00007f}
    li  {font-family:Arial,Helvetica; font-size:12pt; line-height:15pt; text-align: left; margin-top:6pt; margin-bottom: 0pt; color: #00007f}

    A:link {COLOR: blue; TEXT-DECORATION: none}
    A:visited {COLOR: blue; TEXT-DECORATION: none}
    A:active {COLOR: orange; TEXT-DECORATION: none}
    A:hover {COLOR: red; TEXT-DECORATION: none}
    //-->    
    </style>

    <title>Linkroboter</title>
    <base target="_new">
    </head>

<body bgcolor=#CAD8FD>
        <p><font size="4">Link-Roboter:</font>
        <p>Hier k&ouml;nnen Sie interessante Links eintragen:</p>
        <p style='color:red;'><?php echo $fehler; ?>
<table>
<FORM name="Formular" action='<?php echo $PHP_SELF; ?>' target="_top" method="post">
    <TR>
        <TD width=30%><p>Titel der Seite:*</TD>
        <TD width=70%><INPUT maxLength="80" name="TITEL" size="48" value="<?php if(!empty($fehler)) echo $TITEL; ?>"></TD>
    </TR>
    <TR>
        <TD><p>URL der Seite:*</TD>
        <TD><INPUT maxLength="1024" name="URL" size="48" value="<?php if(!empty($fehler)) echo $URL; else echo "http://"; ?>"></TD>
    </TR>
    <TR>
        <TD><p>Beschreibung:*</TD>
        <TD><INPUT maxLength="1024" name="BESCHREIBUNG" size="48" value="<?php if(!empty($fehler)) echo $BESCHREIBUNG; ?>"></TD>
    </TR>
    <tr>
        <td><!--    Code für CAPTCHA-Bild    -->
<?
if(!@include "http://www.formular-generator.de/captcha/formular.php?captcha_code=$code&v=ks2") {
?>
<p>Code: <?=$code?></p>
<?
}
?>
<!-- Ende: Code für CAPTCHA-Bild --></td>
                   <td><!-- Code für CAPTCHA-Eingabefeld -->
<input type="text" name="captcha_code" size="4" />
<!-- Ende: Code für CAPTCHA-Eingabefeld --></td>
    </tr>
    <TR>
        <TD>    <input type='hidden' name="SENT" value="SENT">
                <input type='hidden' name="DATEINAME" value="<?php echo "$DATEINAME"; ?>">
        <TD><INPUT type='submit' value="Abschicken!" class="button">
    </TR>
</form>
</table>
        <p><font size="4">Aktuelle Links:</p>
        <ul>
<?php foreach ($liste as $zeile) {echo "<li>$zeile\n";} ?>
        </ul>
</body></html>

Achja, vergessen: Den Code $code musst du natürlich vorher noch mit sinnvollen Werten füllen und in eine Session schreiben. Außerdem eine Validierungsfunktion, die $captchaValidierungOk entsprechend setzt.
 
Zuletzt bearbeitet:
habs versucht aber geht irgendwie nicht ... aber kommen erst mal keine Fehlermeldungen und es lassen sich noch keine links eintragen, kannst es ja mal anschauen !
 
Achja, vergessen: Den Code $code musst du natürlich vorher noch mit sinnvollen Werten füllen und in eine Session schreiben. Außerdem eine Validierungsfunktion, die $captchaValidierungOk entsprechend setzt.

habs versucht aber geht irgendwie nicht denke es liegt sperre

da der ausschnitt
Code:
 if(!$captchaValidierungOk) {
          $sperre = 1;
          $fehler = "Code falsch!" ;
           }  else  { $sperre = 0;  $fehler = "Code oK" ;  
           }
 

Neue Beiträge

Zurück