login vorgang

Alles, was PHP betrifft, kann hier besprochen werden.

login vorgang

Postby aeroflex » 10. February 2006 18:57

hallo
bin neu, und arbeite erst seit kurzem mit xampp

habe beim erstellen eines loginsystem beim einloggen ein problem, dass ich nicht lösen kann
(also connecten zur datenbank funzt, denn ich habe 'member' table und das einfügen von usern über eine php datei gemacht, und der rest der page geht auch *navi* ;) )

hoffentlich kann mir einer von euch helfen
--------------
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\xampp\htdocs\main\login_action.php on line 9
--------------


und die datei von login_action.php sieht so aus:

if (isset($HTTP_POST_VARS['name'])) { $name = $HTTP_POST_VARS['name']; }
if (isset($HTTP_POST_VARS['pass'])) { $pass = $HTTP_POST_VARS['pass']; }


if ($name != '' && $pass != '')
{
$result = mysql_query("SELECT id FROM member WHERE username = '$name';", $db_link) OR die(mysql_error());
list($userid) = mysql_fetch_row($result);
if (isset($userid))
{
$result = mysql_query("SELECT userpass FROM member WHERE id = '$userid';", $db_link) OR die(mysql_error());
list($pw) = mysql_fetch_row($result);
$pass = md5($pass);
if ($pass == $pw)
{
$eingeloggt = 1;
eval("\$main =\"".open("./main/logout")."\";");
}
else
{
$eingeloggt = 0;
eval("\$main =\"".open("./main/failed")."\";");
}
}
else
{
$eingeloggt = 0;
eval("\$main =\"".open("./main/failed")."\";");
}
}
else
{
$eingeloggt = 0;
}
aeroflex
 
Posts: 8
Joined: 09. February 2006 19:37

Postby KingCrunch » 10. February 2006 19:06

Code: Select all
$db_link

Wenn das alles ist, was sich in der datei befindet, und diese auch alleine aufgerufenen wird, fehlt dir eine Verbindung zum mySQL
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby aeroflex » 11. February 2006 11:22

ju danke schön, hat mir weitergeholfen

aber nun hab ich ein anderes problem, der zeigt die seite logout.php nicht an nach dem einloggen und in der url steht http://localhost/includes/login_action.php :(

es wird nur eine leere seite gezeigt und unten im browser steht halt 'Done'

if ($pass == $pw)
{
$eingeloggt = 1;
eval("\$main =\"".open("./main/logout")."\";");
}


muss ich noch etwas beachten?
also die index datei sieht so aus

<?
error_reporting(E_ALL);

include('./includes/data.php');
eval("\$nav .=\"".open("nav1")."\";");

$content = $_GET['main'];
switch($content)
{
case "news":
eval("\$main =\"".open("./main/news")."\";");
break;
case "crew":
eval("\$main =\"".open("./main/crew")."\";");
break;
case "works":
eval("\$main =\"".open("./main/works")."\";");
break;
case "login":
eval("\$main =\"".open("./main/login_formular")."\";");
break;
default:
eval("\$main =\"".open("./main/news")."\";");
break;
}


eval("\$show =\"".open("page")."\";");
echo $show;
mysql_close();
?>


die data.php datei hat die datenbankverbindung und die functions
aeroflex
 
Posts: 8
Joined: 09. February 2006 19:37

Postby KingCrunch » 11. February 2006 13:56

Verständnisfrage:
Code: Select all
eval("\$main =\"".open("./main/news")."\";");
Was soll das bewirken: :?:
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby aeroflex » 11. February 2006 14:26

function open ($datei) {
$output = implode("",file("./".$datei.".php"));
return str_replace("\"","\\\"",$output);
}


damit öffne ich eine xxx.php datei im $main bereich

also ich weis nicht wie ich sonst im falle von 'news' eine datei öffnen kann
außer halt mit eval()

gibt es eine andere möglichkeit diese dateien im switch-fall zu öffnen?
aeroflex
 
Posts: 8
Joined: 09. February 2006 19:37

Postby KingCrunch » 11. February 2006 14:42

Und wieso machste das über "eval()" und nicht einfach
Code: Select all
$main = open("./main/news");

?

Eine andere Möglichkeit eine Datei per Variable in einer anderen Datei öffnen? Mir fällts grad ein wenig schwer das zu verstehen :/ OK, ma so ne Idee von mir

Code: Select all
// $_GET['main'] besitzt news, home, ...
if (!file_exists("./main/" . $_GET['main'] . ".php")) {
  $_GET['main'] = "news";
}

\\ erstere Variante: Einfache PHP Datei
$main = file_get_contens("./main/" . $_GET['main'] . ".php");

\\zweite Variante: Include mit return-Konstrukt in der "include".php
\main = include("./main/" . $_GET['main'] . ".php");


Was ich auch nicht vestehe: du füllt $show, $nav und $main mit Inhalt aus irgendwelchen Dateien, aber nur $show wird ausgegeben, oder ist das wieder irgendwo anders vergraben?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby aeroflex » 11. February 2006 15:12

es wird nur $show an dieser stelle benutzt und ausgegeben

ich werde das mal neu machen

danke
aeroflex
 
Posts: 8
Joined: 09. February 2006 19:37

Postby KingCrunch » 11. February 2006 17:17

Ach, war das der Fehler?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby aeroflex » 11. February 2006 17:29

ich hab das mal komplett anders gemacht ohne eval(), sondern in der index.php alles mit echo"" und include gemacht

und es sind auch keine undefined blablub und co mehr vorhanden
aeroflex
 
Posts: 8
Joined: 09. February 2006 19:37

Postby DJ DHG » 12. February 2006 14:13

Moin Moin

Verschoben nach "PHP" da kein Problem mit Xampp...

mfg DJ DHG
User avatar
DJ DHG
AF Moderator
 
Posts: 2455
Joined: 27. December 2002 13:50
Location: Kiel


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests