Jetzt kostenlos Anmelden!


Timmi Männlich

ist gerade angekommen

Beiträge: 8

Geschlecht: Männlich

PHPKIT Version: 1.6.4

1

Sonntag, 8. März 2009, 21:44

Sicherheitgrafik - Captcha

Hallo Leute,

ich benötige mal Eure Hilfe.

Ich möchte in ein php Scritp die Sicherheitsgrafik (Captcha) einbauen.
Mir wird die Grafik auch schon angezeigt (pkCaptchaField) und den eingegebenen Code bekomme ich auch raus.

Nun zu meinem Problem:
Die Funktion vom PHPKIT zum vergleichen der Zeichen liefert mir kein Ergebniss.
Es geht um folgende Funktion: pkCaptchaCodeValid

/pkin/func/public.php (Zeile 351)

Kann mir vielleicht jemand sagen, ob es da irgendwelche Abhänigkeiten gibt um die Funktion zu benutzen?

Viele Grüße
Timmi
  • Zum Seitenanfang
  • Zum Seitenende

KC-Cracky Männlich

Wuselmännchen

Beiträge: 671

Geschlecht: Männlich

PHPKIT Version: 1.6.5

2

Montag, 9. März 2009, 04:42

Moin,

probiere das mal so. Da wo das Captcha angezeigt werden soll einfach in die PHP:

PHP-Quelltext

1
$captcha=pkCaptchaField();


reintippen vor dem Aufruf des TPL's. In das TPL die VARI -> $captcha innerhalb des <table> setzen ohne <tr> oder <td> zu verwenden :whistling:

Wenn jetzt einer auf speichern klickt sollte das in etwa so aussehen bei dir:

