Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

Нова тема
Проблем с автентикация ( PHP и MySQL )
Тази тема е погледната 189 пъти
Добави темата към любими | Принтирай темата | Нова тема 
Публикувано на: 19.08.2008 18:05
cob____
Чирак

Мнения: (1)

Здравейте първо .. :)
.. та ето го и проблема сега ...
 имам оная книга, "Изграждане на практически проекти чрез PHP и MySQL" .. стигнах до глава 25, която е точно за автентикацията на потребителите.. та.. проблема е че, кога се изведе формата за регистриране и се въведът съответните неща, които изисква формата - сичко се записва, регистрацията е успешна! проверявам базата данни през самият MySQL прозорец и сичко си е наред - има си криптирана парола и username, точно както трябва да бъде.. обаче като натисна после опцията за смяна на парола и тука вече ми извежда грешка ... слагам кодовете със си4ките му необходими функции, които изисква.. :)


   След като сме се регистрирали се извиква скрипта member.php,    ето го и него:
                         member.php

<?php

// include function files for this application
require_once('bookmark_fns.php');
session_start();

//create short variable names
$username = $_POST['username'];
$passwd = $_POST['passwd'];

if ($username && $passwd)
// they have just tried logging in
{
    if (login($username, $passwd))
    {
      // if they are in the database register the user id
      $HTTP_SESSION_VARS['valid_user'] = $username;
    } 
    else
    {
      // unsuccessful login
      do_html_header('Problem:');
      echo 'You could not be logged in.
            You must be logged in to view this page.';
      do_html_url('login.php', 'Login');
      do_html_footer();
      exit;
    }     
}

do_html_header('Home');
check_valid_user();
// get the bookmarks this user has saved
if ($url_array = get_user_urls($HTTP_SESSION_VARS['valid_user']));
  display_user_urls($url_array);

// give menu of options
display_user_menu();

do_html_footer();
?>

... в който накрая има функзия за меню: display_user_menu();,
ето я и нея:
                        display_user_menu();

function display_user_menu()
{
  // display the menu options on this page
?>
<hr />
<a href="member.php">Home</a>  |
<a href="add_bm_form.php">Add BM</a>  | 
<?php
  // only offer the delete option if bookmark table is on this page
  global $bm_table;
  if($bm_table==true)
    echo "<a href='#' onClick='bm_table.submit();'>Delete BM</a> | ";
  else
    echo "<font color='#cccccc'>Delete BM</font> | ";
?>
<a href="change_passwd_form.php">Change password</a>
<br />
<a href="recommend.php">Recommend URLs to me</a>  |
<a href="logout.php">Logout</a>
<hr />

<?php
}
... ако изберем Change Password отиваме на change_passwd_form.php, а ето го и него:
                   
                       change_passwd_form.php
<?php
 require_once('bookmark_fns.php');
 session_start();
 do_html_header('Change password');
 
 
 check_valid_user();
 display_password_form();
 
 display_user_menu();
 do_html_footer();
?>
....... и проблема е точно тук.. проблема е във функцията  check_valid_user();, ето я и нея:

                    check_valid_user();

function check_valid_user()
// see if somebody is logged in and notify them if not
{

  global $HTTP_SESSION_VARS;
 
  if (isset($HTTP_SESSION_VARS['valid_user']))
  {
      echo 'Logged in as '.$HTTP_SESSION_VARS['valid_user'].'.';
      echo '<br />';
  }
  else
  {
     // they are not logged in
     do_html_heading('Problem:');
     echo 'You are not logged in.<br />';
     do_html_url('login.php', 'Login');
     do_html_footer();
     exit;
  } 
}
... което е много странно щото тая функция се използва още 1 път преди това, мисла че при регистрацията беше и си работи!!! а тука когато искам да сменям паролата не иска... незнам от какво може да е .. ако имате някакви1 идей - казвайте че умирам от 1 седмица насам .. :)
   Поздраваи :)
      

 


 
---------------------------
Потребител от: 15.08.08 | Всички уроци от cob____ | Всички скриптове от cob____
напиши eMail напиши лично съобщение виж профила на cob____
Публикувано на: 19.08.2008 18:26
Mutatos
Император

Администратор

Мнения: (1277)

Направи един

CODE
1
var_dump($HTTP_SESSION_VARS['valid_user']);

 в тази функция и виж дали изобщо съществува този елемент.

Поздрави!


 
---------------------------
Потребител от: 18.04.04 | Всички уроци от Mutatos | Всички скриптове от Mutatos

Търся за почасова надомна работа преводачи от английски език за превод на материали от IT сферата - новини, уроци ...!
напиши eMail напиши лично съобщение виж профила на Mutatos
 1 посетител чете тази тема (0 потребители и 1 гост)  
Активни потребители: ---
   





IT-PLACE.NET © 2004 - 2008