Seite 1 von 1

Profil _eines_ Users verstecken?

Verfasst: 07.02.2004 21:23
von Root007
Hi,

wie kann ich das Profil eines einzelnen Users verstecken bzw. für alle anderen nicht erreichbar machen?

In der Mitgliederliste und bei View-Online "filter" ich diesen User mit dem um " AND user_id <> 4444" erweiterten sql-Kommando.

Wenn jedoch jemand aufmerksam die Mitgliederliste durchgeht, könnte er auf die fehlende ID kommen, und diese dann selbst eingeben (also manuell im Browser):

Code: Alles auswählen

http://www.forum.lan/profile.php?mode=viewprofile&u=4444
und schon hat er ihn... und genau das würde ich gerne verhindern. Dann sollte irgendwie ne Meldung kommen von wegen dass der User nicht existiert. Geht das?

Kann mir da jemand helfen?

Gruß
Root

Edit: @itst: Was habt ihr hier gemacht dass die Meldung "Der User existiert nicht" kommt wenn man wie oben eine unsinnige Zahl eingibt?

Re: Profil _eines_ Users verstecken?

Verfasst: 16.02.2004 12:12
von Acid
Root007 hat geschrieben:Edit: @itst: Was habt ihr hier gemacht dass die Meldung "Der User existiert nicht" kommt wenn man wie oben eine unsinnige Zahl eingibt?
Mit folgendem Code in der usercp_viewprofile.php (die erste Zeile ist die Zeile unter welche der neue, blaumarkierte Code eingefügt werden müsste).
$profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]);

if( $profiledata == false )
{
message_die(GENERAL_MESSAGE, 'Der User existiert nicht');
}
Dort könntest du dann noch die ID des speziellen Users angeben.
$profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]);

if( $profiledata == false || $profiledata['user_id'] == '444' )
{
message_die(GENERAL_MESSAGE, 'Der User existiert nicht');
}

Re: Profil _eines_ Users verstecken?

Verfasst: 16.02.2004 17:43
von Root007
Ooooh, super - eine späte Antwort, aber dafür um so besser! Danke!!

Funktioniert natürlich genau so wie ich mir das vorgestellt habe :)

Eine Verständnisfrage hab ich jetzt allerdings noch:
Acid hat geschrieben:

Code: Alles auswählen

$profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]);

if( $profiledata == false || $profiledata['user_id'] == '444' )
{
	message_die(GENERAL_MESSAGE, 'Der User existiert nicht');
}
In der ersten Zeile werden ja irgendwie die Userdaten gelesen?! - egal mit welcher ID.

Und danach kommt erst die Bedingung, und wenn eins der beiden Bedingungen zutrifft, wird abgebrochen. Der Code geht ja so, aber irgendwie wäre es mir logischer, wenn zuerst die Abfrage durchgeführt wird, und dann - falls "erlaubt" - die Userdaten gelesen werden.

Anders gesagt:

Code: Alles auswählen

if ( $profiledata == false || $profiledata['user_id'] == '444' )
{
		message_die(GENERAL_MESSAGE, 'Der User existiert nicht');
}
else
{

		$profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]);
}
Wird wahrscheinlich ne saudumme Frage sein... aber ich hab grad keinen Schimmer :roll:

Verfasst: 16.02.2004 18:17
von netzmeister
Hallo,

Code: Alles auswählen

if ( $profiledata == false || $profiledata['user_id'] == '444' )
{
      message_die(GENERAL_MESSAGE, 'Der User existiert nicht');
}
else
{
      $profiledata = get_userdata($HTTP_GET_VARS[POST_USERS_URL]);
}
Du fragst oben Daten aus "$profiledata" ab, jedoch machst Du erst im else-Fall
die Zuweisung das überhaupt Daten drinstehen. ;-)

Gruß netzmeister

Verfasst: 16.02.2004 19:21
von Root007
Ähm, stimmt eigentlich... Tja, überredet *g* (schon wieder was gelernt)

Thx!