AVC und Kontaktformular

Ersetzt das Original phpBB CAPTCHA gegen eins mit diversen Konfigurationsmöglichkeiten.

AVC und Kontaktformular

Beitragvon beedy » 4. Mai 2006 23:09

Soooo, Zeit für den Angriff! :)

Ich habs ja angedroht, nun setz ich es in die Tat um! :wink:

AmigaLink, meinst du es ist möglich, den AVC in den contact_form-Mod einzubauen?

Anzuschauen ist er Hier und den kompletten Mod gibt es Hier.

Da ist ja schon ein visueller Code drin, aber mittlerweile habe ich erfolgreich das cricca-Gästebuch und auch das Addon für Gästebeiträge installiert, was übrigends fabelhaft funktioniert, Danke vielmals dafür! 8)

Mit dem Kontaktformular wäre dann die letzte Tür gescheit abgesichert und ich denke mal, da sind bestimmt auch einige mehr außer mir scharf drauf! :wink:

Meinst du, es ist möglich, die beiden Mods unter einen Hut zu kriegen?

Vielen Dank schonmal im Voraus fürs Schauen!

Gruß!

beedy
Benutzeravatar
beedy
User
 
Beiträge: 43
Registriert: 1. Mai 2006 19:37
Wohnort: Berlin

Beitragvon AmigaLink » 5. Mai 2006 11:05

Nach groben überfliegen dieses MODs würde ich sagen das es kein größeres Problem sein wird, den AVC dort zu integrieren. :)

Ich glaube allerdings kaum das dies überhaupt nötig ist. Ich nutze nun bereits seit 3 Jahren ein Kontaktformular (ohne Bestätigungscode) auf EmF und habe noch nie darüber Spam erhalten. :D

Wenn du es aber trotzdem gerne hättest. Dann Baue ich dir den AVC nächste Woche da ein. :)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon beedy » 5. Mai 2006 15:49

Das wär echt Klasse, wenn du dir die Arbeit machen würdest! :D

Ich habe nämlich öfter schon Zugriffe auf das Kontakformular gehabt, die da nichts zu suchen hatten und da dort der Code nicht unbedingt so sicher ist, würde ich bestimmt ruhiger schlafen! :wink:

Aber Eile mit Weile, ganz wenn es dir in den Kram paßt!

Ich danke schon mal herzlich im Voraus! :)

Gruß!

beedy
Benutzeravatar
beedy
User
 
Beiträge: 43
Registriert: 1. Mai 2006 19:37
Wohnort: Berlin

Beitragvon WileCoyote » 8. Mai 2006 18:39

Also die Idee mit dem Kontaktformular und AVC finde ich sehr gut. Die Lösung würde mich dann auch interessieren. So nebenbei hätte ich auch noch einen Vorschlag für eine Erweiterung. Ich hab mir die linkdb installiert und da funktioniert im Gegensatz zum Advanced Links Mod auch das übermitteln von Links durch Gäste. Damit wäre es natürlich nicht schlecht, wenn man da AVC auch nutzen könnte. Was haltet ihr davon?

lg,
WileCoyote
WileCoyote
 
Beiträge: 11
Registriert: 29. Apr 2006 02:52
Wohnort: Österreich

Beitragvon beedy » 8. Mai 2006 18:46

Hm, welchen Link-Mod hast du denn verbaut?

Weil bei dem hier -->"Links MOD v1.2.2 by phpBB2.de and OOHOO and CRLin"
z.B. müssen die eingetragenen Links erst durch einen Admin freigegeben werden, bevor sie sichtbar werden.



EDIT: Hab gerade gesehen, das du den besagten Mod drin hast, dann hast du ja keine Probleme mit! ;-)

Dabei gleich mal erwähnt: Achte auf dein Gästebuch!

Das ist nämlich eines, daß in den letzten Tagen ziemlich in die Schusslinie geraten ist! ;-)


Gruß!

beedy
Benutzeravatar
beedy
User
 
Beiträge: 43
Registriert: 1. Mai 2006 19:37
Wohnort: Berlin

Beitragvon AmigaLink » 8. Mai 2006 21:13

Leute übertreibt es nicht!
Ihr vertreibt euch selber eure User wenn ihr sie überall mit CAPTCHAs konfrontiert! :roll:

Ich werde garantiert kein addon für einen MOD schreiben, bei dem der jeweilige Eintrag sowieso erst freigegeben werden muss.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon AmigaLink » 9. Mai 2006 23:14

Soooo, hatte gerade mal etwas Langeweile. Bild

Code: Alles auswählen
#
#----------[ INTRUCTION ]-------------------------------
#
# Delete the rand.php
#
# Lösche die rand.php
#
#
#----------[ OPEN ]-------------------------------------
#

contact_form.php

#
#----------[ FIND ]-------------------------------------
#

session_start();
init_userprefs($userdata);

#
#----------[ REPLACE WITH ]-----------------------------
#

init_userprefs($userdata);

#
#----------[ FIND ]-------------------------------------
#

      if($_POST["rand"] != $_SESSION["new_string"]) {
        message_die(GENERAL_ERROR, $lang['code_wrong']);
     }

#
#----------[ REPLACE WITH ]-----------------------------
#

     if ( $board_config['enable_confirm'] && !$userdata['session_logged_in'] )
     {
      if ( empty($HTTP_POST_VARS['confirm_id']) || empty($HTTP_POST_VARS['confirm_code']) )
      {
         $error = TRUE;
         $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];
      }
      else
      {
         $confirm_id = htmlspecialchars($HTTP_POST_VARS['confirm_id']);
         if (!preg_match('/^[A-Za-z0-9]+$/', $confirm_id))
         {
            $confirm_id = '';
         }

         $sql = 'SELECT code
            FROM ' . CONFIRM_TABLE . "
            WHERE confirm_id = '$confirm_id'
            AND session_id = '" . $userdata['session_id'] . "'";
         if (!($result = $db->sql_query($sql)))
         {
            message_die(GENERAL_ERROR, 'Could not obtain confirmation code', __LINE__, __FILE__, $sql);
         }

         if ($row = $db->sql_fetchrow($result))
         {
            if ($row['code'] != $HTTP_POST_VARS['confirm_code'])
            {
               $error = TRUE;
               $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];
            }
            else
            {
               $sql = 'DELETE FROM ' . CONFIRM_TABLE . "
                  WHERE confirm_id = '$confirm_id'
                  AND session_id = '" . $userdata['session_id'] . "'";
                  if (!$db->sql_query($sql))
                  {
                     message_die(GENERAL_ERROR, 'Could not delete confirmation code', __LINE__, __FILE__, $sql);
                  }
            }
         }
         else
         {       
            $error = TRUE;
            $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];
         }
         $db->sql_freeresult($result);
      }
      ($error) ? message_die(GENERAL_MESSAGE, $error_msg) : '';
     }

#
#----------[ FIND ]-------------------------------------
#

$template->set_filenames(array(
    'body' => 'contact_form.tpl'
    )
);

#
#----------[ AFTER, ADD ]-------------------------------
#

$hidden_form_fields = '';
//
// Visual confirmation for guests
//
$confirm_image = '';
if( !$userdata['session_logged_in'] && (!empty($board_config['enable_confirm'])) )
{
   $sql = 'SELECT session_id
      FROM ' . SESSIONS_TABLE;
   if (!($result = $db->sql_query($sql)))
   {
      message_die(GENERAL_ERROR, 'Could not select session data', '', __LINE__, __FILE__, $sql);
   }
   
   if ($row = $db->sql_fetchrow($result))
   {
      $confirm_sql = '';
      do
      {
         $confirm_sql .= (($confirm_sql != '') ? ', ' : '') . "'" . $row['session_id'] . "'";
      }
      while ($row = $db->sql_fetchrow($result));
   
      $sql = 'DELETE FROM ' .  CONFIRM_TABLE . "
         WHERE session_id NOT IN ($confirm_sql)";
      if (!$db->sql_query($sql))
      {
         message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql);
      }
   }
   $db->sql_freeresult($result);
   
   $confirm_chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9');
   
   list($usec, $sec) = explode(' ', microtime());
   mt_srand($sec * $usec);
   
   $max_chars = count($confirm_chars) - 1;
   $code = '';
   for ($i = 0; $i < 6; $i++)
   {
      $code .= $confirm_chars[mt_rand(0, $max_chars)];
   }
   
   $confirm_id = md5(uniqid($user_ip));
   
   $sql = 'INSERT INTO ' . CONFIRM_TABLE . " (confirm_id, session_id, code)
      VALUES ('$confirm_id', '". $userdata['session_id'] . "', '$code')";
   if (!$db->sql_query($sql))
   {
      message_die(GENERAL_ERROR, 'Could not insert new confirm code information', '', __LINE__, __FILE__, $sql);
   }
   
   unset($code);
   
   $confirm_image = '<img src="' . append_sid("profile.$phpEx?mode=confirm&amp;id=$confirm_id") . '" alt="" title="" />';
   $hidden_form_fields .= '<input type="hidden" name="confirm_id" value="' . $confirm_id . '" />';
   
   $template->assign_block_vars('switch_confirm', array());
}
$hidden_form_fields .= '<input type="hidden" name="mode" value="send" /> ';
#
#----------[ FIND ]-------------------------------------
#

   'MESSAGE' => $message,

#
#----------[ AFTER, ADD ]-------------------------------
#

   'CONFIRM_IMG' => $confirm_image,

   'L_CONFIRM_CODE_IMPAIRED'   => sprintf($lang['Confirm_code_impaired'], '<a href="mailto:' . $board_config['board_email'] . '">', '</a>'),
   'L_CONFIRM_CODE' => $lang['Confirm_code'],
   'L_CONFIRM_CODE_EXPLAIN' => $lang['Confirm_code_explain'],

#
#----------[ FIND ]-------------------------------------
#

   'L_OPTION_FOUR' => $lang['EOption_Four_Text']
   
    )
);

#
#----------[ REPLACE WITH ]-----------------------------
#

   'L_OPTION_FOUR' => $lang['EOption_Four_Text'],

   'S_HIDDEN_FIELDS' => $hidden_form_fields)
);

#
#----------[ OPEN ]-------------------------------------
#

contact_form.tpl

#
#----------[ FIND ]-------------------------------------
#

            <td><span class="genmed">{L_EYOUR_NAME}:</span> <font color="006699">*</font></td>

#
#----------[ REPLACE WITH ]-----------------------------
#

            <td width="38%"><span class="genmed">{L_EYOUR_NAME}:</span> <font color="006699">*</font></td>

#
#----------[ FIND ]-------------------------------------
#

          <tr>
            <td><img src="rand.php" border="0"> <font color="006699">*</font></td>
            <td><input name="rand" size="5" maxlength="5"></td>
          </tr>

#
#----------[ REPLACE WITH ]-----------------------------
#

<!-- BEGIN switch_confirm -->
      <tr>
         <td colspan="2" align="center"><span class="gensmall">{L_CONFIRM_CODE_IMPAIRED}</span><br /><br />{CONFIRM_IMG}<br /><br /></td>
      </tr>
      <tr>
         <td><span class="genmed">{L_CONFIRM_CODE}: <font color="006699">*</font> </span><br /><span class="gensmall">{L_CONFIRM_CODE_EXPLAIN}</span></td>
         <td><input type="text" class="post" style="width: 200px" name="confirm_code" size="6" maxlength="6" value="" /></td>
      </tr>
<!-- END switch_confirm -->

#
#----------[ FIND ]-------------------------------------
#

            <td align="right"> <input type="hidden" name="mode" value="send" />
              <input name="submit" type="submit" class="liteoption" value="{L_ESUBMIT}" />
              <input name="reset" type="reset" class="liteoption" value="{L_ECLEAR_FORM}" />
              <br /> <br /> </td>
          </tr>

#
#----------[ REPLACE WITH ]-----------------------------
#

            <td align="right"> {S_HIDDEN_FIELDS}
          </tr>
          <tr>
            <td colspan="2" align="center">
              <input name="submit" type="submit" class="liteoption" value="{L_ESUBMIT}" />
              <input name="reset" type="reset" class="liteoption" value="{L_ECLEAR_FORM}" />
              <br /> <br /> </td>
          </tr>

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM

Das ist nicht getestet, somit bitte ich um Rückmeldung. :)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon beedy » 10. Mai 2006 00:31

Also, Lagebericht, wir sind schon auf nem guten Weg! :D

Zum Einen:

Wenn ich den Code so einbaue, bekomme ich eine Fehlermeldung.
Mir ist aufgefallen, das in deinem Code in Zeile

Code: Alles auswählen
163:$hidden_form_fiels .= '<input type="hidden" name="mode" value="send" /> '


ein ";" fehlt, mache ich das rein, dann erscheint das Kontaktformular.

Template ist auch ok, das hab ich mir nur noch ein bißchen angepaßt, ich kann auch bei Bedarf die ganze Template posten, falls jemand Interesse hat.

Aber...


Es geht noch nicht... :cry:


Gebe ich alle Felder ein und sende ab, dann lädt er die Seite neu, ohne das irgendeine Fehlermeldung kommt und das geht dann jedesmal so, er schickt das Formular quasi nicht ab.

Zum Anschauen, Hier klicken.

Aber schonmal Danke bis hierhin, wir sind auf dem richtigen Weg! :D

Gruß!

beedy



EDIT:

Hab gerade mal zum Test den Code deaktiviert im Adminbereich, danach konnte ich das Formular abschicken.
Benutzeravatar
beedy
User
 
Beiträge: 43
Registriert: 1. Mai 2006 19:37
Wohnort: Berlin

Beitragvon AmigaLink » 10. Mai 2006 00:43

Hoppala, 2 kleine Flüchtigkeitsfehler in einer Zeile. :roll:
(Hab obigen Beitrag schon berichtigt.)
Ersetz mal $hidden_form_fiels .= '<input type="hidden" name="mode" value="send" /> ' gegen $hidden_form_fields .= '<input type="hidden" name="mode" value="send" /> '; dann müsste es gehen.
EDIT:

Hab gerade mal zum Test den Code deaktiviert im Adminbereich, danach konnte ich das Formular abschicken.
Das ist allerdings unlogisch. :o

Zugefügt nach 9 Minute(n):

Und damit das ganze nicht so nach rechts gerutscht aussieht:
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

contact_form.tpl

#
#----------[ FIND ]-------------------------------------
#

            <td><span class="genmed">{L_EYOUR_NAME}:</span> <font color="006699">*</font></td>

#
#----------[ REPLACE WITH ]-----------------------------
#

            <td width="38%"><span class="genmed">{L_EYOUR_NAME}:</span> <font color="006699">*</font></td>
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon beedy » 10. Mai 2006 00:52

Geht immer noch nicht... :cry:


Und das mit dem Deaktivieren hab ich nur gemacht, um den Fehler einzugrenzen, konnte ja auch sein, das ich was an der PHP überschrieben habe, was mir vielleicht nicht aufgefallen ist.

Gleicher Fehler, er sendet das Formular nicht raus.

Gruß!

beedy

EDIT:

Geht weder im eingeloggten Zustand, noch als Gast!

Zugefügt nach 11 Minute(n):

So, diesmal kein Edit, hab den Fehler gefunden, jetzt gehts! :D

Code: Alles auswählen
# #----------[ FIND ]-------------------------------------
#    'L_OPTION_FOUR' => $lang['EOption_Four_Text'],
#
#    'S_HIDDEN_FIELDS' => $hidden_form_fiels)
# );
# #
# #----------[ REPLACE WITH ]-----------------------------
# #
#
#    'L_OPTION_FOUR' => $lang['EOption_Four_Text'],
#
#    'S_HIDDEN_FIELDS' => $hidden_form_fields)
# );


Das "d" hats dir angetan! :D


Aber trotzdem Tausend Dank für deine Hilfe!!!!!

Und jetzt mach Feierabend, irgendwann muß mal gut sein! ;)

Gruß!

beedy
Benutzeravatar
beedy
User
 
Beiträge: 43
Registriert: 1. Mai 2006 19:37
Wohnort: Berlin

Nächste

Zurück zu Advanced Visual Confirmation



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste

cron