Seite 1 von 1

Alterskontrolle druch Birthday mod

Verfasst: 04.08.2006 11:50
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

Re: Alterskontrolle druch Birthday mod

Verfasst: 04.08.2006 12:09
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

Verfasst: 04.08.2006 12:16
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

Verfasst: 04.08.2006 12:22
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

Verfasst: 04.08.2006 12:50
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

Verfasst: 04.08.2006 13:09
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 :-)

Verfasst: 04.08.2006 13:24
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 ?

Verfasst: 04.08.2006 14:46
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

Verfasst: 04.08.2006 15:11
von SZiebeck01
Vielen Herzlichen Dank ,das klappt alles !!!

Tausend dank...