Beim Klick auf ein anderes Profil wechselt der User
Eingetragen von 1000 (764)
am 18.07.2011 - 23:51 Uhr in
am 18.07.2011 - 23:51 Uhr in
Ich habe zuerst gedacht es liegt am devel Modul, dass wenn ich ein Profil eines Users anklicke ich als dieser angemeldet bin. Aber dem ist nicht so. Ich habe das Modul devel deinstalliert. Leider habe ich immer noch dieses Problem. Woran kann das denn liegen?
- Anmelden oder Registrieren um Kommentare zu schreiben
Du hast in irgendeinem
am 19.07.2011 - 00:38 Uhr
Du hast in irgendeinem (eigenen) PHP-Code (den Du verwendest) einen Fehler drin.
Das selbe Problem hatte ich Anfang 2010, als ich nicht so recht verstand was ich überhaupt mache, auch.
Erzeugst Du den Link für den User durch eigenen Code? Wenn ja - schau dort nach - wenn nicht - überprüfe alle Blocks/Views/tpls die auf dieser Seite geladen werden und wo Du eigenen Code verwendest.
Ich hatte mir den fehlerhaften Code, der bei mir damals zu diesem Problem führte, irgendwo notiert aber ich finde ihn leider nicht mehr.
Wenn Du den Fehler nicht sofort findest, musst Du jeden Block/View etc. einzeln deaktivieren/ausblenden und dann die Seite nochmals reloaden. So kannst Du nach und nach testen ob Du immer noch zum anderen User switchst bzw. wodurch der Fehler hervor gerufen wird.
Edit:
Der Fehler liegt in einem Code indem Du "global $user" verwendest!!!
Ich habe den fehlerhaften
am 19.07.2011 - 01:03 Uhr
Ich habe den fehlerhaften Code identifiziert. Aber wieso? Außerdem ist der Code sinnvoll für mich, da ich das Layout damit je nach Rolle des Profilbesitzers etwas anders darstellen kann.
<?php
if (arg(0) == 'user' && is_numeric(arg(1))) {
$user = user_load(arg(1));
if (in_array('Standardprofil', $user->roles))
{
?>
<div style="padding-top:10px;"></div>
<?
}
}
?>
$user-Variable
am 19.07.2011 - 07:30 Uhr
Hallo.
Ich habe den fehlerhaften Code identifiziert. Aber wieso? Außerdem ist der Code sinnvoll für mich ...
<?php
if (arg(0) == 'user' && is_numeric(arg(1))) {
$user = user_load(arg(1));
...?>
Sinnvoll ist der Code, jedoch weist Du damit der globalen Variablen
$user
ein neues Objekt zu. Und zwar das eines Benutzers, den Du mittels [api:user_load:6] lädst. Und da$user
gleichbedeutend mit dem aktuell angemeldeten Benutzer ist, wechselt Drupal zu diesem.Wann immer Du ein User-Objekt laden willst, verwende
$account
(oder einen ähnlichen Namen) und nicht$user
: