php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.05.2005, 11:49  
Gast
 
Beiträge: n/a
Standard Zumindest kompliziert für einen Anfänger *Grins*

Hey Leute, aaaalso:

Ich bastle immernoch an einem Loginscript rum. Habe Sessions usw. schon eingebaut. nun möchte ich, dass wenn man sich eingeloogt hat auf Profil anzeigen klicken kann und dort seine eigenen daten sieht.

Nur, wie mache ich das?

ich hab mir gedacht, da ich die session "nickname" bereits habe, könnte ich doch einfach ein SELECT-Befehl schreiben, der den nickname sucht.
dann gebe ich irgendwie aus, was alles in der reihe steht. also z.b. vorname u. nachname. naja vom theoretischen her denke ich ist das gut so, nur wie setzte ich es ins praktische um? Hier mal ein wenig code:

login:

Code:
<?php
//Verbindungsaufbau
$db = mysql_connect ($mysql_host, $mysql_user, $mysql_pw) or die (mysql_errno().":". mysql_error());
mysql_select_db($mysql_dbname, $db) or die(mysql_errno().":". mysql_error());


$sql = "SELECT
            `nickname`,
            `kennwort`
        FROM
            `user`
        WHERE
            `nickname` = '".$_POST['nickname']."'";

$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

if($row['kennwort'] == md5($_POST['kennwort']) ){
 session_start();
 session_register('nickname');
 $nickname =  $_POST['nickname'];
 header("Location: loginok.php");
}

else {
	header("Location: fehler0001.php");
}

?>
naja nun die frage, wie das script nun aussehen soll.

Vielleicht weiß ja jemand was.


MfG,
Michi[/code]
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.05.2005, 11:55  
Gast
 
Beiträge: n/a
Standard

Die session*register-Funktionen sind veraltet, benutze $_SESSION, siehe dazu http://de3.php.net/manual/de/functio...n-register.php

Warum überprüfst du nicht gleich das Passwort im Select?

Ich würde die User-ID in der Session speichern und damit arbeiten:
PHP-Code:
   session_start();
   if (isset(
$_SESSION['ID']))
   {
       
$query "Select dies, das, welches from tabelle where id=" $_SESSION['ID'];
   } 
Gruß
phpfan
 
Alt 26.05.2005, 11:56  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

session_register('nickname'); ist veraltet und wird nicht mehr gebraucht
-> nutze die SuperGlobal $_SESSION :


session_start()
$_SESSION['variablenname'] = 'inhalt';

abgsehen davon lässt der code den du da oben benutzt eine mysql-injection zu, teste mal was passiert wenn man im benutezrnamen ein ' verwendet ...

und bitte:

mysql error
man sollte in seinen Scripten immer mysql_error() verwenden, in etwa so:
PHP-Code:
$sql "SELECT feld1,feld2 FROM table WHERE id=5";
$result mysql_query($sql) or die(mysql_error().'
Query: '
.$sql); 
und wenn wir grad dabei sind:

man überprüft nach einem select auch mittels
if (mysql_num_rows($result) > 0)
sonst bekommste wenn jemand nen nickname eingibt der in der db nicht existiert auch wieder ne fehlermeldung im script ...

würd dir mal ans herz legen das hier genau durchzuarbeiten:
http://tut.php-q.net/login.html

das erklärt den kompletten sauberen aufbau eines loginsystems, ich glaube die zeit solltest du investieren.

mfg
robo47
robo47 ist offline  
Alt 26.05.2005, 12:01  
Matthias959
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
$sql 
"SELECT nickname, name, sonstigedaten FROM user WHERE nickname ==".$_Session['nickname']
?>
Und die Daten dann einfach ausgeben lassen.
Außerdem solltest du statt $nickname lieber $_Session['nickname'] verwenden und register_globals auf off stellen.
http://www.phpfriend.de/ftopic26569.html

/EDIT:
Mist! Da war ich wohl zu langsam!!!
 
Alt 26.05.2005, 12:02  
Gast
 
Beiträge: n/a
Standard

okay, danke erstmal für die antworten. naja mysql_error() habe ich zumindest eingebaut. ist nur weiter oben. achja und danke für den hinweis mit den sessions
 
Alt 26.05.2005, 12:03  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

öhm was bringt dir EIN mysql_error weiter oben? das hat hinter JEDEM mysql_query zu stehen, sonst bringt es dir null, oder man schreibt sich halt ne eigene funktion die das automatisch macht, oder nutzt ne klasse ....

mfg
robo47
robo47 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
MySQL Abfrage - kompliziert? mar8125 Datenbanken 4 17.04.2007 22:28
Etwas kompliziert ?! Smithers Datenbanken 1 11.09.2006 15:27
Etwas komplexere MySQL-Aufgabe (zumindest für mich) DannyD Datenbanken 3 12.05.2006 13:15
Zumindest kompliziert für einen Anfänger *Grins* Teil 2 PHP Tipps 2005 4 26.05.2005 13:52
uebergebene variable ausgeben...warum gehts nur kompliziert? PHP Tipps 2005 8 16.05.2005 07:17
Kompliziert: Zeitabschnitte berechnen und Ausgabe steuern PHP Tipps 2004-2 4 12.11.2004 20:14
jetzt wird's kompliziert, zumindest für mich ;) PHP Tipps 2004 9 22.07.2004 14:58
[Erledigt] SEHR KOMPLIZIERT... *jammer* PHP-Fortgeschrittene 5 21.07.2004 15:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:45 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.