Alterskontrolle druch Birthday mod

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
SZiebeck01
Mitglied
Beiträge: 49
Registriert: 28.06.2006 08:55
Wohnort: Lübeck
Kontaktdaten:

Alterskontrolle druch Birthday mod

Beitrag von SZiebeck01 »

Hallo Liebe Leute.
Ich habe den B-Day mod 1.5.9eml von Niles verbaut ,und wollte fragen ob ihr mir helfen könntet ?

Standard trägt der B-Mod ind er SQL Tabelle 99999 ein,wenn nichts geändert wurde.

Ist es möglich eine einmalige änderung zu gestatten ?

Also einmal dateum eingeben und dann ändern ?

Ich habe im Forum nämlich 15 Jährige ,die Ihre Geb. Daten ändern ,wenn sie
in andere Bereiche wollen ,so können sie sich anmelden ,und nur einmal das datum eingeben ,bei der anmeldung halt.


Wäre schön ,wenn ihr eine Lösung habt !

Gruss
Sven
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe phpBB.de-Knigge
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Re: Alterskontrolle druch Birthday mod

Beitrag von MagMo »

Hi,
SZiebeck01 hat geschrieben:so können sie sich anmelden ,und nur einmal das datum eingeben ,bei der anmeldung halt.
Als erstes solltest du das Geburtsdatum bei der Registrierung zum Pflichtfeld machen (falls nicht schon geschehen).

Dann diese kleine Änderung vornehmen:

Code: Alles auswählen

#---[ OPEN ]---
includes/usercp_register.php

#---[ FIND ]---
if ( $mode == 'editprofile' )
{
	if ( $user_id != $userdata['user_id'] )
	{
		$error = TRUE;
		$error_msg = $lang['Wrong_Profile'];
	}
}

#---[ AFTER, ADD ]---
if ( $mode == 'register' )
{
	$template->assign_block_vars('switch_registrierung_profile', array());
}

#---[ OPEN ]---
templates/subSilver/profile_add_body.tpl

#---[ FIND ]---
	<tr>
	  <td class="row1"><span class="gen">{L_BIRTHDAY}:{BIRTHDAY_REQUIRED}</span></td>

#---[ BEFORE, ADD ]---
	<!-- BEGIN switch_registrierung_profile -->

#---[ FIND ]---
	  <td class="row2"><span class="gen">{S_BIRTHDAY}</span></td>
	</tr>

#---[ AFTER, ADD ]---
	<!-- BEGIN switch_registrierung_profile -->
Dann kann das Feld nur noch bei der Registrierung bearbeitet werden.
Wenn du mehrere Templates verwendest, nicht vergessen die Änderung an der tpl-Datei in allen Templates vorzunehmen. Und

Anmerkung:
Du solltest bedenken, dass (meines Wissens nach) dieser Mod keine anerkannte Alterskontrolle darstellt. Da dort jeder ohne Kontrolle eintragen kann was er will.

Grüße
MagMo
Zuletzt geändert von MagMo am 04.08.2006 12:18, insgesamt 1-mal geändert.
SZiebeck01
Mitglied
Beiträge: 49
Registriert: 28.06.2006 08:55
Wohnort: Lübeck
Kontaktdaten:

Beitrag von SZiebeck01 »

Ja ,das habe ich schon ,als pflichtfeld ,aber das prob ist,wenn sie ins profil gehen,könne sie den geburtstag noch ändern ,und das möchte ich verhindern.

Ich möchte das ganze nicht als akiven schutz nehmen ,sondern es bekommen geburtstagskinder demnächst einige kleinigkeiten ,die sie vorher kriegen ,wenn sie halt das geburtsdatum manipulieren....


Gruss,und danke für die schnelle reaktion
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe phpBB.de-Knigge
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
SZiebeck01 hat geschrieben:wenn sie ins profil gehen,könne sie den geburtstag noch ändern ,und das möchte ich verhindern.
Das erreichst du mit der geposteten Codeänderung. Dadurch wird das Geburtstagsfeld nur noch bei der Registrierung angezeigt nicht mehr im Profil-bearbeiten-Formular.

Ganz Ausgefuchste könnten allerdings die entsprechenden Variablen direkt an das Formular schicken und den Geburtstag so ändern. Auf die Idee kommen und die Kenntnis haben sollten aber die wenigsten. Schau mir gleich nochmal das Script an und poste dann wie auch dies verhindert werden kann.

/EDIT
In der includes/usercp_register.php musst du noch folgendes ändern um das oben angesprochene zu verhindern:
Finde

Code: Alles auswählen

		if ( $mode == 'editprofile' )
Finde danach

Code: Alles auswählen

			$sql = "UPDATE " . USERS_TABLE . "
				SET " . $username_sql . .......
In der Zeile, die mit SET beginnt, findest du folgendes:

Code: Alles auswählen

user_birthday = '$birthday', user_next_birthday_greeting = '$next_birthday_greeting', 
Dies entfernst du aus der Zeile. Damit ist sichergestellt, das das Geburtstag nicht mehr geändert werden kann.

Grüße
MagMo
SZiebeck01
Mitglied
Beiträge: 49
Registriert: 28.06.2006 08:55
Wohnort: Lübeck
Kontaktdaten:

Beitrag von SZiebeck01 »

Könnte man das Geburtsdatum dort nicht nur ausgeben mit dem zusatz nicht mehr veränderbar ?

