+ Antworten
Ergebnis 1 bis 11 von 11

Thema: Captcha

  1. #1
    TP-Supporter TP-Sponsor emiglio macht sich hier sehr viel Mühe Avatar von emiglio
    Registriert seit
    Sep 2002
    Ort
    Schaffhausen/Schweiz
    Beiträge
    344

    Captcha

    Salve Tutti
    Ich habe schon des Öfteren von Captchas Gebrauch gemacht, dies jedoch nur zum Versenden von Formular-Inhalten via Email. Jetzt wollte ich es mal mit einem Gästebuch-Eintragsformular, das die Daten in eine MySql-DB schreibt, probieren. Doch ich scheitere immer wieder wenn es im Manual heisst z.B.: Tragen Sie die Emailadresse ein oder Geben Sie den Pfad zum Mail-Script an.
    Bevor ich hier Quellcode poste: Weiss jemand ein Script oder eine Anleitung wie ich ein Captcha in ein Formular einbaue das die Daten NICHT per Email verschickt sondern diese in eine Datenbank einträgt.

  2. #2
    TP-Junior bluefanu macht alles soweit korrekt
    Registriert seit
    May 2007
    Ort
    Harburg
    Beiträge
    29
    Hallo

    Statt mail() einfach INSERT INTO

  3. #3
    TP-Specialist jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE jayjay ist ein richtiges Arbeitstier - DANKE Avatar von jayjay
    Registriert seit
    May 2003
    Ort
    krefeld
    Beiträge
    3.631
    captcha ist doch nur eine überprüfung ob input-feld gleich mit grafik, wenn ja dann senden (insert).
    zeig doch dein script
    computer tun nur das was man ihnen sagt, meistens

  4. #4
    TP-Supporter TP-Sponsor emiglio macht sich hier sehr viel Mühe Avatar von emiglio
    Registriert seit
    Sep 2002
    Ort
    Schaffhausen/Schweiz
    Beiträge
    344

    Captcha

    OK. Hier der DB-Teil:
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

    switch ($theType) {
    case "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "long":
    case "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case "double":
    $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
    break;
    case "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return $theValue;
    }
    }

    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
    $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }

    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "gbeintrag")) {
    $insertSQL = sprintf("INSERT INTO eintraege (name, text) VALUES (%s, %s)",
    GetSQLValueString($_POST['name'], "text"),
    GetSQLValueString($_POST['text'], "text"));

    mysql_select_db($database_comedia, $comedia);
    $Result1 = mysql_query($insertSQL, $comedia) or die(mysql_error());

    $insertGoTo = "gaestebuch.php";
    if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $insertGoTo));
    }
    ?>


    ...und hier der (gekürzte) Formular-Teil:
    <form action="<?php echo $editFormAction; ?>" method="POST" name="gbeintrag" id="gbeintrag" style="margin:0px">
    <input name="name" type="text" id="name">
    <textarea name="text" rows="7" id="text"></textarea>
    <input type="text" name="pfw_security_code" size="20"><img border="0" src="captcha.php" >
    <input type="submit" name="Submit" value="Senden">
    <input type="hidden" name="MM_insert" value="gbeintrag">
    </form>



    Im Manual des Captchas steht:
    Open your form processor file , it's name should be mentioned in the "action" parameter of your <form> tag, please add the following PHP line at the top of the file just after the "<?php" line or after the validation code: require_once("check.php");
    Geändert von emiglio (19.07.2007 um 13:16 Uhr)

  5. #5
    TP-Veteran marc22 hilft, wo's geht marc22 hilft, wo's geht marc22 hilft, wo's geht
    Registriert seit
    May 2006
    Beiträge
    1.570
    Ich sehe da nichts, wo die check.php eingebunden wird, noch, wo da das Feld pfw_security_code auf den korrekten Code überprüft wird..
    ...Meine Meinung

  6. #6
    TP-Supporter TP-Sponsor emiglio macht sich hier sehr viel Mühe Avatar von emiglio
    Registriert seit
    Sep 2002
    Ort
    Schaffhausen/Schweiz
    Beiträge
    344
    ...und genau das Einbinden der check.php war meine ursprüngliche gemeinte Frage:
    Wenn steht: Open your form processor file , it's name should be mentioned in the "action" parameter of your <form> tag, please add the following PHP line at the top of the file just after the "<?php" line or after the validation code: require_once("check.php");

    Also ich verstehe das so, dass im File, das im action-Parameter des Formulars angegeben ist, das require_once("check.php"); einfügen muss. Da bei mir aber form action="<?php echo $editFormAction; ?>" steht hilft mir das nicht weiter.

    Was die Überprüfung betrifft: Ich denke genau das macht die check.php.

  7. #7
    TP-Veteran marc22 hilft, wo's geht marc22 hilft, wo's geht marc22 hilft, wo's geht
    Registriert seit
    May 2006
    Beiträge
    1.570
    Welche Datei wird denn aufgerufen, wenn Du das Formular abschickst? Und auf welche Art und Weist bindest Du das Captcha in Dein Formular ein?
    ...Meine Meinung

  8. #8
    TP-Supporter TP-Sponsor emiglio macht sich hier sehr viel Mühe Avatar von emiglio
    Registriert seit
    Sep 2002
    Ort
    Schaffhausen/Schweiz
    Beiträge
    344
    Nach dem Abschicken des Formulars (wie im obigen Code zu sehen):
    $insertGoTo = "gaestebuch.php";

    Das Captcha wird folgendermassen eingebunden (wie im obigen Code zu sehen):
    <input type="text" name="pfw_security_code" size="20"><img border="0" src="captcha.php" >

    Das klappt alles auch wunderbar, das Captcha ist zu sehen. Nochmals mein Problem: Wo füge ich die Überprüfung des Captchas ein, in meienm Fall die oben erwähnte check.php

  9. #9
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    die Vorgehensweise ist so, das captcha.php den entsprechenden Wert in die Session schreibt. Beim Validieren holst Du Dir den Wert aus der Session und vergleichst ihn mit der Eingabe.


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  10. #10
    TP-Veteran marc22 hilft, wo's geht marc22 hilft, wo's geht marc22 hilft, wo's geht
    Registriert seit
    May 2006
    Beiträge
    1.570
    Die check.php müsstest Du in deine gaestebuch.php inkludieren. Und zwar direkt hinter den einleitenden <?php-Tag. Genau das steht auch in dem Text, den Du da vor Dir hast
    ...Meine Meinung

  11. #11
    TP-Supporter TP-Sponsor emiglio macht sich hier sehr viel Mühe Avatar von emiglio
    Registriert seit
    Sep 2002
    Ort
    Schaffhausen/Schweiz
    Beiträge
    344

    Catcha (zum Letzten)

    Zu Slayer2205: Das funktioniert leider nicht.

    Zu allen Anderen: Vielleicht haben die Antworten jemandem geholfen, dann hat das Thema seinen Zweck wohl erfüllt. Für mich gilt:

    Da steh ich nun ich armer Tor
    und bin so schlau als wie zuvor.

    Nichts desto Trotz: Danke für die Bemühungen.

    Gruss

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51