 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
10.05.2008, 14:52
|
#16
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Zitat:
Zitat von weiß_nix
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
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
|
|
|
10.05.2008, 14:54
|
#17
|
|
TP-Member
Registriert seit: Feb 2008
|
Ich versuche mich zu bessern...
__________________
Gruß Sascha
|
|
|
10.05.2008, 15:08
|
#18
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
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.
|
|
|
10.05.2008, 15:46
|
#19
|
|
TP-Moderator
Registriert seit: Jun 2004
Ort: Hannover
|
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
|
|
|
10.05.2008, 16:29
|
#20
|
|
TP-Member
Registriert seit: Feb 2008
|
Zitat:
Zitat von Adromir
|
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
|
|
|
10.05.2008, 16:53
|
#21
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Das ganze hat was mit der Gültigkeit der Vars zu tun.
Ggf macht es Dir das zugänglicher.
|
|
|
14.05.2008, 22:15
|
#22
|
|
TP-Member
Registriert seit: Feb 2008
|
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">Ü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 © by Sascha Wetzel </div> </div> </body>
</html>
Danke schon mal...
__________________
Gruß Sascha
|
|
|
15.05.2008, 00:24
|
#23
|
|
TP-Moderator
Registriert seit: Jun 2004
Ort: Hannover
|
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
|
|
|
15.05.2008, 16:30
|
#24
|
|
TP-Member
Registriert seit: Feb 2008
|
Nein glaub ich nicht...
das ganze läuft ja noch local(xampp)...
Liegt es vlt daran...???
__________________
Gruß Sascha
|
|
|
15.05.2008, 16:36
|
#25
|
|
TP-Moderator
Registriert seit: Jun 2004
Ort: Hannover
|
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
|
|
|
15.05.2008, 16:42
|
#26
|
|
TP-Member
Registriert seit: Feb 2008
| | |