[SUCHE] Benutzterprofil TUT

  • Hallo Leute,

    ich suche und suche schon seit mehreren Stunden ..
    Ich google mir die Hände blutig !
    Daher wollte ich hier nun mal fragen ..
    ich hatte schon einige Ergebnisse bei meiner Suche.,
    Jedoch alle von einer anderen "Sorte".
    Was ich suche ist eine Eklärung zum Anlegen von Benutzterprofilen.
    Mithilfe von $_GET['id'].
    Also ich möchte die ID vom Benutzter aus einer Datenbank auslesen
    und diese dann als Link verwenden. Nun weiß ich bloß nicht, wie
    ich den Inhalt jedes Benutzers auf eine andere Seite bekomme :s
    Irgendwelche Codesnipsel waren für mich sehr unverständlich.
    Das Quanten-Tut über $_GET habe ich zwar verstanden mich meinem Ziel aber nicht näher gebracht :s

    Weiß da jemand was oder hat einen Link der sowas genau erklärt? :)

    LG

  • Tut mir leid, aber ich verstehe deine Frage ganz und gar nicht. Kannst du versuchen sie noch einmal etwas verständlicher zu formulieren? Geh immer davon aus dass wir gar nichts von deinem Problem wissen, wir brauchen also eine etwas verständlichere Formulierung davon, was du suchst.

  • Ich könnte mich immer kaputtlachen, wenn jemand behauptet, er hätte stundenlang gegoogled, das glaube ich einfach nicht,

    Und was hat $_GET mit einem Benutzerprofil zu tun? Nix, aber auch absolut garnix!

    Dein Problem ist, dass du die Grundlagen anscheinend immer noch nicht gelernt hast.

    Und nochwas: Infos zu Parameterübergabe per URL findet man massenhaft im Netz. Auch die Doku (ja, die gibt es wirklich) kann da weiterhelfen.

  • Ich habe sehr lange gegooglet und immer nur Probleme von Leuten gefunden die etwas falsches im Script hatten und immer verschiedene Scripts desswegen hatte ich jetzt hier höflich nach einem Tut dafür gefragt.
    Was GET mit einem Benutzterprofil zu tun hat .. Nichts, habe ich auch nicht behauptet,

    Zitat

    Also ich möchte die ID vom Benutzter aus einer Datenbank auslesen
    und diese dann als Link verwenden.


    Hab von Tobse einen Link bekommen, danke an dieser Stelle :)

    Und Dokus habe ich 1 Video auf YouTube gefunden...
    27 Minuten wird man dort belastet mit einer mikroleisen Stimme und mehr Vistafehlermeldungen als alles andere.
    Da lern ich auch nichts von.

    Grundlagen von PHP hab ich mittlerweile RELLATIV gut drauf.
    Das Gröbste aufjeden :)

  • Grundlagen von PHP hab ich mittlerweile RELLATIV gut drauf.
    Das Gröbste aufjeden :)


    Nein, hast du definitiv nicht! Denn dass, was du willst sind nur ein paar Zeilen Quellcode und gehört ebenfalls zu den Grundlagen!!!

    Außerdem mache ich jede Wette, das man hier im Forum ähnliches finden kann. Sowas habe ich hier schon garantiert mehrfach geschrieben. Aber bitte, auch noch mal für dich:

    Ungetestet!!!

    Keine 5 Minuten braucht man dafür, wenn man die Grundlagen kann.

  • Nicht direkt ..
    Ich will ja das jeder User per URL mit seiner ID sozusagen angesprochen wird.
    Peter hat ID 10 also http://www.domain.de/user/index.php?10
    Susanne hat ID 11 also http://www.domain.de/user/index.php?11

    Wie kriege ich das nun hin wenn sich jemand einloggt (auf der login.php wird das Formular ausgewertet ..)
    und bei Erfolg soll der Benutzer direkt auf http://www.domain.de./user/index.php?SEINEID weitergeleitet werden.
    Also die index.php soll ein Profil darstellen und durch die URL soll sich jedes Profil halt sozusagen den Informationen aus der Datenbank anpassen wie Alter, Name usw.
    Ich kann das leider nicht genau erklären, da ich mich mit $_GET noch nicht beschäftigt habe ..

    PHP
    header('Location: /./user/index.php'$_GET['id'])

    oder wie ? :s
    Und dann index.php als normales Profil gestalten und Informationen ausgeben lassen indem man abfragt welche ID "$_GET" besitzt und dann die Informationen von der Zeile auslesen lässt ?

    2 Mal editiert, zuletzt von Bleistift (2. Mai 2012 um 19:46)

  • Was ist denn die Schwierigkeit? Mach einfach ne Weiterleitung per Header oder, je nach dem wie dein Login-Formular aufgebaut ist, halt direkt mit der <form action="get">. Dann kannst du den entsprechenden Datensatz auslesen (via "SELECT * FROM tabellennahme WHERE id = '$_GET[id]'") und die ausgelesenen Daten wie gewohnt verwenden. Das sind allerdings wirklich absolute Grundlagen im Umgang mit Datenbanken und Formularen...

  • Sowas macht man überhaupt nicht per Get-Parameter, sondern per Session!

  • Ach, den Teil hab ich ausgelassen, ja =) Denk doch mal dran was passiert, wenn jetzt jemand einfach mal die URLs mit id=1, id=2, ..., id=n durchprobiert. Sicher ist anders...

  • Ehm ich hab Session mit drin ...
    Und überall wird auch abgefragt ob der Benutzter eingeloggt ist oder nicht. :)

    Ich möchte eigentlich nur erklärt haben, wie ich das genau machen muss..
    Ich hätte es jetzt so gemacht:
    Loginformlar (method=get) auf index.php
    Nach submit wird man auf die login.php weitergeleitet, wo geprüft wird ob alles korrekt ist.
    Von dort soll man direkt auf sein eigenes Benutzterprofil weitergeleitet werden.
    Das Profil ist die index.php im Ordner "user".

    Damit selectiere ich die ID:

    PHP
    $id = mysql_query("SELECT `id` FROM `member` WHERE `mail`='$member' AND `password`='$pw' AND `status`='ok'", $db);

    Und die Weiterleitung:

    PHP
    header('Location: /./user/index.php?id='.$id.);

    richtig soweit oder falsch ?

    Und wie kriege ich das jetzt nun hin, dass wenn man die index.php?id=ID im Ordner "user" aufruft, die gewünschten Informationen über den Benutzter erscheinen ..
    Mit $_GET dann die ID aus der URL ziehen und die Informationen aus der Datenbank selectieren oder wie ?
    Und wie ziehe ich die ID aus der URL ?

    Einmal editiert, zuletzt von Bleistift (2. Mai 2012 um 20:15)

  • richtig soweit oder falsch ?


    FALSCH!!! Wir haben dir doch schon erklärt, dass man das nicht über die URL regelt, oder nicht? Warum bestehst du unbedingt auf diese Sicherheitslücke? Oder ignorierst du aus Prinzip hilfreiche Infos?
    Ungetestet!!!

  • Nach deinem Beispiel wird man ja auf die profil.php weitergeleitet..
    Und dort werden dann die Informationen aus der Datenbank gelesen.. Ok
    Aber das kann ich ja auch schon ..
    Ich möchte ja jedem User der sich registriert sein eigenes Profil geben,
    damit auch andere User deren Profil aufrufen können.
    Ruft Peter also profil.php auf so findet er seine Infos.
    Will er auf das Profil von Susanne gehen sieht er das ja nicht weil nur die eignen Daten kommen ..

  • Na, geht doch. Es geht also nicht darum, das EIGENE Profil zu sehen, sondern darum, Userprofile allgemein anzuzeigen. Da ist GET schon eine Möglichkeit.

    Du hast also sowas in der Art: profile.php?id=10

    Jetzt kannst du, wie ja schon in einem älteren Post von mir beschrieben, im Script mit $_GET['id'] auf diese Variable zugreifen. Also z.B. so:

    PHP
    $profile_id = mysql_real_escape_string($_GET['id'])
    
    
    $sql = "SELECT * FROM tabellenname WHERE id='" . $profile_id . "' LIMIT 1"

    Diesen SQL-Befehl kannst du dann wie gewohnt verwenden und die Benötigten Daten darstellen. Denk einfach daran, dass GET-Variablen immer als gefährlich zu behandeln sind.

    EDIT: Hab übersehen dass Bandit schon ein entsprechendes ausführliches Beispiel gepostet hat

  • Ok ich hoffe ich habs jetzt richtig :s

    login.php (formulareingabe wird überprüft + weiterleitung):

    index.php (im ordner "user"):

    PHP
    <?php
    if (($_SESSION['logincheck'] == 'dienied') OR (!isset($_SESSION['logincheck']))) {
                     echo 'Du musst eingeloggt sein.';
             }
    else if ($_SESSION['logincheck'] == 'successful') {
    $id = mysql_real_escape_string($_GET['id']);
    }
    ?>

    Und dann alles was ich ausgeben will normal selectieren mit

    PHP
    SELECT ... FROM ... WHERE `id`='$id'

    ?

    Einmal editiert, zuletzt von Bleistift (2. Mai 2012 um 21:03)

  • Beim ersten Überfliegen sind mir schon viele Dinge aufgefallen:

    • Daten per Post einfach mal so an die DB schicken ist fahrlässig
    • Die Passwörter stehen im Klartext in der DB
    • Wieso 2 Selects mit den gleichen Bedingungen?
    • Wieso 2 Updates mit den gleichen Bedingungen?
    • Nicht eine einzige Fehlerprüfung nach mysql_query
    • HTTP/1.1 verlangt einen absoluten URI inklusive dem Schema, Hostnamen und absoluten Pfad als Argument von Locatiozn
    • Ein Passwort hat in einer Session nichts zu suchen.

    Ich schätze mal, eine genauere Überprüfung halten deine Scripte aktuell nicht stand.

    PS: das heißt denied und dienied

    2 Mal editiert, zuletzt von Bandit (2. Mai 2012 um 21:05)

  • Ok ich würde sie als kleine Anfängerfehler bezeichnen wenn es dich nicht stört ? :s
    Danke für die Tipps.
    Aber wäre das Schema für die Profile so nun korrekt ?
    Es gibt keine doppelten Selects oder Updates 8| Sind alles für verschiedene Spalten die ich einzelnd brauche.
    Aber das geht auch mit $row, ich weiß aber ich wollt erstmal so halten :s :)

    Richtig oder Falsch ?

  • Richtig oder Falsch ist hier nicht mehr unbedingt die richtige Frage. Funktionieren sollte es, also nicht falsch. Aber als Richtig würde ich es auch nicht bezeichnen, denn jemand der sich auch nur ein bisschen auskennt hat deine Daten innert kürzester Zeit ausgelesen oder gelöscht.