• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Benutzerprofile einsehen

Barzul

Mitglied
Hi.
Ich habe mal wieder eine -wahrscheinlich zu dämliche- Frage.

Ich habe ein Usercenter für meine benutzer etc. programmiert, in dem sie
Ihr Profil ändern können etc. Nun meine Frage:

Man muss es ja irgendwie hinkriegen, dass, wenn man auf einen profillink von einem anderen benutzer klickt, genau auf SEINE seite kommt. nur, wie kriege ich für jeden benutzer einen eigenen Profillink?

mit $_GET? aber das wär nen bisschen komisch, wenn eine Charakterbeschreibung 5000 Zeichen hat und das als url ausgegeben wird >.>

mfg

Barzul
 
Jeder Benutzer wird wohl eine Identifikation besitzen, oder? Normalerweise mittels einer ID, die, wie die Beteutung schon sagt, einzigartig ist.

Also einfach profil.php?userid=5 .... Dann SELECT * FROM `users` WHERE ID=.... usw.

Meinst du sowas?

Mfg
 
genau^^ aber wie kriegt man das hin >.> der link soll ja automatisch erscheinen..tut mir leid, falls das zu eindeutig ist, hab nicht gut geschlafen xD

mfg
 
also..müsste ich jetzt sagen wir mal..beim benutzerprofil hinschreiben:

<a href="benutzerprofil'".$_SESSION['user_id']."'.php">Dein profil</a>

hinschrieben oder wie? >.>
 
also..müsste ich jetzt sagen wir mal..beim benutzerprofil hinschreiben:

<a href="benutzerprofil'".$_SESSION['user_id']."'.php">Dein profil</a>

hinschrieben oder wie? >.>
Eher als GET-Var, damit man dies damit abfragen kann, zb:
echo '<a href="benutzerprofil.php?id='.$_SESSION['user_id'].'">Dein profil</a>';

Und dann mittels $_GET['id'] in der benutzerprofil.php die Daten der ID ermitteln und wiedergeben. (Sicherheitsmaßnahmen bezüglich SQL Inject beachten)

Mfg
 
ja. nur das problem ist, wenn ein anderer user in das profil von demjenigen sehen will, müsste diser doch online sein? zumindest muss ja in dem Link zum profil automatisch erscheinen.

//Edit: Ah moment mal^^ klar: auf der Seite, bei der man auf den Link klicken kann, muss man einfach die ids von ALLEN usern mit abfragen >.> und dann ausgeben lassen xD ok danke dir
 
Hm..Ich denke, ich poste mal in diesen Thread hiuer, um keinen neiuen Aufmachen zu müssen. Also: ich hab noch ein Problem:

Ich möchte jetzt die Daten des Benutzers ausgeben lassen, aber es kommt nur folgendes herraus:

//EDIT: Die seite heisst profil.php?id='".$_SESSION['user_id']"'

Dies ist das Profil von o. (Müsste eigentlich kendo heisen)
Steckbrief
Vorname: n (eigentlich Kendo)
Nachname: n (eigentlich Aburame)
Geschlecht: t (Eigentlich Männlich)
Alter: e (Eigentlich 16)
Angeh�rigkeit: a (Eigentlich Kiri)
-------------------
Charakterbeschreibung:

r (eigentlich ~-+-~Kendo~-+-~)

Charaktergeschichte:

s (Eigentlich nichts^^)


Hier der Quellcode:
PHP:
<?php
include ("checkuser.php");
//Datenbankverbindung

$connectionid = mysql_connect("localhost", "username", "pw");
mysql_select_db ("dbname", $connectionid);

//Variablen
$id = $_GET['id'];
$sql = array();
$sql[1] =  "SELECT
                name,
                vorname,
                nachname,
                old,
                beschreibung,
                geschichte,
                geschlecht,
                dorf
            FROM
                snk_user
            WHERE
                id = '".$id."'";
$result = mysql_query($sql[1]);
$name = mysql_fetch_row($result);

