Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 10.05.2008, 14:52   #16
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Zitat:
Zitat von weiß_nix Beitrag anzeigen
Ok...hasch du mir gleich eins an die Hand...???
Einfach mal etwas die Augen aufmachen und sich nicht alles an den Ar... tragen lassen! Threads die in Foren oben angepinnt sind, die den Zusatz "Wichtig" tragen und in denen auch das Wort "Tutorials" vorkommt, sollte man schon hin und wieder mal anschauen. Dann könnte man sich viele Fragen sparen!
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
Rizzo ist gerade online   Mit Zitat antworten


Alt 10.05.2008, 14:54   #17
TP-Member
 
Registriert seit: Feb 2008
weiß_nix macht alles soweit korrekt
Ich versuche mich zu bessern...
__________________
Gruß Sascha
weiß_nix ist offline   Mit Zitat antworten
Alt 10.05.2008, 15:08   #18
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Nein, das geht nicht, da man nur Vars angeben darf und keine Array-Elemente, denn $_POST ist nicht mehr als ein Array.

Da $_POST aber auch eine Superglobale ist, muss man diese aber auch nicht übergeben, auf diese Var kann man überall zugreifen.

Es ist aber auch nicht ratsam, direkt mit dieser Var zu arbeiten.
Kleines Bsp.:

Wir wollen einen Teil der Var extrahieren und extra ausgeben.
PHP-Code:
<?php
$_POST
['name'] = 'Musternamm, Max';

function 
test1($name)
{
    
$data explode(','$name);
    
$data array_map('trim'$data);
    return 
$data[1];
}

function 
test2()
{
    
$_POST['name'] = explode(','$_POST['name']);
    
$_POST['name'] = array_map('trim'$_POST['name']);
    return 
$_POST['name'][1];
}

echo 
'Der Vorname ist: '.test1($_POST['name']).'<br />';
echo 
'Die Benutzereingabe war: '.$_POST['name'].'<br />';

echo 
'Der Vorname ist: '.test2().'<br />';
echo 
'Die Benutzereingabe war: '.$_POST['name'];
?>
Ausgabe:
Code:
Der Vorname ist: Max
Die Benutzereingabe war: Musternamm, Max
Der Vorname ist: Max
Die Benutzereingabe war: Array
Wir sehen, wenn man direkt auf der Var $_POST arbeitet hat man die eigentliche Eingabe verloren.
Dieses kann man zwar umgehen, indem man in der function andere Vars verwendet, jedoch haben die Parameter den Vorteil, dass man sicherstellt, dass die Function auch richtig aufgerufen wird.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 10.05.2008, 15:46   #19
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
http://tut.php-quake.net/functions.html
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 10.05.2008, 16:29   #20
TP-Member
 
Registriert seit: Feb 2008
weiß_nix macht alles soweit korrekt
Zitat:
Zitat von Adromir Beitrag anzeigen
also ich weiß nich...aber ich steh übel aufm schlauch...
ich hab mir das Code Beispiel sowie das Tutorial durchgelesen aber irgendwie blick ich's net...

nehmen wir mal folgenden Code an...

PHP-Code:
if(!empty($_POST['username']) || !empty($_POST['passwort'])){
    
//dann der Variablen $userid die Rückgabe der Funktion check_user übergeben
    
$userid=check_user($_POST['username'], $_POST['passwort']); 
    
//Mit dieser Userid wird dann die Funktion login durchgeführt
     
login($userid); 
}

//Die Eingaben aus dem Formular überprüfen, 
function check_user($name$pass

    
//ob es diesen User wirklich gibt, 
    //dass Passwort liegt mit einem md5 String in der Datenbank
    
$sql="SELECT id FROM ".Tab1.
        WHERE username='"
.mysql_real_escape_string($name)."' 
        AND passwort=MD5('"
.mysql_real_escape_string($pass)."')
        LIMIT 1"
;  
    
$result= @mysql_query($sql); 
    
//Gibt es wirklich 1 Treffer
    
if (mysql_num_rows($result)==1
    { 
        
$user=mysql_fetch_assoc($result); 

        
//dann Wird die userID für die funktion login() zurückgegeben
        
return $user['id'];
        
    } 
    else {
        
//Ansonsten irgendwas zurückgeben
         
global $loginFehler;
        
$loginFehler "Unbekannter User!"
        
//echo   $loginFehler;
        
return false;
        }

darin steht ja...
PHP-Code:
$userid=check_user($_POST['username'], $_POST['passwort']);  ... 
und weiter unter...
PHP-Code:
function check_user($name$pass) ... 
d.h. für mich jetzt, dass aus den Variablen $_POST['username'] und $_POST['passwort'] die Variablen $name und $pass werden und die gegenseitig im Code komunizieren...???
__________________
Gruß Sascha
weiß_nix ist offline   Mit Zitat antworten
Alt 10.05.2008, 16:53   #21
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Das ganze hat was mit der Gültigkeit der Vars zu tun.
Ggf macht es Dir das zugänglicher.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 14.05.2008, 22:15   #22
TP-Member
 
Registriert seit: Feb 2008
weiß_nix macht alles soweit korrekt
Ich hab irgendwie immer noch n Problemchen...
Hab mir das Loginscript von StephanF zur Brust genommen aber das Funktioniert nich so ganz...

Ich kann mich einloggen...bekomm aber keine Rückmeldung das ich eingeloggt bin trotz einer Ausgabe bei Erfolgreichem Login.
Der User bleibt auch nicht erhalten...
Er verfällt sofort wieder...

Hier der Code:

login.php
PHP-Code:
<?
//Läd die Datei basicFunction und verbindet zur Datenbank
include "incl/inc/basicFunction.php";
dbconnect();

//Abfrage, ob Login-Button geklickt wurde
if(isset($_POST['login'])){

    if (isset(
$_POST["user"]) && isset($_POST["pass"])) {

    
//Übergibt Daten aus dem Formular und verschlüsselt das Passwort MD5
    
$benutzername $_POST["user"];
    
$passwort_uv $_POST["pass"];

        
//Maskierende Slashes aus POST entfernen
        
$_POST get_magic_quotes_gpc() ? array_map'stripslashes'$_POST ) : $_POST;

        
//Leerzeichen entfernen
        
$benutzername trim($benutzername);
        
$passwort_uv trim($passwort_uv);

        
//Wenn nach der Leerzeichenentferung noch was drinne steht
        
if(!empty($benutzername) || !empty($passwort_uv)){
            
//Dann der Variablen $userid den Rückgabewert der Funktion check_user übergeben
            
$userid check_user($benutzername$passwort_uv);
            
//Mit dieser Userid wird dann die Funktion login durchgeführt
            
login($userid);
        }
    } else {
        echo 
formular();
    }

}
?>
basicFunction.php

PHP-Code:
<?
//Datenbankverbingung
function dbconnect()
{

    
$server "localhost";

    
$user "root";
    
    
$password "";

    
$sDatabase "sash";


    
$con mysql_connect($server$user$password) or die(mysql_error());

    
mysql_select_db($sDatabase$con) or die(mysql_error());

}



//Die Eingaben aus dem Formular überprüfen, 
function check_user($benutzername$passwort_uv)
{

    
//Gibt es diesen User wirklich???
    //Dass Passwort liegt mit einem md5 String in der Datenbank
    
$sql "SELECT * FROM t_users
            WHERE username = '"
.mysql_real_escape_string($benutzername)."'
            AND passwort = MD5('"
.mysql_real_escape_string($passwort_uv)."')
            LIMIT 1"
;
    
$result = @mysql_query($sql);

    
//Wenn es einen Treffer gibt
    
if(mysql_num_rows($result) == 1){
        
$user mysql_fetch_assoc($result);

        
//dann Wird die userID für die funktion login() zurückgegeben
        
return $user['ID'];

    } else {
        
//Ansonsten wir die Variable $loginFehler ausgegeben und die Funktion gibt ein false zurückgeben
        
global $loginFehler;
        
$loginFehler "Unbekannter User!";
        return 
false;
    }
    
}


//Mit der ermittelten userid die Funktion login durchführen und den Datensatz des User in der DB aktualisieren
function login($userid)
{

//Session wird MD5 verschlüsselt + IPAdresse wird in die DB geschrieben

    
$sql "UPDATE t_users SET
            session = MD5('"
.session_id()."'),
            ipadresse = '"
.$_SERVER['REMOTE_ADDR']."'
            WHERE ID = "
.$userid;

    if(@
mysql_query($sql)){
        
$sql "SELECT ID, username, session FROM t_users WHERE ID = ".$userid;
        
$result = @mysql_query($sql);
        
        if(@
mysql_num_rows($result) == 1){
            
$user mysql_fetch_assoc($result);
            
//Benötigte werte in Sessions Speichern
            
$_SESSION['user_id'] = $user['ID'];
            
$_SESSION['user_name'] = $user['username'];
            
$_SESSION['user_session'] = $user['session'];
            
$logout "<div id=\"logout\"><a href=\"?seite=logout\">Logout</a></div>";
        } else {
            
//Ansonsten gibts False zurück, und der Login ist gescheitert
            
return false;
            
$e "<span style=\"color: red;\">Sie haben einen falschen Benutzernamen oder ein falsches Passwort eingegeben.<br></span>";
            echo 
formular();
        }
    }

}    

//Nun die Funktion zum Überprüfen, ob der Sitebesucher eingeloggt ist und den Inhalt sehen darf
function logged_in()
{

    
$sql "SELECT ID, username, session, ipadresse FROM t_users
            WHERE ID = '"
.$_SESSION['user_id']."'
            AND username = '"
.$_SESSION['user_name']."'
            AND session = '"
.$_SESSION['user_session']."'
            AND ipadresse = '"
.$_SERVER['REMOTE_ADDR']."'
            LIMIT 1"
;
            
$result = @mysql_query($sql);

            if(@
mysql_num_rows($result) == 1){
                global 
$loginErfolg;
                
$loginErfolg "Eingeloggt als<br>".$_SESSION['user_name'];
                return(
mysql_num_rows($result) == 1);
            }

}


//Die Funktion zum Ausloggen
function logout()
{
    
//Session und IP-Adresse werden wieder gelöscht
    
$sql "UPDATE t_users SET
            session = NULL,
            ipadresse = NULL
            WHERE session = MD5('"
.session_id()."')";
            @
mysql_query($sql);

        
//Alle Session Variablen zerstören und löschen
        
$_SESSION = array();
        
session_unset();
        
session_destroy();
}




}

//Gibt das Formular zum Einlogen aus
function formular()
{

    echo 
"<form action=\"index.php\" method=\"post\">
        <a style=\"font-size:14px; top: 0px; left: 0px;\">Login:</a>
        <a style=\"position: relative; top: 20px; left: -45px;\">Username:</a>
        <a><input name =\"user\" style=\"width: 115px; position: relative; top: 20px; left: 0px;\"></a>
        <a style=\"position: relative; top: 20px; left: 1px;\">Password:</a>
        <a><input name =\"pass\" style=\"width: 115px; position: relative; top: 20px; left: 0px;\"></a>
        <a><input name=\"login\" type=\"submit\" value=\"Login\" style=\"position: relative; top: 25px; left: 60px;\"></a>
        <a href=\"?seite=register\" style=\"position: relative; top: 30px; left: 2px;\">Registrieren</a>
        </form>"
;

}




?>
index.php

PHP-Code:
<?
    
//Startet die Session
    
session_start();
    
    if (isset(
$_GET["seite"])) {
        
$seite $_GET["seite"];
    } else {
        
$seite "home";
    }
?>

<html>
<head>
<title>** Sascha Wetzel **</title>
<link href="main.css" rel="stylesheet" type="text/css">
</head>

<body onload="">
    <div id="seite">
        <div id="banner">
            <div id="bannerinline">Webdesign</div>
        </div>

        <div id="div">
            <div id="navi">
                <div id="link">
                    <a href="?seite=home">Home</a>
                    <br>
                    <a href="?seite=ueber_mich">&Uuml;ber mich</a>
                    <br>
                    <a href="?seite=projekte">Projekte</a>
                    <br>
                    <a href="?seite=scripts">Scripts</a>
                    <br>
                    <a href="?seite=kontakt">Kontakt</a>
                    <br>
                    <a href="?seite=impressum">Impressum</a>
                </div>
                <div id="news">
                    <div id="newsinline">
                        News:<br>
                            <marquee>
                            Hier kommt nun ein Text!!!
                            </marquee>
                    </div>
                </div>
                <div id="login">
                    <div id="logininput">
                        <?                    
                            
include "module/login.php";
                            echo 
formular();
                        
?>    
                    </div>
                </div>
            </div>
            <div id="inhalt">
                <div id="inhalt_2">
                    <?
                        
echo $loginFehler;
                        echo 
$loginErfolg;
                        include 
"module/".$seite.".php";
                    
?>
                </div>
            </div>
        </div>
        <div id="copy">
            Style &copy; by Sascha Wetzel
        </div>
    </div>
</body>

</html>
Danke schon mal...
__________________
Gruß Sascha
weiß_nix ist offline   Mit Zitat antworten
Alt 15.05.2008, 00:24   #23
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Vielleicht könnte es sein, daß der Server so konfiguriert ist, daß Sessions nur per Cookie übergeben werden und du Cookies ablehnst?
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 15.05.2008, 16:30   #24
TP-Member
 
Registriert seit: Feb 2008
weiß_nix macht alles soweit korrekt
Nein glaub ich nicht...
das ganze läuft ja noch local(xampp)...
Liegt es vlt daran...???
__________________
Gruß Sascha
weiß_nix ist offline   Mit Zitat antworten
Alt 15.05.2008, 16:36   #25
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Mal die Fehlerlogs durchgeschaut? Bei mir hatte bei einer lokalen Installation das Sessionsystem nicht gefunzt, weil der Temp- ordner nicht richtig konfiguriert war..
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 15.05.2008, 16:42   #26
TP-Member
 
Registriert seit: Feb 2008