Seite 1 von 3
Need Help: 18er Mod für's Forum
Verfasst: 12.11.2003 20:01
von mr. gamesbay
Hallo Com
Ich versuche nen 18er check in meine Seite einzubauen.
So schaut sie Sache bis jetzt aus:
http://www.gamesbay.de/forum/18er.php
Es gibt zwar einen Mod, der will aber nicht bei mir laufen :-/
Deswegen versuche ich grade irgendwie einen selber einen zu basteln

Aber irgendwie komm ich nicht mehr weiter, da meine PHP Fähigkeiten doch sehr begrenzt sind.
Ich bin auf der suche nach folgendes.
Nachdem sich der User, als 18 Jähriger verifiziert hat, sollte die nächste Seite in etwa so ausschaun:
Danke.
[Hier klicken] um den Zutritt für das Forum anzufordern.
In dem Moment wo er auf „Hier Klicken“ drückt, sollte mir automatisch ne PN (oder Mail) zugestellt werden (mit seinem Benutzernamen und mit einem eigens erstellten Text.
Hoffe ihr könnt mir so weit folgen

Verfasst: 13.11.2003 08:54
von Acid
Würde das dann über die 18er.php laufen?
Das könntest über ´nen Modus machen, sprich der Link würde
datei.php?mode=verify lauten.
Den Modus 'verify' definierst du darüber, dann in etwa wie folgt..
if( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
{
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
$mode = "";
}
if( !empty($mode) )
{
switch($mode)
{
case 'verify':
$id_sender = '2'; // id des Empfängers (z.B. Admin)
$id_resv = $hmm; // id des Senders
$msg_time = time();
$pm_subject = 'Titel der PN';
$pm_text = 'Inhalt der PN';
$sql = "INSERT INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig)
VALUES (" . PRIVMSGS_NEW_MAIL . ", '" . str_replace("\'", "''", $pm_subject) . "', " . $id_sender . ", " . $id_resv . ", $msg_time, '7f000001', 1, 1, 1, 0)";
if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
{
message_die(GENERAL_ERROR, "Could not insert/update private message sent info.", "", __LINE__, __FILE__, $sql_info);
}
$privmsg_sent_id = $db->sql_nextid();
$sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text)
VALUES ($privmsg_sent_id, '". $bbcode_uid ."', '" . str_replace("\'", "''", addslashes($pm_text)) . "')";
if ( !$db->sql_query($sql, END_TRANSACTION) )
{
message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql_info);
}
$sql = "UPDATE " . USERS_TABLE . " SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . time() . "
WHERE user_id = " . $id_resv;
if ( !$status = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql);
}
$message = 'Nachricht, die erscheint, wenn man den Link betätigt hat';
message_die(GENERAL_MESSAGE, $message);
break;
default:
message_die(GENERAL_MESSAGE, $lang['No_mode']);
break;
}
exit;
}
$hmm (id des Users) müsstest du dann nur irgendwie rüberbringen.
Verfasst: 13.11.2003 09:02
von fussle
ich such auch schon seit ewigkeiten nach einem "checktor". zur zeit benutze ich die ueber18.de abfrage.
leider habe ich bisher keine bessere möglichkeit gefunden ...
Verfasst: 13.11.2003 09:50
von Acid
Was is denn an der 18er verkehrt ? Beispiel ?
Verfasst: 13.11.2003 12:57
von mr. gamesbay
Danke Acid, aber ich komm nicht ganz weiter :-/
Ich poste mal die Seiten:
18er.php (die Abfrade (nur Formular) selber):
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if( !$userdata['session_logged_in'] )
{
header("Location: " . append_sid("login.$phpEx?redirect=18er.$phpEx", true));
exit;
}
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
?>
<html>
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left" class="nav"><a href="index.php" class="nav">Gamesbay Foren-Übersicht</a></td>
</tr>
</table>
<table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center">
<tr>
<th height="25" class="thHead" nowrap="nowrap">blabla</th>
</tr>
<tr>
<td class="row1"><table border="0" cellpadding="3" cellspacing="1" width="100%">
<tr>
<td align="center" class="nav">
<div align="center"><strong>Für den Zugang in das 18er Forum, ist diese Verifizierung notwendig!</strong></font><br>
<br><form action="perso.php" method=post>
<img src="5.gif" width="300" height="220"><br><br>
<font size="1">Zur Alterskontrolle bitte Ausweisnummer hier eintragen:</font>
<table>
<tr>
<td><input name="Block1" size=10 maxlength=11></td>
<td><input name="Block2" size=6 maxlength=7></td>
<td><input name="Block3" size=6 maxlength=7></td>
<td><input name="Block4" size=1 maxlength=1></td>
</tr>
<tr>
<td align=center colspan=4><INPUT TYPE="SUBMIT" VALUE=" Submit "></td>
</tr>
</table>
</form>
</div>
</td>
</tr>
</table></td>
</tr>
</table>
</html>
<?
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
perso.php (der Check selber)
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if( !$userdata['session_logged_in'] )
{
header("Location: " . append_sid("login.$phpEx?redirect=18er.$phpEx", true));
exit;
}
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
?>
<html>
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left" class="nav"><a href="index.php" class="nav">Gamesbay Foren-Übersicht</a></td>
</tr>
</table>
<table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center">
<tr>
<th height="25" class="thHead" nowrap="nowrap">blabla</th>
</tr>
<tr>
<td class="row1"><table border="0" cellpadding="3" cellspacing="1" width="100%">
<tr>
<td align="center" class="nav">
<?
include("18erconfig.php");
$Zwischensumme = 0;
$Endsumme = 0;
.
.
.
.
.
.
if ($Gesamtkontrolle == true)
print ($Okay);
else
print ($Error);
?>
</td>
</tr>
</table></td>
</tr>
</table>
</html>
<?
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Hier noch die 18erconfig.php
Code: Alles auswählen
<?
// Zugang gewährt
$Okay = "Danke, es funzt. Du bist 18, oder älter";
// Zugang verwehrt
$Error = "<p>Entweder hast du die falsche Nummer eingegeben, oder bist jünger als 18.</p>";
/* Modus = 1 : Die Personalausweisnummer wird lediglich auf Korrektheit überprüft
Modus = 2 : Das Alter wird errechnet und mit der Variable $MinAlter verglichen */
$Modus = 2;
// Nur für den Modus 2 relevant
$MinAlter = 18;
?>
Verfasst: 13.11.2003 21:02
von mr. gamesbay
Hat keiner ne idee ?