ich kann dort nichts finden :-(

bzw die zeilen finde ich nicht ,hier die txt von mir :
http://www.weisst-was.eu/mail/usercp_register.txt
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe phpBB.de-Knigge
h-o
Mitglied
Beiträge: 385
Registriert: 09.08.2004 16:17

Beitrag von h-o »

SZiebeck01 hat geschrieben:die zeilen finde ich nicht ,hier die txt von mir :
Suche einfach nach

Code: Alles auswählen

$sql = "UPDATE " . USERS_TABLE . "
denn diese Zeile kommt sowieso nur einmal in usercp_register.php vor - auch in deiner :-)
SZiebeck01
Mitglied
Beiträge: 49
Registriert: 28.06.2006 08:55
Wohnort: Lübeck
Kontaktdaten:

Beitrag von SZiebeck01 »

Jaaa ,ich habs :-)

Aber jetzt ist ja das problem ,alle die ihr geb. datum nich eingegeben haben ,können das nicht mehr.

Kann man das nicht so machen ,wenn in der tabelle 99999 steht ist das datum änderbar ,
dann sollte sich das doch selber reglen odeR ?
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe phpBB.de-Knigge
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
SZiebeck01 hat geschrieben:Aber jetzt ist ja das problem ,alle die ihr geb. datum nich eingegeben haben ,können das nicht mehr.
Das geht mit obiger Änderung nicht. :)
SZiebeck01 hat geschrieben:Kann man das nicht so machen ,wenn in der tabelle 99999 steht ist das datum änderbar , dann sollte sich das doch selber reglen odeR ?
Wenn es so einfach ist, wie wäre es mit selber machen? :wink:
Ansonsten:
Ändere dazu folgendes (obige Änderung vorher rückgängig machen!):

Code: Alles auswählen

#---[ OPEN ]---
includes/usercp_register.php

#---[ FIND ]---
if ( $mode == 'editprofile' )
{
	if ( $user_id != $userdata['user_id'] )
	{
		$error = TRUE;
		$error_msg = $lang['Wrong_Profile'];
	}
}

#---[ AFTER, ADD ]---
if (( $mode == 'register' ) || ($userdata['user_birthday'] == 999999))
{
	$template->assign_block_vars('switch_edit_birthday', array());
}

#---[ FIND ]---
			$sql = "UPDATE " . USERS_TABLE . "
				SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_birthday = '$birthday', user_next_birthday_greeting = '$next_birthday_greeting', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm,games_block_pm = $games_block_pm,  user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "', user_realname = '" . str_replace("\'", "''", $realname) . "', user_adress = '" . str_replace("\'", "''", $adress) . "', user_birth = '$birth', user_photo = '" . str_replace("\'", "''", $photo) . "', user_slogan = '" . str_replace("\'", "''", $slogan) . "', user_topt_title = '" . str_replace("\'", "''", $opt_title) . "', user_topt_text = '" . str_replace("\'", "''", $opt_text) . "', user_teamdesc_title = '$team_desc', user_teamtext = '$team_text', team_website = '$team_website', team_email = '$team_email', team_pm = '$team_pm'" . $avatar_sql . "
				WHERE user_id = $user_id";

#---[ REPLACE WITH ]---
			if ($userdata['user_birthday'] == 999999)
			{
				$sql = "UPDATE " . USERS_TABLE . "
					SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_birthday = '$birthday', user_next_birthday_greeting = '$next_birthday_greeting', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm,games_block_pm = $games_block_pm,  user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "', user_realname = '" . str_replace("\'", "''", $realname) . "', user_adress = '" . str_replace("\'", "''", $adress) . "', user_birth = '$birth', user_photo = '" . str_replace("\'", "''", $photo) . "', user_slogan = '" . str_replace("\'", "''", $slogan) . "', user_topt_title = '" . str_replace("\'", "''", $opt_title) . "', user_topt_text = '" . str_replace("\'", "''", $opt_text) . "', user_teamdesc_title = '$team_desc', user_teamtext = '$team_text', team_website = '$team_website', team_email = '$team_email', team_pm = '$team_pm'" . $avatar_sql . "
					WHERE user_id = $user_id";
			}
			else
			{
				$sql = "UPDATE " . USERS_TABLE . "
					SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm,games_block_pm = $games_block_pm,  user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "', user_realname = '" . str_replace("\'", "''", $realname) . "', user_adress = '" . str_replace("\'", "''", $adress) . "', user_birth = '$birth', user_photo = '" . str_replace("\'", "''", $photo) . "', user_slogan = '" . str_replace("\'", "''", $slogan) . "', user_topt_title = '" . str_replace("\'", "''", $opt_title) . "', user_topt_text = '" . str_replace("\'", "''", $opt_text) . "', user_teamdesc_title = '$team_desc', user_teamtext = '$team_text', team_website = '$team_website', team_email = '$team_email', team_pm = '$team_pm'" . $avatar_sql . "
					WHERE user_id = $user_id";
			}

#---[ OPEN ]---
templates/subSilver/profile_add_body.tpl

#---[ FIND ]---
   <tr>
     <td class="row1"><span class="gen">{L_BIRTHDAY}:{BIRTHDAY_REQUIRED}</span></td>

#---[ BEFORE, ADD ]---
   <!-- BEGIN switch_edit_birthday -->

#---[ FIND ]---
     <td class="row2"><span class="gen">{S_BIRTHDAY}</span></td>
   </tr>

#---[ AFTER, ADD ]---
   <!-- BEGIN switch_edit_birthday -->
Anmerkung: Die Zeilen die mit dem SET beginnen habe ich der verlinkten usercp_register.php entnommen. Falls jemand diese Änderungen auch vornehmen will, dann sollte bedacht werden, dass diese Zeilen je nach eingebauten Mods unterschiedlich sind/sein können.

Grüße
MagMo
SZiebeck01
Mitglied
Beiträge: 49
Registriert: 28.06.2006 08:55
Wohnort: Lübeck
Kontaktdaten:

Beitrag von SZiebeck01 »

Vielen Herzlichen Dank ,das klappt alles !!!

Tausend dank...
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe phpBB.de-Knigge
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“