php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.03.2008, 18:59  
Neuer Benutzer
 
Registriert seit: 13.03.2008
Beiträge: 4
Fleur befindet sich auf einem aufstrebenden Ast
Standard Login, eindeutige Zuordnung auf eine Oberfläche

Ich habe mir in den letzten Tagen einen kleinen Login-Bereich zu einer Oberfläche gebastelt (die Oberfläche natürlich auch).
Das ganze läuft so, dass ein Benutzer sich anmeldet. (die DB-Tabelle enthält mehrere Felder id, nickname, passwort und natürlich persönliche Daten...)
Es wird beim Anmelden auch eine Session-ID gebildet die über jeden Link mit weiter gegeben wird. Das gwährleistet ja, dass man dann in der Oberfläche schalten und walten kann ohne rauszufliegen. Bis dahin ist auch alles prima.
Auf dieser Oberfläche gibt es dann ein Formular womit ein Datensatz in eine Tabelle nennen wir sie mal Datensatztabelle (DST)eingefügt wird. Ein weiterer Link in der Tabelle ermöglicht das Ansehen der eingegeben Daten in die DST. Diese können dann auch bearbeitet oder gelöscht werden. Das geht auch alles ohne Probleme, aber bei mehreren Benutzern sollen die jeweiligen ja nur ihre eingefügten Daten sehen.
Meine Frage ist also wie ich es hin bekomme, dass innerhalb der Oberfläche ein Benutzer nur das sieht, was er gemacht hat. Auch bei späterem Login muss ja klar sein, dass nur seine Sachen angezeigt werden.
Fleur ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.03.2008, 19:09  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hallo,
du musst eben in der "Datensatztabelle" zusätzlich ein Feld user_id einfügen, in welches du die jeweilige User-Id (also die ID aus der Tabelle User) einträgst.
In der Session kannst du dir die User-Id merken und jetzt beim selektieren der Datenstäze eben noch die zustätzliche WHERE-Bedingung anhängen: WHERE user_id = $dieid...
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 13.03.2008, 19:16  
Neuer Benutzer
 
Registriert seit: 13.03.2008
Beiträge: 4
Fleur befindet sich auf einem aufstrebenden Ast
Standard

Super da war ich schon auf dem richtigen weg, das habe ich nämlich gemacht, also zumindest versucht
Aber irgendwas ist schief gelaufen...

PHP-Code:
function testpw($id$nickname$passwort) {



global 
$tab;

$check mysql_query("SELECT * FROM $tab WHERE id='$id' AND nickname='$nickname' AND password='$passwort'");

// Es wird eine Anfrage an die database gesendet, wo die daten der database entsprechen... 
Hier müsste das dann glaube ich hin oder? Aber wie genau?

PHP-Code:
//////Der   Hauptcode///////



//////////////////////////

if($mode == "logout")

{

session_destroy("tut");

setcookie(session_name(), session_id(),

time() - 60*10); // setzt cookie auf MINUS 10min..sodass der keks gelöscht wird



formular("Bitte neu einloggen!"); // Formular wird neu geldaen

}

elseif(
session_is_registered("tut"))

{

testpw($login[id], $login[nickname], $login[passwort]); // führt die Funktion mit den Variabeln aus der Session aus.



}



elseif(isset(
$_name)

&& isset(
$_pass)) {

$get mysql_query("select * from $tab where

nickname='$_name' AND passwort='$_pass'"
); // Es wird eine Anfrage an die database gesendet, wo die daten der database entsprechen...



if(mysql_num_rows($get))

// wenn die Anfrage erfolgreich war....

$login mysql_fetch_array($get);



session_register(login); //Registriert den array

setcookie(session_name(),session_id(), time() + 60*10); // setzt cookie auf 10min 
hier müsste ich dann glaube auch noch was ändern oder?

meine weitere Frage: muss ich im Formular dann auch das user_id Feld einbauen oder füllt der das dann über die Session?
Fleur ist offline  
Alt 13.03.2008, 19:46  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Da hast du ja ein schönes durcheinander
Zunächst mal würde ich das ganze Session-Handling anders machen. Ohne setCookie() ohne session_is_registered etc.... : Einfach session_start() und die Super-Globale $_SESSION verwenden.

Bei einem Login schaust du in deiner User-Tabelle nach ob die Kombinatino aus Username und Passwort ok ist und falls ja schreibst du die ID aus der Tabelle in die Session ($_SESSION['user_id'] = $row['id'] ...). Damit kannt du dann später arbeiten.
So musst du auch in deine Formulare kein user_id-Feld einbauen (was auch keine gute Idee wäre - da könnte ja jeder rummanipulieren) sondern kannst immer wenn du die User-Id des eigneloggten Users für irgendwas brauchst darauf zurückgreifen....
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 13.03.2008, 19:56  
Neuer Benutzer
 
Registriert seit: 13.03.2008
Beiträge: 4
Fleur befindet sich auf einem aufstrebenden Ast
Standard

Ok, vielen Dank erst einmal, ich will mal gucken, dass ich das ein bisschen umgebaut bekomme, vermutlich wieder nur mit vielen kleinen Fehlern, die ich alle erst wieder in Ruhe suchen muss, aber es wird auf die Dauer schon klappen. Ich habe schließlich noch ein bisschen Zeit das ganze fertig zu machen.
Fleur ist offline  
Alt 17.03.2008, 15:38  
Neuer Benutzer
 
Registriert seit: 13.03.2008
Beiträge: 4
Fleur befindet sich auf einem aufstrebenden Ast
Standard

So ich habe es jetzt dank der Hilfe eines guten Freundes geschafft. Wir haben das ganze nochmal neu gemacht, bisschen aufwendiger und mit noch einigen Wünschen, die mir noch auf dem Herzen lagen. Aber danke für die Hilfe, das war auf jeden Fall der richtige Tipp mit der User_id
Fleur ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Login erstellen coraplanet PHP Tipps 2008 33 21.04.2008 16:49
Forum Login per curl leb0rtran PHP Tipps 2008 1 19.03.2008 12:47
Etwas komplexerer Login --> Keine Angst, Suche benutzt dethlef14 PHP Tipps 2006 7 02.10.2006 00:35
.htaccess Login über HTML Login Felder gestalten php1 PHP-Fortgeschrittene 2 09.08.2006 13:53
Session Logout Login Navigation TailerD PHP Tipps 2006 10 24.06.2006 17:12
Frage zu Login Kein Genie PHP Tipps 2006 5 16.06.2006 12:34
phpBB Loginscript in eigenes Login Script einbinden 2wuck PHP Tipps 2007 4 19.12.2005 23:10
Problem mit Login Script PHP Tipps 2007 4 15.11.2005 17:29
problem mit login PHP Tipps 2005-2 11 28.10.2005 14:10
[Erledigt] Login, LogIn, Anmelden, Einloggen -> ??? Off-Topic Diskussionen 20 14.07.2005 11:01
[Erledigt] Windows XP Login Namen verwenden? PHP-Fortgeschrittene 14 17.03.2005 15:37
login mit session id PHP Tipps 2005 10 26.01.2005 12:32
[Erledigt] Zurück-Button beim Login PHP Tipps 2005 7 25.01.2005 17:22
login überprüfung PHP Tipps 2004 7 23.08.2004 11:21
Login PHP Tipps 2004 9 13.08.2004 11:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php zuordnung login

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum