AVC und Kontaktformular

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

Beitragvon AmigaLink » 10. Mai 2006 14:08

Hatte ich bereits erledigt. ;)
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 Christian_N » 26. Mai 2006 12:00

Laut Empfehlung für Boards >= 2.0.20 müsste dann ihr auch das I entfernt werden wenn ich es richtig seh muss nur von Beitrag #7 in zeile 136 den folgend code geändert werden
Code: Alles auswählen
---------- FINDE -----------
$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');

------------ ERSETZE MIT ---------
$confirm_chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', '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');


Hoff sehe es richtig so?
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Beitragvon AmigaLink » 26. Mai 2006 12:14

Ja, das ist richtig.
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 oliver554 » 3. Sep 2006 18:49

Sodele...also genau das mit dem Kontaktformular hatte ich gesucht...hab das eigentlich auch so eingebaut und bekomme jetzt folgende Fehlermeldung, wenn ich das aufrufe: Template->loadfile(): No files found for handle body

Irgendwie hab ich grade keinen Plan, was falsch sein soll, daß der mir diese Meldung bringt. Das Kontakformular wird infolge dessen auch nicht angezeigt.
Sehen kann man das ganze hier :

http://webradio.uttx.net/contact_form.php

Wäre prima, wenn mir da mal jemand raushelfen könnte...
oliver554
 
Beiträge: 1
Registriert: 3. Sep 2006 18:43
Wohnort: Bergheim/Erft

Beitragvon volker » 3. Sep 2006 19:57

naja, da fehlt halt nur eine datei, handle_body.tpl in deinem style
volker
User
 
Beiträge: 65
Registriert: 13. Dez 2004 16:43

Beitragvon Christian_N » 14. Mai 2007 14:33

Hi,
Also, ich hätte gerne das es bei dem Kontaktformular so ist wie beim Registrieren, sprich mit dem Abwechsel, mal 4Zeichen mal 6Zeichen die einzugeben sind als Code, auch das die Zahl 0 bzw. Buchstaben I nicht erscheinen, was ja auch er mit dem Code aus Beitrag #7 nicht tut, nur da ist immer 6 Zeichen einzugeben.

Daher meine frage, geht es wenn ich den Code der in der usercp_register.php ist einfach in die Datei contact_form.php einsetzen tun also so:
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

contact_form.php

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

$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" /> ';

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

$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);

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

      if ($row = $db->sql_fetchrow($result))
      {
         if ($row['attempts'] > 3)
         {
            message_die(GENERAL_MESSAGE, $lang['Too_many_registers']);
         }
      }
      $db->sql_freeresult($result);
      
      // Generate the required confirmation code
      $code_length = mt_rand(4, 6);
      $code = dss_rand();
      $code = strtoupper(base_convert($code, 16, 35));
      $code = str_replace('I', '', $code); // The letter I could get confused with the letter J and the number 1 (one) so we remove it
      $code = str_replace('0', '', $code); // NB 0 (zero) could get confused with O (the letter) so we remove it
      $code = substr($code, 2, $code_length);

      $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" /> ';

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM
Oder hab ich da jetzt was beim dem Ersetzen falsch dann gemacht und wird es dann zu Problemen führen?
Falls aber kein Fehler drin erdecken kannst, würde ich es bei mir gerne dann so einbauen. :)

Gruß Chris
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Beitragvon AmigaLink » 14. Mai 2007 18:18

Das ist vollkommen richtig Christian. :)
Der Code aus Beitrag #7 bezieht ich noch auf eine ältere phpBB Version. Was du jetzt gemacht hast (oder machen möchtest) bringt die Ermittlung des Bestätigungscodes dann auf den aktuellen Stand. :)
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 Christian_N » 14. Mai 2007 21:45

Danke für die Antwort, dann werde ich es natürlich mal machen gleich :)
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Vorherige

Zurück zu Advanced Visual Confirmation



Wer ist online?

Mitglieder in diesem Forum: Magpie [Crawler] und 3 Gäste

cron