PHP-Quelltext

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
if(intval($_POST['id'])>0)){
$floodcontrol=pkTIME-($config['comment_floodctrl']*60);
$infocom=$DB->fetch_array($DB->query("SELECT COUNT(*) 
FROM DEINE ADDON TABELLE
WHERE DEIN-ADDON-TABELLEN-FELD_autorid='".intval(pkGetUservalue('id'))."' AND 
DEIN-ADDON-TABELLEN-FELD_comment_time>'".$floodcontrol."'
LIMIT 1"));

if(!pkCaptchaCodeValid($ENV->_post(pkCAPTCHAVARNAME)))
{
$event='securitycode_invalid';
}
elseif(trim($_POST['content'])=='' || trim($_POST['comment_autor'])=='')
{
$event='comment_data_missing';
}
elseif(strlen(trim($_POST['content']))>pkGetConfig('comment_maxchars'))
{
$event='comment_length';
}
elseif($infocom[0]>0)
{
$event='comment_wait_loop';
}
elseif(!checkusername($_POST['comment_autor'],1))
{
$event='name_in_use';
}
else
{
       SQL Befehl zum eintragen in die Tabelle
    }

    if(isset($event))
{
if($event==46)
$commentlength=strlen($_POST['content']);

pkEvent($event,false);
}
}


fertig. Das kannste für alle Formen oder Addons wo das Captcha angezeigt werden soll benutzen 8o Musst halt nur bei meinem Beispiel immer die Tabellennamen und felder anpassen.

grußi

grußi
  • Zum Seitenanfang
  • Zum Seitenende

Timmi Männlich

ist gerade angekommen

Beiträge: 8

Geschlecht: Männlich

PHPKIT Version: 1.6.4

3

Montag, 9. März 2009, 19:07

Hi,

kannst Du mir vielleicht hier weiterhelfen?
Ich will erst mal nichts weiter machen, als die gut Meldung bekommen.
Alles andere ist kein Thema.


PHP-Quelltext

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
<?php
            
if((isset($_POST['sign'])) && ($_POST['sign'] == "commentSend")){

    echo "test: ".$ENV->_post(pkCAPTCHAVARNAME);

    if(!pkCaptchaCodeValid($ENV->_post(pkCAPTCHAVARNAME))) 
        echo "<br>Captcha falsch!!!";
    else 
        echo "<br>es Funzt";
}        
$captcha=pkCaptchaField(NULL,2);    
?>
<table class="standard" width="100%" cellspacing="1" cellpadding="4">
        <script language="Javascript" src="fx/main.js"></script> 
        <form name="myform" method="post" action="include.php?path=captcha">
        <input type="hidden" name="mode" value="0" onfocus="mymode()" />
        <input type="hidden" name="mode" value="0" onfocus="mymode()" />
        <tr>
        <td width="15%" class="left" valign="top">Kommentar</td>
        <td width="85%" class="right">
            <table border="0" width="100%" cellpadding="0" cellspacing="2">
                TEST
            </table>
        </td>
        </tr>
        <?= $captcha ?>
        <tr>
        <td class="heads" align="center" colspan="2">
            <input name="submit" type="submit" value="Speichern">
            <input name="sign" type="hidden" value="commentSend">
        </td>
        </tr>
        </form>
</table>


Mit diesem Beispiel kannst Du sicher ganz schnell mein Problem verstehen.
Ich sehe das Problem nicht mehr!!!! ;(

Viele Grüße und danke
Timmi

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Timmi« (9. März 2009, 21:21)

  • Zum Seitenanfang
  • Zum Seitenende

JohannesL

unregistriert

4

Montag, 9. März 2009, 20:09

Hallo Timmi,

ich würde das so machen mit der Variable:

PHP-Quelltext

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
<?php
            
if((isset($_POST['sign'])) && ($_POST['sign'] == "commentSend")){
    echo "test: ".$ENV->_post(pkCAPTCHAVARNAME);
    if(!pkCaptchaCodeValid($ENV->_post(pkCAPTCHAVARNAME))) 
        echo "<br>Captcha falsch!!!";
    else 
        echo "<br>es Funzt";
}        
$captcha=pkCaptchaField(NULL,2);    
?>
<table class="standard" width="100%" cellspacing="1" cellpadding="4">
        <script language="Javascript" src="fx/main.js"></script> 
        <form name="myform" method="post" action="include.php?path=captcha">
        <input type="hidden" name="mode" value="0" onfocus="mymode()" />
        <input type="hidden" name="mode" value="0" onfocus="mymode()" />
        <tr>
        <td width="15%" class="left" valign="top">Kommentar</td>
        <td width="85%" class="right">
            <table border="0" width="100%" cellpadding="0" cellspacing="2">
                TEST
            </table>
        </td>
        </tr>
  $captcha
        <tr>
        <td class="heads" align="center" colspan="2">
            <input name="submit" type="submit" value="Speichern">
            <input name="sign" type="hidden" value="commentSend">
        </td>
        </tr>
        </form>
</table>
  • Zum Seitenanfang
  • Zum Seitenende

Timmi Männlich

ist gerade angekommen

Beiträge: 8

Geschlecht: Männlich

PHPKIT Version: 1.6.4

5

Montag, 9. März 2009, 20:31

Hi,

das hat nix mit meinem Problem zu tun und ist außerdem syntaktisch falsch.

Gruß
Timmi
  • Zum Seitenanfang
  • Zum Seitenende

Timmi Männlich

ist gerade angekommen

Beiträge: 8

Geschlecht: Männlich

PHPKIT Version: 1.6.4

6

Dienstag, 10. März 2009, 20:29

Hat sonst keiner eine Idee?

Gruß
Timmi
  • Zum Seitenanfang
  • Zum Seitenende

KC-Cracky Männlich

Wuselmännchen

Beiträge: 671

Geschlecht: Männlich

PHPKIT Version: 1.6.5

7

Mittwoch, 11. März 2009, 17:23

Also erstmal was soll das hier bewirken innheralb der Klammer?!?

PHP-Quelltext

1
$captcha=pkCaptchaField(NULL,2); 


und warum -> <?= $captcha ?> (= Zeichen ?!?)

Weißt du etwas, was ich nicht weiß
:D

Die Funktion pkCaptchaField generiert lediglich einen Captcha Code und ich wüßte jetzt nicht was du da schicken möchtest ^^
Am besten einfach mal das in der Klammer tilgen und das = Zeichen wegmachen :thumbup:

Müßte gehen, so wie du es gemacht hast.

grußi
  • Zum Seitenanfang
  • Zum Seitenende

Riddler Männlich

schaut regelmäßig rein

Beiträge: 255

Geschlecht: Männlich

PHPKIT Version: 1.6.5

8

Mittwoch, 11. März 2009, 17:57

@Cracky
Das <?= $captcha; ?> ist ne Kurzschreibweise für <? echo $captcha; ?>...
Funzt aber nur wenn die ASP-Tags in der php.ini aktiviert sind.

Ich würd ja den HTML-Part einfach zum site_body hinzufügen, sonst funzt das doch gar nicht mit der Ausgabe..

PHP-Quelltext

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
<?php
            
if((isset($_POST['sign'])) && ($_POST['sign'] == "commentSend")){
    echo "test: ".$ENV->_post(pkCAPTCHAVARNAME);
    if(!pkCaptchaCodeValid($ENV->_post(pkCAPTCHAVARNAME))) 
        echo "<br>Captcha falsch!!!";
    else 
        echo "<br>es Funzt";
}        
$captcha=pkCaptchaField(NULL,2);    

$site_body .= '<table class="standard" width="100%" cellspacing="1" cellpadding="4">
        <script language="Javascript" src="fx/main.js"></script> 
        <form name="myform" method="post" action="include.php?path=captcha">
        <input type="hidden" name="mode" value="0" onfocus="mymode()" />
        <input type="hidden" name="mode" value="0" onfocus="mymode()" />
        <tr>
        <td width="15%" class="left" valign="top">Kommentar</td>
        <td width="85%" class="right">
            <table border="0" width="100%" cellpadding="0" cellspacing="2">
                TEST
            </table>
        </td>
        </tr>
  $captcha
        <tr>
        <td class="heads" align="center" colspan="2">
            <input name="submit" type="submit" value="Speichern">
            <input name="sign" type="hidden" value="commentSend">
        </td>
        </tr>
        </form>
</table>';
?>
  • Zum Seitenanfang
  • Zum Seitenende

KC-Cracky Männlich

Wuselmännchen

Beiträge: 671

Geschlecht: Männlich

PHPKIT Version: 1.6.5

9

Mittwoch, 11. März 2009, 18:02

@ Riddler

wieder was gelernt 8o

Und was heißt das nun in der Klammer bei Captcha.... Ich bin faul :thumbup: Könnte ja selbst nachgucken :whistling: Muss ich mir doch nochmal die ganzen Funktionen etwas genauerr angucken :rolleyes:

grußi
  • Zum Seitenanfang
  • Zum Seitenende

Riddler Männlich

schaut regelmäßig rein

Beiträge: 255

Geschlecht: Männlich

PHPKIT Version: 1.6.5

10

Mittwoch, 11. März 2009, 18:04

kein plan hab nicht geguckt...
..aber könnte man grad mal machen

Also man kann 3 Parameter angeben..
1. Name des Inputfeldes, wenn nicht standard
2 + 3. Colspan Werte für die Tabelle (Standard 0)

Kann also normalerweise alles weggelassen werden, schätze ich mal

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Riddler« (11. März 2009, 18:15)

  • Zum Seitenanfang
  • Zum Seitenende