?>
und dann weiter unten im html-teil:
PHP:
Dies ist das Profil von <?php echo $name[1]; ?>.<br />
<b>Steckbrief</b><br />
<b>Vorname: </b><?php echo $name[2];?><br />
<b>Nachname: </b><?php echo $name[3];?><br />
<b>Geschlecht: </b><?php echo $name[7];?><br />
<b>Alter: </b><?php echo $name[4];?><br />
<b>Angehörigkeit: </b><?php echo $name[8];?><br />
-------------------<br />
<b>Charakterbeschreibung:</b><br /><br />
<?php echo $name[5]; ?><br /><br />
<b>Charaktergeschichte:</b><br /><br />
<?php echo $name[6]; ?><br /><br />
 
Zuletzt bearbeitet:
Ich habe das Gefühl, $name enthält den String "Donnerstag".

Mach mal ein print_r($name) oder ein echo($name) drauf.
 
oh gott bin ich doof >.> ich hab davor noch ein Deutsches datumsscript und da hab ich die variable name schon >o< danke ;)
 
Ich hab's im ersten Moment für 'nen ziemlich guten Scherz gehalten. :)

Noch ein paar "Kleinigkeiten":

- Arrays beginnen normalerweise beim Index 0.
- Alle Benutzereingaben in Queries müssen (!) escapet werden. (-> SQL Injection)

Code:
WHERE id = '".mysql_real_escape_string($id)."'";

- Analog dazu sollten alle Daten bei Ausgabe durch htmlspecialchars oder htmlentities geschickt werden. (-> XSS)

- <b> und <i> sind veraltet (heißen jetzt mehr oder weniger <strong> und <em>)

Falls du das alles schon wusstest, es aber hier der Einfachheit halber weggelassen hast: Egal, kann man nicht oft genug sagen.
 
Ich hab's im ersten Moment für 'nen ziemlich guten Scherz gehalten. :)

Noch ein paar "Kleinigkeiten":

- Arrays beginnen normalerweise beim Index 0.
- Alle Benutzereingaben in Queries müssen (!) escapet werden. (-> SQL Injection)

Code:
WHERE id = '".mysql_real_escape_string($id)."'";

- Analog dazu sollten alle Daten bei Ausgabe durch htmlspecialchars oder htmlentities geschickt werden. (-> XSS)

- <b> und <i> sind veraltet (heißen jetzt mehr oder weniger <strong> und <em>)

Falls du das alles schon wusstest, es aber hier der Einfachheit halber weggelassen hast: Egal, kann man nicht oft genug sagen.

@mermshaus
Ich hab alle Eingaben so abgesichert, wie du es mir geschrieben hast
PHP:
$id= htmlspecialchars(mysql_real_escape_string($id));

Nur wenn jemand ein Bild in den Beitrag einfügt, hab ich das weggelassen
Weiss nicht, ob da was passieren kann
Sind ja nur Bilddateien
 
Also,

- mysql_real_escape_string, bevor die Daten in die DB geschrieben werden,
- htmlspecialchars (oder, bei Nicht-UTF-8-Seiten, alternativ htmlentities), bevor die Daten im Browser ausgegeben werden.

Nicht beide Befehle gleichzeitig.[1] Lies dir im Zweifel auch die Beschreibungen auf php.net durch.



[1] Gut, man kann auch bereits mit htmlspecialchars oder htmlentities aufbereitete Daten in die DB schreiben (muss man dann nicht immer wieder bei der Ausgabe machen), aber das ist meiner Meinung nach selten sinnvoll.
 
Ja, Danke

Was ist mit Bildern, da braucht man keine Absicherung (bezügl. SQL-Injection) , oder ??
Soll ich die Bilder in der Datenbank oder in einer extra Datei speichern
 
Ja, Danke

Was ist mit Bildern, da braucht man keine Absicherung (bezügl. SQL-Injection) , oder ??
Generell gilt: Alle Benutzereingaben sind schädlich! Darum sollte man da gezielt prüfen.
Wenn die Daten von einem anderen Benutzer eingetragen wurden, solltest du zb. auf BBCode artige Methoden zurückgreifen, um HTML-Tags ganz auszuschliessen.

Wenn die Daten von DIR kommen, dann brauchst du das natürlich nicht.

Soll ich die Bilder in der Datenbank oder in einer extra Datei speichern
Bei Binäre Daten(zb Bilder) in einer SQL-Datenbank würde ich abraten. Diese Methode verbaucht große Mengen an Ressourcen. Bilder sollten als eigene Dateien benutzt werden.

Mfg
 
Zurück
Oben