2016-04-02 6 views
1

Ich möchte (wenn möglich) wissen, wie man eine Benutzerprofilseite einem anderen Benutzer auf einer Website zur Verfügung stellt. Zum Beispiel hat ein Benutzer eine Profilseite, dann kann ein anderer Benutzer auf dieser Seite landen und sie und den Inhalt ansehen.Profilseiten erlauben (von allen)

Im Moment kann ich die Profilseite nur mit dem Benutzer verknüpfen, zu dem sie gehört. Ich bin mir nicht sicher, welche Schritte als nächstes und in welcher Reihenfolge für einen anderen Benutzer angezeigt werden sollen. Unten ist ein Codeschnipsel, den ich habe, der den Benutzer zu seinem eigenen Profil nimmt, das die SESSION für sie einzigartig ist und deshalb keinen anderen Benutzer erlaubt, der eingeloggt ist, um die Profilseite anzusehen.

Ich verstehe ich kann einen Get_Request verwenden, habe aber keine Ahnung, wie die ID des Benutzers zu setzen, die Ich mag würde, um als ein GET-Variable, um zu sehen

Es wäre toll, wenn jemand könnte Zeigen Sie mir in die richtige Richtung ODER zeigen Sie mir ein Beispiel mit Code. Ich benutze MySQL und das neueste PHP.

if(isset($_SESSION['CurrentUser'])){ // if session is true 

// print to dash welcome + username 
      echo "Welcome to the website: ".$_SESSION['CurrentUser']; 

// append the user's name to the URL for profile page 
      echo nl2br ("\n<a href=profile.php?id=".$_SESSION['CurrentUser'].">My Profile</a>");/
     } 
     else{ 
      echo ("not logged in"); 
     } 

Mein $_SESSION['CurrentUser'] in meiner Abfrage-Seite definiert ist, die den Benutzernamen und das Passwort überprüft, $_SESSION['CurrentUser'] = $_POST["username"];

Antwort

0

Dafür ich eine Benutzerliste verwenden, in dem jeder Eintrag verknüpft ist „profile.php? Ref = BENUTZER_ID

user_list

<?PHP 
    $query = "SELECT * FROM users"; 
    $result = mysql_query($query); 
    if (!$result){ die('Ungültige Abfrage: ' . mysql_error()); } 
    while ($output = mysql_fetch_array($result, MYSQL_ASSOC)){ 
     ?> 
     <tr> 
      <td class="text-center"><?PHP if(!empty($output['user_avatar'])){ echo '<a href="./profile?req='.$output['user_id'].'"><img height="40px" src="data:image/jpeg;base64,'.base64_encode($output['user_avatar']).'"/></a>'; } else { echo '<img height="40px" src="./style/img/avatar_default.jpg"/>'; }?></td> 
      <td class="text-center"><a href="./profile?req=<?PHP $output['user_id'] ?>"><?PHP echo $output['user_name'] ?></a></td> 
      <td class="text-center"><?PHP echo $output['user_last_activity'] ?></td> 
      <td class="text-center"><?PHP echo $output['user_register_date'] ?></td> 
     </tr> 
     <? 
    } 
?> 

Wenn Sie auf den Benutzernamen klicken Sie wurde umgeleitet zur Profilseite des Benutzers (profile.php?ref=$output['user_id'])

wenn die profile.php heißt ich überprüfen, ob ein $ _SESSION [ ‚user_id‘] gesetzt und die URL hat keine erf Parameter, wenn sie wahr ich $ gesetzt erf mit $ _SESSION [ 'user_id'] und sonst setze i $ req mit dem erf Parameter aus der URL $ _GET [ 'req']. Jetzt kann ich die Abfrage mit $ req in der where-Klausel einreichen

<?PHP 
    if(isset($_SESSION['user_id']) && !isset($_GET['req'])){ 
     $req = $_SESSION['user_id']; 
    } elseif(isset($_GET['req'])) { 
     $req = $_GET['req']; 
    } 

    $result = mysql_query("SELECT * FROM users WHERE user_id = '".$req."'"); 
    $user = mysql_fetch_array($result, MYSQL_ASSOC); 
?> 

Abschließend die profile.php kann mit einem Parameter und ohne erf Parameter aufgerufen werden.

Ich setze die $ _SESSION ['user_id'] während der Anmeldung nach der Benutzerüberprüfung.

+0

Können Sie mir helfen, da ich immer noch nicht sicher bin, welche Schritte auszuführen sind. Muss ich die zuletzt eingefügte Zeile der ID abrufen, wenn sich ein Benutzer registriert und diese später als GET REQUEST verwendet? –

+0

Werfen Sie einen Blick auf meine Antwort. Ich habe es detaillierter gemacht. Hoffe, es hilft – DestinatioN

+0

Vielen Dank für die Erziehung, ich habe die obige Demonstration implementiert und Ihre Antwort angewendet, jetzt funktioniert es, Danke. –

0

Ihre korrekte so weit, dass nur ein Benutzer sollte die Rechte an der Seite besitzen. Aber der Seitenbesitzer und die Administratoren haben das Recht, die Seite zu sehen und auch ein Kontrollfeld zu sehen, das es ihnen erlaubt, jemanden auszusetzen/zu sperren oder jemanden zu einem ausgezeichneten Mitglied zu machen.

Der Websitebesitzer/-administrator überschreibt diese Tabelle mit einer Master-Tabelle 'access_rights'. Im Wesentlichen können sie alles basierend auf ihrem Rang/ihrer Rolle sehen. Was fehlt, ist eine Tabelle "view_status" auf Benutzerebene, die 'user_id' als Primärschlüssel hat, um sie mit vorhandenen Tabellen zu verknüpfen. Diese Tabelle hätte boolesche Spalten wie:

'is_public', 'is_private', 'is_family', 'is_friends', 'is_member' usw. Diese Tabelle gewährt nur die Anzeigeberechtigungen - nicht mehr. Möglicherweise benötigen Sie eine Geschwister-Tabelle, um zu definieren, welche sie auf Ihrer Seite sehen können.

Eine andere Tabelle, die ein Kind von diesem sein würde, definiert, ob ein Freund oder Mitglied oder Familie Kommentare auf Ihrer Seite, etc. schreiben kann. PHP-Code führt alle Gegenprüfungen zwischen Tabellen durch, um eine endgültige Ja/Nein-Schlussfolgerung zu ziehen. Diese Datenbanken können komplex werden, weil menschliche Beziehungen komplex sind.