PHP bejelentkezés regisztráció, de hiba.

Szerző
Üzenet
lol.twister
Gyakorlott phpBB-s
Gyakorlott phpBB-s


Csatlakozott: 2008.11.06. Csütörtök 19:05
Hozzászólások: 252
Hozzászólás Elküldve: 2009.10.16. 16:40    Hozzászólás témája: PHP bejelentkezés regisztráció, de hiba.
Hozzászólás az előzmény idézésével
Sziasztok!
Készítettem egy bejelentkezés, regisztrálás stb. fájlt, de sehogyan sem szeretne működni. Így néz ki a fájl:

Kód:


<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
   $success_page = './index.php';
   $error_page = './hiba.php';
   $database = './usersdb.php';
   $crypt_pass = md5($_POST['password']);
   $found = false;
   $logindata = array();
   if(filesize($database) == 0)
   {
      header('Location: '.$error_page);
      exit;
   }
   else
   {
      $items = file($database);
      foreach($items as $line)
      {
         list($username, $password, $email, $fullname, $active) = explode('|', trim($line));
         $logindata[$username] = $password;
         if ($username == $_POST['username'] && $active != "0")
         {
            $found = true;
         }
      }
   }
   if($found == false)
   {
      header('Location: '.$error_page);
      exit;
   }
   if($logindata[$_POST['username']] == $crypt_pass)
   {
      session_start();
      $_SESSION['username'] = $_POST['username'];
      $rememberme = isset($_POST['rememberme']) ? true : false;
      if ($rememberme)
      {
         setcookie('username', $_POST['username'], time() + 3600*24*30);
         setcookie('password', $_POST['password'], time() + 3600*24*30);
      }
      header('Location: '.$success_page);
      exit;
   }
   else
   {
      header('Location: '.$error_page);
      exit;
   }
}
$username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
$password = isset($_COOKIE['password']) ? $_COOKIE['password'] : '';
?>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && strlen($_POST['email'] <= 50))
{
   $email = addslashes($_POST['email']);
   $found = false;
   $usernames = array();
   $passwords = array();
   $emailaddresses = array();
   $fullnames = array();
   $activeaccounts = array();
   $count = 0;
   $success_page = './index.php';
   $error_page = './hiba.php';
   $database = './usersdb.php';

   if (filesize($database) == 0)
   {
      header('Location: '.$error_page);
      exit;
   }
   else
   {
      $items = file($database);
      foreach($items as $line)
      {
         list($username, $password, $emailaddress, $fullname, $active) = explode('|', trim($line));
         $usernames[$count] = $username;
         $passwords[$count] = $password;
         $emailaddresses[$count] = $emailaddress;
         $fullnames[$count] = $fullname;
         $activeaccounts[$count] = $active;
         if ($email == $emailaddress)
         {
            $found = true;
         }
         $count++;
      }
   }
   if ($found == true)
   {
      $alphanum = array('a','b','c','d','e','f','g','h','i','j','k','m','n','o','p','q','r','s','t','u','v','x','y','z','A','B','C','D','E','F','G','H','I','J','K','M','N','P','Q','R','S','T','U','V','W','X','Y','Z','2','3','4','5','6','7','8','9');
      $chars = sizeof($alphanum);
      $a = time();
      mt_srand($a);
      for ($i=0; $i < 6; $i++)
      {
         $randnum = intval(mt_rand(0,56));
         $newpassword .= $alphanum[$randnum];
      }
      $crypt_pass = md5($newpassword);
      $file = fopen($database, 'w');
      for ($i=0; $i < $count; $i++)
      {
         fwrite($file, $usernames[$i]);
         fwrite($file, '|');
         if ($emailaddresses[$i] == $email)
         {
            fwrite($file, $crypt_pass);
         }
         else
         {
            fwrite($file, $passwords[$i]);
         }
         fwrite($file, '|');
         fwrite($file, $emailaddresses[$i]);
         fwrite($file, '|');
         fwrite($file, $fullnames[$i]);
         fwrite($file, '|');
         fwrite($file, $activeaccounts[$i]);
         fwrite($file, "\r\n");
      }
      fclose($file);
      $mailto = $_POST['email'];
      $subject = 'Új jelszó';
      $message = 'Az új jelszavad a 9d.v630i-w660i.hu oldalra: ';
      $message .= $newpassword;
      $header  = "From: nevalaszolj##kukac##9d.v630i-w660i.hu"."\r\n";
      $header .= "Reply-To: nevalaszolj##kukac##9d.v630i-w660i.hu"."\r\n";
      $header .= "MIME-Version: 1.0"."\r\n";
      $header .= "Content-Type: text/plain; charset=utf-8"."\r\n";
      $header .= "Content-Transfer-Encoding: 8bit"."\r\n";
      $header .= "X-Mailer: PHP v".phpversion();
      mail($mailto, $subject, $message, $header);
      header('Location: '.$success_page);
      exit;
   }
   else
   {
      header('Location: '.$error_page);
      exit;
   }
}
?>
<?php
$error_message = "";
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
   $action = isset($_POST['action']) ? $_POST['action'] : '';
   $database = './usersdb.php';
   $success_page = './index.php';

   if (!file_exists($database))
   {
      echo 'User database not found!';
      exit;
   }
   if ($action == 'signup')
   {
      $newusername = $_POST['username'];
      $newemail = $_POST['email'];
      $newpassword = $_POST['password'];
      $confirmpassword = $_POST['confirmpassword'];
      $newfullname = $_POST['fullname'];
      if ($newpassword != $confirmpassword)
      {
         $error_message = 'A jelszó és a jelszó ellenőrzése nem egyezik!';
      }
      else
      if (!ereg("^[A-Za-z0-9_!@$]{1,50}$", $newusername))
      {
         $error_message = 'A felhasználónév nem megfelelő!';
      }
      else
      if (!ereg("^[A-Za-z0-9_!@$]{1,50}$", $newpassword))
      {
         $error_message = 'A jelszó nem megfelelő!';
      }
      else
      if (!ereg("^[A-Za-z0-9_!@$.' &]{1,50}$", $newfullname))
      {
         $error_message = 'A teljes név nem megfelelő!';
      }
      else
      if (!ereg("^.+@.+\..+$", $newemail))
      {
         $error_message = 'Az e-mail cím nem megfelelő';
      }
      $items = file($database);
      foreach($items as $line)
      {
         list($username, $password, $email, $fullname) = explode('|', trim($line));
         if ($newusername == $username)
         {
            $error_message = 'Ez a felhasználónév már foglalt!';
            break;
         }
      }
      if (empty($error_message))
      {
         $file = fopen($database, 'a');
         fwrite($file, $newusername);
         fwrite($file, '|');
         fwrite($file, md5($newpassword));
         fwrite($file, '|');
         fwrite($file, $newemail);
         fwrite($file, '|');
         fwrite($file, $newfullname);
         fwrite($file, '|0');
         fwrite($file, "\r\n");
         fclose($file);

         $mailto = $newemail;
         $subject = 'Felhasználói fiók';
         $message = 'Az új felhasználói fiókodat beállítottuk. Üdvözlettel: Attiss';
         $message .= "\r\nUsername: ";
         $message .= $newusername;
         $message .= "\r\nPassword: ";
         $message .= $newpassword;
         $message .= "\r\n";
         $header  = "From: admin##kukac##9d.v630i-w660i.hu"."\r\n";
         $header .= "Reply-To: admin##kukac##9d.v630i-w660i.hu"."\r\n";
         $header .= "MIME-Version: 1.0"."\r\n";
         $header .= "Content-Type: text/plain; charset=utf-8"."\r\n";
         $header .= "Content-Transfer-Encoding: 8bit"."\r\n";
         $header .= "X-Mailer: PHP v".phpversion();
         mail($mailto, $subject, $message, $header);
         mail('admin@9d.v630i-w660i.hu', $subject, $message, $header);
         header('Location: '.$success_page);
         exit;
      }
   }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
<meta http-equiv="Content-Language" content="hu">
<title>Pataky 9D - Bejelentkezés</title>
<meta name="author" content="Fábián Attila">
<style type="text/css">
div#container
{
   width: 1024px;
   position: relative;
   margin-top: 0px;
   margin-left: auto;
   margin-right: auto;
   text-align: left;
}
body
{
   text-align: center;
   margin: 0;
}
</style>
<style type="text/css">
a
{
   color: #FFFFFF;
}
a:visited
{
   color: #FFFFFF;
}
a:active
{
   color: #FFFFFF;
}
</style>
</head>
<body background="images/bkg.png" bgcolor="#FFFF00" text="#000000">
<div id="container">
<div id="wb_Login1" style="position:absolute;left:290px;top:100px;width:387px;height:145px;z-index:0;" align="left">
<form name="loginform" method="post" action="<?php echo basename(__FILE__); ?>" id="loginform">
<table cellspacing="5" cellpadding="0" style="background-color:#000000;border-color:#FFFF00;border-width:2px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;width:387px;height:145px;">
<tr>
   <td colspan="2" align="center" height="18px" style="background-color:#000000;color:#00FF00;">Bejelentkezés</td>
</tr>
<tr>
   <td align="right" height="18px">Felhasználónév:</td>
   <td><input name="username" type="text" id="username" value="<?php echo $username; ?>" style="width:100px;height:21px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td align="right" height="18px">Jelszó:</td>
   <td><input name="password" type="password" id="password" value="<?php echo $password; ?>" style="width:100px;height:21px;px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td colspan="2" height="18px" align="center"><input id="rememberme" type="checkbox" name="rememberme" /> Jegyezzen meg!</td>
</tr>
<tr>
   <td align="right" valign="bottom" colspan="2"><input type="submit" name="login" value="Bejelentkezés" id="login" style="color:#FFFF00;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;font-family:Comic Sans MS;font-size:13px;width:100px;height:25px;" /></td>
</tr>
</table>
</form>
</div>
<div id="wb_PasswordRecovery1" style="position:absolute;left:290px;top:247px;width:387px;height:100px;z-index:1;" align="left">
<form name="forgotpassword" method="post" action="<?php echo basename(__FILE__); ?>" id="forgotpassword">
<table cellspacing="4" cellpadding="0" style="background-color:#000000;border-color:#FFFF00;border-width:2px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;width:387px;height:100px;">
<tr>
   <td colspan="2" align="center" height="18px" style="background-color:#000000;color:#00FF00;">Elfelejtetted a jelszavad?</td>
</tr>
<tr>
   <td align="right"height="18px">E-mail cím:</td>
   <td><input name="email" type="text" id="email" style="width:100px;height:21px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td align="right" valign="bottom" colspan="2"><input type="submit" name="submit" value="Küldés" id="submit" style="color:#FFFF00;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;font-family:Comic Sans MS;font-size:13px;width:100px;height:25px;" /></td>
</tr>
</table>
</form>
</div>
<div id="wb_Signup1" style="position:absolute;left:290px;top:349px;width:387px;height:212px;z-index:2;" align="left">
<form name="signup" method="post" action="<?php echo basename(__FILE__); ?>" id="signup">
<input type="hidden" name="action" value="signup">
<table cellspacing="4" cellpadding="0" style="background-color:#000000;border-color:#FFFF00;border-width:2px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;width:387px;height:212px;">
<tr>
   <td colspan="2" align="center" height="18px" style="background-color:#000000;color:#00FF00;">
Új fiók regisztrációja</td>
</tr>
<tr>
   <td align="right" height="18px">Teljes név:</td>
   <td><input name="fullname" type="text" id="fullname" style="width:100px;height:21px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td align="right" height="18px">Felhasználónév:</td>
   <td><input name="username" type="text" id="username" style="width:100px;height:21px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td align="right" height="18px">Jelszó:</td>
   <td><input name="password" type="password" id="password" style="width:100px;height:21px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td align="right" height="18px">Ellenőrző jelszó:</td>
   <td><input name="confirmpassword" type="password" id="confirmpassword" style="width:100px;height:21px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td align="right" height="18px">E-mail cím:</td>
   <td><input name="email" type="text" id="email" style="width:100px;height:21px;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;color:#FFFF00;font-family:Comic Sans MS;font-size:13px;" /></td>
</tr>
<tr>
   <td colspan="2"><?php echo $error_message; ?></td>
</tr>
<tr>
   <td align="right" valign="bottom" colspan="2"><input type="submit" name="signup" value="Regisztráció" id="signup" style="color:#FFFF00;background-color:#000000;border-color:#FFFF00;border-width:1px;border-style:solid;font-family:Comic Sans MS;font-size:13px;width:100px;height:25px;" /></td>
</tr>
</table>
</form>
</div>
<div id="wb_Text1" style="position:absolute;left:152px;top:11px;width:658px;height:87px;z-index:3;" align="center">
<font style="font-size:21px" color="#FF0000" face="Comic Sans MS">Kedves felhasználók! A jelszavas rendszer megváltozott, mostmár regisztrálni kell az oldal megtekintéshez. További szép napot kíván: Attiss</font></div>
</div>
</body>
</html>


Ez működik is, de amikor regisztrálni szeretnék, akkor hibát ír. Fogalmam sincs mi lehet a hiba már többször tüzetesen átnéztem. Valaki hozzértő legyen szíves segíteni, köszönöm előre is! :D

Egy két dolog:
- usersdb.php létezik és írható.
- ha az usersdb.php-ban hozok létre felhasználót azt engedi belépni.
A segítséget előre is köszönöm mindenkinek!

Felhasználó profiljának megtekintése Privát üzenet küldése
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1542
Hozzászólás Elküldve: 2009.10.16. 18:13    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Mi a hibaüzenet?
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
lol.twister
Gyakorlott phpBB-s
Gyakorlott phpBB-s


Csatlakozott: 2008.11.06. Csütörtök 19:05
Hozzászólások: 252
Hozzászólás Elküldve: 2009.10.16. 20:46    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ezt a fájlt én írtam, csak olyan hibaüzeneteket ír ki, hogy nem megfelelő felhasználónév jelszó stb., nem ír ki semmit egyszerűen megnyitja az error pagert. (hiba.php)

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés