Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
/** * Prüft, ob der Antispamcode richtig eingegeben wurde * Der NoPictureMode fügt ein Hidden Feld ein, um Cross Site Request Forgery Attacken zu unterbinden, der NoPictureMode * wird automatisch genutzt, wenn kein Bildabfrage statt findet, kann aber auch erzwungen werden * * @global array $allgAr * @param string $m Modulname, um unterschiedliche Antispamfelder auf einer Seite zu ermöglichen * @param boolean $nopictures NoPictureMode erzwingen * @return boolean */ function chk_antispam($m, $nopictures = false) { global $allgAr; if (!$nopictures && is_numeric($allgAr['antispam']) && has_right($allgAr['antispam'])) { $nopictures = true; } $valid = false; if ($nopictures && isset($_POST['antispam_id'])) { $antispamId = $_POST['antispam_id']; if (isset($_SESSION['antispam'][$antispamId]) && $_SESSION['antispam'][$antispamId]) { $valid = true; unset($_SESSION['antispam'][$antispamId]); } } elseif (isset($_POST['antispam']) && isset($_POST['antispam_id']) && isset($_SESSION['antispam'][$_POST['antispam_id']]) && $_POST['antispam'] === $_SESSION['antispam'][$_POST['antispam_id']][$m][3] ) { unset ($_SESSION['antispam'][$_POST['antispam_id']]); $valid = true; } return $valid; } /** * Erzeugt HTML Code für ein Formularfeld, welches für einen Antibot-Schutz dienen oder vor CSFR Attacken schützen soll * Beschreibung zum NoPictureMode bitte der chk_antispam Funktion entnehmen * * @global array $allgAr * @param string $m Modulname * @param integer $t Type, der angibt wie das Formularfeld formatiert wird (0, 1 oder > 10 als Breite für das label) siehe Code :P * @param boolean $nopictures Erzwing NoPictureMode * @return string */ function get_antispam($m, $t, $nopictures = false) { global $allgAr; if (!$nopictures && $t < 0 || (is_numeric($allgAr['antispam']) && has_right($allgAr['antispam']))) { $nopictures = true; } mt_srand((double)microtime()*1000000); $id = uniqid($m, true); $rs = '<input type="hidden" name="antispam_id" value="'.$id.'" />'; if ($nopictures) { $_SESSION['antispam'][$id] = true; return $rs; } if (is_numeric($allgAr['antispam']) && has_right($allgAr['antispam'])) { return ''; } if (!isset($_SESSION['antispam']) || (isset($_SESSION['antispam']) && !is_array($_SESSION['antispam']))) { $_SESSION['antispam'] = array(); } $_SESSION['antispam'][$m] = array(); $i1 = mt_rand (1,9); $i2 = mt_rand (1,9); $i3 = mt_rand (1,9); $_SESSION['antispam'][$id][$m] = array($i1, $i2, $i3, $i1.$i2.$i3); $rs .= '<span style="display: inline; width: 100px; vertical-align: middle; text-align: center; background-color: #000000; border: 0px; padding: 2px; margin: 0px;">' . '<img src="include/images/spam/z.php?m='.$m.'&w=0&'.session_name().'='.session_id().'&id='.$id.'" alt="">' . '<img src="include/images/spam/z.php?m='.$m.'&w=1&'.session_name().'='.session_id().'&id='.$id.'" alt="">' . '<img src="include/images/spam/z.php?m='.$m.'&w=2&'.session_name().'='.session_id().'&id='.$id.'" alt="">' . '<input name="antispam" size="3" maxlength="3" style="background-color: #FFFFFF; border: 0px; margin: 0px; padding: 0px;" /></span>'; if ($t == 0) { return ($rs); } elseif ($t == 1) { return '<tr><td class="Cmite">Antispam</td><td class="Cnorm">'.$rs.'</td></tr>'; } elseif ($t > 10) { return '<label style="float:left; width: '.$t.'px; ">Antispam</label>'.$rs.'<br />'; } else { return ''; } }