php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.02.2006, 15:36  
Neuer Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 19
Huggy
Standard MySQL problem

Hallo!

Ich bastel im mom an ner HP für nen freund, demnach soll sie nicht schlecht sein aber nicht viel kosten.. naja egal....

Und zwar arbeite ich an einem Login System, das die User + PW in einer
Tabelle speichert.


Hab jetzt bei www.kostenlos-webhosting.de einen guten gratis anbeiter gefunden.
Hab mir dort eine tabelle mit allen user erstellt, mein und laut anleitung auf php resource folgende 3 dateien erstellt:

login.php:

<?
session_start();
include 'sessionhelpers.inc.php';
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false)
login($userid);
else
echo 'Ihre Anmeldedaten waren nicht korrekt!';
}
if (!logged_in())
echo '<form method="post" action="login.php">
<label>Benutzername:</label><input name="username" type="text">

<label>Passwort: </label><input name="userpass" type="password" id="userpass">

<input name="login" type="submit" id="login" value="Einloggen">
</form>';
else
echo 'Ausloggen';
echo '

Check';
?>


logout.php:

<?
session_start();
include 'sessionhelpers.inc.php';
echo 'Sie sind ';
if (!logged_in())
echo 'nicht ';
echo 'eingeloggt.

';
logout();
echo 'Sie sind ';
if (!logged_in())
echo 'nicht ';
echo 'eingeloggt.< p/>';
echo 'Einloggen';
?>


und sessionhelpers.inc.php


<?
function connect()
{
$con= mysql_connect('servername','benutzer','passwort') or die(mysql_error());
mysql_select_db('datenbank, die die Benutzertabelle enthält',$con) or die(mysql_error());
}

function check_user($name, $pass)
{
$sql="SELECT UserId
FROM users
WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['UserId'];
}
else
return false;
}

function login($userid)
{
$sql="UPDATE users
SET UserSession='".session_id()."'
WHERE UserId=".$userid;
mysql_query($sql);
}

function logged_in()
{
$sql="SELECT UserId
FROM users
WHERE UserSession='".session_id()."'
LIMIT 1";
$result= mysql_query($sql);
return ( mysql_num_rows($result)==1);
}

function logout()
{
$sql="UPDATE users
SET UserSession=NULL
WHERE UserSession='".session_id()."'";
mysql_query($sql);
}

connect();
?>




Soweit so gut.

Nachdem ich mich eingeloogt habe, erscheint:

Verbunden mit MySQL 5.0.16-Debian_0.dotdeb.1-log auf 172.16.10.3 als aabcte@172.16.10.100

Nur was gehört jetzt bei sessionhelpers.inc.php zu "servername"?

Passwort und benutzer weiß ich!



Oder gibt es eine möglichkeit die einzelnen benutzer in einer PHP seite zu speichern? Wenn ja, wie?


Danke! (hab gegoogelt und boardsuche benutzt, net fündig geworden)
__________________
Bush zitat: Ich glaube, wir müssen ganz USA zusammenbringen um es zu vereinigen
Huggy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.02.2006, 15:58  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

login.php:

PHP-Code:
<?php
session_start
();
include 
'sessionhelpers.inc.php';
if (isset(
$_POST['login']))
{
    
$userid=check_user($_POST['username'], $_POST['userpass']);
    if (
$userid!=false)
        
login($userid);
    else
        echo 
'Ihre Anmeldedaten waren nicht korrekt!';
}
if (!
logged_in())
    echo 
'<form method="post" action="login.php">
        <label>Benutzername:</label><input name="username" type="text">

        <label>Passwort: </label><input name="userpass" type="password" id="userpass">

        <input name="login" type="submit" id="login" value="Einloggen">
    </form>'
;
else
    echo 
'[url="logout.php"]Ausloggen[/url]';
echo 
'

[url="logged_in.php"]Check[/url]'
;
?>

logout.php:

PHP-Code:
<?php
session_start
();
include 
'sessionhelpers.inc.php';
echo 
'Sie sind ';
if (!
logged_in())
    echo 
'nicht ';
echo 
'eingeloggt.

'
;
logout();
echo 
'Sie sind ';
if (!
logged_in())
    echo 
'nicht ';
echo 
'eingeloggt.< p/>';
echo 
'[url="login.php"]Einloggen[/url]';
?>

und sessionhelpers.inc.php

PHP-Code:
<?php
function connect()
{
    
$conmysql_connect('servername','benutzer','passwort') or die(mysql_error());
     
mysql_select_db('datenbank, die die Benutzertabelle enthält',$con) or die(mysql_error());
}