Verfasst: 14.11.2003 09:03
von Acid
Na woran hapert´s denn? Du willst, sobald man sich bei der 18er verifiziert hat, eine Seite mit ´ner Meldung und Link kommt... der Link schickt dann nach Betätigung eine PN an dich!?
Verfasst: 14.11.2003 12:45
von mr. gamesbay
Acid hat geschrieben:Na woran hapert´s denn? Du willst, sobald man sich bei der 18er verifiziert hat, eine Seite mit ´ner Meldung und Link kommt... der Link schickt dann nach Betätigung eine PN an dich!?
Ich habe leider keine ahnung wohin mit deinem Code !?
Des ist mein Problem

Verfasst: 14.11.2003 12:47
von Acid
Is das obige alles vom 18er oder fehlt noch was, wenn ich es mal testen möchte?
Acid hat geschrieben:Na woran hapert´s denn? Du willst, sobald man sich bei der 18er verifiziert hat, eine Seite mit ´ner Meldung und Link kommt... der Link schickt dann nach Betätigung eine PN an dich!?
Verfasst: 14.11.2003 12:51
von mr. gamesbay
18er.php ist vollständig.
Aber hier die ganze perso.php:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if( !$userdata['session_logged_in'] )
{
header("Location: " . append_sid("login.$phpEx?redirect=18er.$phpEx", true));
exit;
}
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
?>
<html>
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left" class="nav"><a href="index.php" class="nav">Gamesbay Foren-Übersicht</a></td>
</tr>
</table>
<table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center">
<tr>
<th height="25" class="thHead" nowrap="nowrap">blabla</th>
</tr>
<tr>
<td class="row1"><table border="0" cellpadding="3" cellspacing="1" width="100%">
<tr>
<td align="center" class="nav">
<?
include("18erconfig.php");
$Zwischensumme = 0;
$Endsumme = 0;
$Gesamtkontrolle = false;
$date_time_array = getdate (time());
if ((strlen($Block1)) == 11) {
for ($i = 0; $i <= 8; $i++) {
$Endsumme = $Endsumme + ((int) substr ($Block1,$i,1)*7);
$i++;
$Endsumme = $Endsumme + ((int) substr ($Block1,$i,1)*3);
$i++;
$Endsumme = $Endsumme + ((int) substr ($Block1,$i,1));
}
$Pruef1 = (int) substr ($Block1,9,1);
if (($Endsumme % 10) == $Pruef1) {
$Endsumme = $Endsumme + ($Pruef1*7);
if ((substr($Block1,10,1)) == "D") {
$Zwischensumme = 0;
if (strlen($Block2) == 7) {
for ($i = 0; $i <= 5; $i++) {
$ziffer = (int) substr ($Block2,$i,1);
$Zwischensumme = $Zwischensumme + ($ziffer*7);
$Endsumme = $Endsumme + ($ziffer*3);
$i++;
$ziffer = (int) substr ($Block2,$i,1);
$Zwischensumme = $Zwischensumme + ($ziffer*3);
$Endsumme = $Endsumme + $ziffer;
$i++;
$ziffer = (int) substr ($Block2,$i,1);
$Zwischensumme = $Zwischensumme + $ziffer;
$Endsumme = $Endsumme + ($ziffer*7);
}
$Pruef1 = (int) substr ($Block2,6,1);
if ($Pruef1 == ($Zwischensumme%10)) {
$Endsumme = $Endsumme + ($Pruef1*3);
$Zwischensumme = 0;
if (strlen($Block3) == 7) {
for ($i = 0; $i <= 5; $i++) {
$ziffer = (int) substr ($Block3,$i,1);
$Zwischensumme = $Zwischensumme + ($ziffer*7);
$Endsumme = $Endsumme + $ziffer;
$i++;
$ziffer = (int) substr ($Block3,$i,1);
$Zwischensumme = $Zwischensumme + ($ziffer*3);
$Endsumme = $Endsumme + ($ziffer*7);
$i++;
$ziffer = (int) substr ($Block3,$i,1);
$Zwischensumme = $Zwischensumme + ($ziffer*1);
$Endsumme = $Endsumme + ($ziffer*3);
}
$Pruef1 = (int) substr ($Block3,6,1);
if ($Pruef1== ($Zwischensumme%10)) {
$Endsumme = $Endsumme + $Pruef1;
if (($Endsumme % 10) == ((int) substr($Block4,0,1))) {
$GueltigJahr = (int) substr($Block3,0,2);
if ($GueltigJahr < 30) {
$GueltigJahr = $GueltigJahr + 2000;
If ($date_time_array["year"] >= $GueltigJahr) {
If ($date_time_array["mon"] >= (int) substr($Block3,2,2))
If ($date_time_array["mday"] <= (int) substr($Block3,4,2))
$Gesamtkontrolle = true;
}
else $Gesamtkontrolle = true;
}
}
}
}
}
}
}
}
}
if ($Gesamtkontrolle == true) {
if ($Modus == 2) {
$AlterJahr = (int) substr($Block2,0,2);
if ($AlterJahr > 20) {
$AlterJahr = $AlterJahr + 1900;
$Alter = $date_time_array["year"] - $AlterJahr;
if ($date_time_array["mon"] < (int) substr($Block2,2,2))
$Alter = $Alter - 1;
else
if ($date_time_array["mon"] == (int) substr($Block2,2,2))
if ($date_time_array["mday"] < (int) substr($Block2,4,2))
$Alter = $Alter - 1;
}
else
$Gesamtkontrolle = false;
if ($Alter >= $MinAlter)
$Gesamtkontrolle = true;
else
$Gesamtkontrolle = false;
}
}
if ($Gesamtkontrolle == true)
print ($Okay);
else
print ($Error);
?>
</td>
</tr>
</table></td>
</tr>
</table>
</html>
<?
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>