Login-Script error ... ... *sessions* ????

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
AbX

Login-Script error ... ... *sessions* ????

Beitrag von AbX »

Hi,

hmmm also ich versuch grad nen sessionscript zu schreiben...
eingetlich weis ich auch alle swas man braucht... lol => befehle => logik...

aber jetzt häng ich .. und wie das so oft ist übersieht man einfahc den error ...
darum hier der code ... und die bitte .. wo ist jetzt wieder der glorreiche 0,nix Fehler ?
index.php:

Code: Alles auswählen

<?php
include("sstart.php");
include("dbcon.php");
?>
dbcon.php:

Code: Alles auswählen

<?php
$db_con;
connecttodb();
function connecttodb() // Funktion zum connecten zur DB
{
$db_dbserverloc="lala";  // Server-Loc
$db_dbusername="lala";      // Username
$db_dbpass="lala";          // Passwort
$db_dbname="lala";    // DB-Name      
global $db_con;
$db_con = mysql_connect($db_dbserverloc,$db_dbusername,$db_dbpass); 
if(!$db_con) die ("Keine Verbindung zum MySQL-Server");
mysql_select_db($db_dbname,$db_con) or die ("Oeffnen der DB Fehgeschlagen.<br>" . mysql_error());
}
function getdbdata($dbtable,$dbgetfrom,$dbgetwhat) // Funtion zum DB-Auslesen
{
global $db_con;
$result = mysql_query("SELECT * FROM $dbtable WHERE $dbgetfrom='$dbgetwhat'", $db_con);
if(!result) die ("getdbdata fatal error:<br>" . mysql_error());
return mysql_fetch_array($result);
}
?>
sstart.php:

Code: Alles auswählen

<?php
session_start();
session_register("session");
function loggedin($id,$login,$pass) // if Login = true
{
global $session;
$session[id] = $id;
$session[login] = $login;
$session[pass] = $pass;
$session[logged_in] = true;
}
function checklogin( ) // Check der Gueltigkeit des Logins
{
global $session, $logged_in;
$session[logged_in] = false;
$login_data = getdbdata("login","id",$session[id]);
if(!$login_data || $login_data[login] != $session[login] || $login_data[pass] != $session[pass])
{ header("Location: index.php?" . SID);
exit; }
$session[logged_in] = true;
return $login_data;
}
?>
login.php

Code: Alles auswählen

<?php
include("sstart.php");
include("dbcon.php");

$error_msg="";
if($sub){
if(isset($action) && $action == "login")
 {
  if(empty($loginform[login]) || empty($loginform[pass]))
   $error_msg .= "Bitte füllen Sie alle Felder aus.<br>\n";
  elseif(!($login_data = checklogin($loginform[login], $loginform[pass])))
   $error_msg .= "Loginname oder Passwort falsch !<br> Bitte versuchen Sie es erneut.<br>\n";
  if($error_msg == "") // Keine Fehler
  {
   loggedin($login_data[id],$login_data[login],$login_data[pass]);
   echo TEST;
   exit;
  }
 }
  if($error_msg != "") echo $error_msg;
}else{
?>
<form method=post action="<?php echo $PHP_SELF; ?>">
<input type="hidden" name="aktion" value="login">
<input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>">
<br><br>
<b>Login:</b><br>
<input type="text" name="loginform[login]" value="<?php echo $loginform[login]; ?>">
<br><br>
<b>Passwort</b><br>
<input type="password" name="loginform[pass]" value="">
<br><br>
<input type="submit" value="Login" name="sub">
<?php } ?>
hmm ich weis.. das es nervt... aber ich verzwifle.. wo liegt der Fehler ?
guckt hier das kommt:
http://www.gamesatnet.de/test/sessions/index.php
http://www.gamesatnet.de/test/sessions/login.php


cu cuu ^^
Benutzeravatar
kOOni
Mitglied
Beiträge: 9
Registriert: 23.02.2003 11:39
Kontaktdaten:

!!!

Beitrag von kOOni »

wo soll was kommen ? überprüfe mal deine Links !!!
--agitate-hagal--
Benutzeravatar
kOOni
Mitglied
Beiträge: 9
Registriert: 23.02.2003 11:39
Kontaktdaten:

also...

Beitrag von kOOni »

warum schreibst du in dbcon so viel funktionen ? mach das kürzer und mit Variablen:

Code: Alles auswählen

$mysql_con = mysql_connect($mysql_host,$mysql_user,$mysql_passwort) or die
   ("Verbindung zur Datenbank $MySQL_db konnte nicht hergestellt werden!");

if(!$mysql_con)

        {   echo "Die Verbindung zum Server $mysql_host ist fehlegeschlagen !";}

                  /*Datenbank auswählen*/

if ($create_sql2=mysql_select_db($mysql_db))
so und nun machst du noch das :

- eine abfrage um zu prüfen ob die Kombi PASSWORT und USERNAMEN besteht (SELECT *FROM $tabelle WHERE username=$username AND passwort=$passwort)
- eine if abfrage( if ($abfrage_sql == true) {echo "login!";} else {echo "login nicht geklappt!";}

und dann müsste es gehen. nimm mirs nicht übel das ich dir deine errors nicht rausgesucht hab, war mir zu umständlich mit deinen ganzen funktionen. :wink:
poste mal wies lief !


kOOni
--agitate-hagal--
Benutzeravatar
kOOni
Mitglied
Beiträge: 9
Registriert: 23.02.2003 11:39
Kontaktdaten:

und ........

Beitrag von kOOni »

... wenn du was mit sessions machen willst, mach nach der if - abfrage, ein session_start(); und registriere die bei Variablen, Usernamen und Passwort.


kOOni
--agitate-hagal--
AbX

Beitrag von AbX »

Hi,

hmm ich wollte damit eigentlich sessions üben ^^"

naja .. ich überleg mir grad ob hmmm...

naja was ist wenn jemand einfach ne ssions id von han eingiebt...
also irgendeine.... und für die session ist mit loggedin == true
initalisiert... dann hat der ja vollen zugrifff aufalles was so im login ist...
hmm naja auf kleine sites ist das ja ne hmm kein problem...

aber auf größeren z.B. phpbb da gibts doch dann ein statistisches prob.
weil naja dann... dann nutzt einer den accouunt von nem anderen ...
...

ok dann mal cu
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Normalerweise haben die Session-IDs eine entsprechende Länge (z.B. mit md5() generiert -> 32 Zeichen), so daß man schon etwas länger probieren muss, bis man zufällig eine gültige erwischt.
Antworten

Zurück zu „Coding & Technik“