function 
check_user($name$pass)
{
    
$sql="SELECT UserId
    FROM users
    WHERE UserName='"
.$name."' AND UserPass=MD5('".$pass."')
    LIMIT 1"
;
    
$resultmysql_query($sql) or die(mysql_error());
    if ( 
mysql_num_rows($result)==1)
    {
        
$user=mysql_fetch_assoc($result);
        return 
$user['UserId'];
    }
    else
        return 
false;
}

function 
login($userid)
{
    
$sql="UPDATE users
    SET UserSession='"
.session_id()."'
    WHERE UserId="
.$userid;
     
mysql_query($sql);
}

function 
logged_in()
{
    
$sql="SELECT UserId
    FROM users
    WHERE UserSession='"
.session_id()."'
    LIMIT 1"
;
    
$resultmysql_query($sql);
      return ( 
mysql_num_rows($result)==1);
}

function 
logout()
{
    
$sql="UPDATE users
    SET UserSession=NULL
    WHERE UserSession='"
.session_id()."'";
     
mysql_query($sql);
}

connect();
?>
einfach nur das ganze in die PHP-Tags reingepackt)
__________________
Wie man Fragen richtig stellt
dsmcg ist offline   Mit Zitat antworten
Alt 20.02.2006, 16:02  
Neuer Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 19
Huggy
Standard

Und was geb ich ein bei servername?
__________________
Bush zitat: Ich glaube, wir müssen ganz USA zusammenbringen um es zu vereinigen
Huggy ist offline   Mit Zitat antworten
Alt 20.02.2006, 16:11  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

bei servername? na dort wo MySQL drauf läuft.. warscheinlich localhost nehme ich mal an.. hier weiss niemand wo DEIN MySQL läuft.. woher auch?
__________________
Wie man Fragen richtig stellt
dsmcg ist offline   Mit Zitat antworten
Alt 20.02.2006, 19:47  
Erfahrener Benutzer
 
Registriert seit: 17.02.2006
Beiträge: 132
PHP-Kenntnisse:
Fortgeschritten
marcusson befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$sql="SELECT UserId
    FROM users
    WHERE UserName='"
.$name."' AND UserPass=MD5('".$pass."')
    LIMIT 1"

Will dich ja nicht stressen, aber ich wollte dich erinnern, dass der Code so wie er ist anfällig ist für eine Attacke via SQL-Injection.

Du solltest die Eingabedaten säubern, bevor du sie in eine SQL-Query einfügst. Etwa so:
PHP-Code:
$sql="SELECT UserId
    FROM users
    WHERE UserName='"
.mysql_escape_string($name)."' AND UserPass=MD5('".mysql_escape_string($pass)."')
    LIMIT 1"

marcusson ist offline   Mit Zitat antworten
Alt 20.02.2006, 20:06  
Neuer Benutzer
 
Registriert seit: 18.02.2006
Beiträge: 19
Huggy
Standard

OK,letzte frage für heute oO

NAchdem ich meine datenbank fertig habe, kann ich die ins internet stellen?

Wenn ja, wie?

Einfach export bei MySQL und IMPORT bei Dem zielserver?
__________________
Bush zitat: Ich glaube, wir müssen ganz USA zusammenbringen um es zu vereinigen
Huggy ist offline   Mit Zitat antworten
Alt 20.02.2006, 21:45  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

ja so würde ich es machen.

warum nicht einfach mal testen?..
__________________
Wie man Fragen richtig stellt
dsmcg ist offline   Mit Zitat antworten
Antwort


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 Problem fkrauthan PHP-Fortgeschrittene 5 25.01.2008 18:18
mysql problem mit LIKE und AND kazuya Datenbanken 10 29.10.2007 21:36
MySQL kodierungs problem Mutatos Datenbanken 0 12.05.2006 20:02
MySQL Problem mit INSERT-Queries Arno Nühm Datenbanken 10 07.04.2006 16:46
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
[Erledigt] Mysql + PHP und Datum Problem Datenbanken 11 31.08.2005 12:08
MySQL, PHP und ein großes Problem! Datenbanken 2 27.08.2005 10:51
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] Problem MySQL 3 und 4 PHP-Fortgeschrittene 9 02.08.2005 16:45
[Erledigt] mysql installations problem Datenbanken 4 16.02.2005 18:46
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Problem mit 2 gleichzeitigen MySQL abfragen PHP Tipps 2004 2 08.07.2004 13:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$con=mysql_connect(\'servername\',\'benutzer\',\'passwort\') or die(mysql_error()); mysql_select_db(\'datenbank, die die benutzertabelle enthält\',$con) or die(mysql_error()); }, mysql säubern, sql inputs säubern, mysql usersession problem

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