Автор Тема: Не мога да разбера защо не ме логва  (Прочетена 9626 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

streleca_stz

  • Jr. Member
  • **
  • Благодарности
  • -Казани: 6
  • -Получени: 0
  • Публикации: 68
    • Tokio Hotel Фен Сайт
Отг:Не мога да разбера защо не ме логва
« Отговор #15 -: 13 Август 2010, 18:43:51 »
Понеже не искам да правя безмислени теми реших да питам тук защото имам подобен проблем.. пиша си кода и го преписвам точно, защото искам първо да заработи пък после стилизирането

ето го кода
Код: PHP
  1. <?php
  2. include  ' functions.php ' ;
  3. if($_POST[ ' form_login ' ]==1)
  4. {
  5.         $login = trim($_POST[ ' login_name ' ]);
  6.         $pass = trim($_POST[ ' login_pass ' ]);
  7.         if(strlen($login)>3 && strlen($pass)>3)
  8.         {
  9.                 db_init();
  10.                 $rs = mysql_query( ' SELECT * FROM users WHERE login =  "  ' .addslashes($login). '  "  AND pass =  "  ' .md5($pass). '  "  ' );
  11.                 if(mysql_num_rows($rs)==1)
  12.                 {
  13.                         $row = mysql_fetch_assoc($rs);
  14.                         $_SESSION[ ' is_logged ' ]=true;
  15.                         $_SESSION[ ' user_info ' ]=$row;
  16.                         header( ' Location: index.php ' );
  17.                         exit;
  18.                 }
  19.                 elseif(mysql_num_rows($rs)==0)
  20.                 {
  21.                         echo  ' <h2>Грешно име или парола!</h2> ' ;
  22.                 }
  23.         }
  24. }
  25. my_header( " Вход " );
  26. ?>
  27. <form action= " login.php "  method= " POST " >
  28.         Име: <input type= " text "  name= " login_name "  />
  29.  
  30.         Парола: <input type= " password "  name= " login_pass "  />
  31.  
  32.         <input type= " hidden "  name= " form_login "  value= " 1 "  />
  33.         <input type= " submit "  value= " Вход "  />
  34. </form>
  35. <?php
  36. footer();

Постоянно ми излиза само Грешно име или парола!

Ако някой знае нека да каже как да го оправя :)
« Последна редакция: 14 Април 2015, 23:31:16 от Avalanche »
In Your Shadow I Can Shine! (:

wuser

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 85
  • -Получени: 49
  • Публикации: 2761
Отг:Не мога да разбера защо не ме логва
« Отговор #16 -: 13 Август 2010, 20:07:35 »
Ами предположения дал +Господ. Най-първо формуляра, какво дава? Дай му един вар дъмп или по-добре принтер и виж изобщо подава ли $_POST[ ' login_pass ' ] и $_POST[ ' login_name ' ]. Ако е така дали имаш табличка users (най-вероятно да) и дали наистина името и паролата са верни. Има ли в нея полета login и pass? Изобщо извади, какво връща базата. След като вади тази грешка, значи мъсяла връща 0 или повече от един резултат. Провери. Ако още не си хванал грешката, дай тук резултата от всичко дето те питах. Ама там е ключа от палатката- или от пост не пристига каквото трябва или организацията на базата не е така.
Мъдростта на патилото
Perl Monks: PHP - it's "training wheels without the bike" -- Randal L. Schwartz


Дееба... чувствам се все едно обяснявам на майка ми как да си отвори пощата
"не работи"
WTF?!?!? к'во значи че не работи?
Не ти се компилира, дава ти грешка, вади ти грешни резултати, компютърът ти се изключва като го напишеш или на целия квартал му спира тока?
Stilgar

smarfy02

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 13
  • -Получени: 0
  • Публикации: 907
  • https://www.facebook.com/pages/Стилияне-ние-сме-с-
    • smarfy02
Re: Не мога да разбера защо не ме логва
« Отговор #17 -: 28 Септември 2011, 14:32:10 »
здр имам същия проблем,имам чувството че фунцтиоята при function.php не работи.
ето  function.php:
<?php
function headers($title){
     
session_start();
?>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><?php echo $title;?></title>
    </head>
    <body>
        <div id="top_menu">
            <?php
            
            
if ($_SESSION['is_loggen']===true)
            {
                echo 
'Ти си влезнал';//.$_SESSION['user_info']['login'].'<a href="logaut.php">изход</a>';
                
            
}else{
                echo 
'трябва да се регестрираш<br/>';
                
                echo 
'<a href="register.php">Регистрирай се</a>|<a href="login.php">влез</a>';
            }
            
            
print_r($_SESSION);
            
var_dump($_SESSION);
            
?>

           
        </div>
       
        <?php
}
function 
footer(){
    
    echo 
'    </body>
</html>
'
;    
}
function 
db_init()
{
mysql_connect('localhost','root','92b2ae1b') or die("erorr");
mysql_select_db('mcf');
}
        
?>


sega login.php:
<?php
include 'function.php';
  
if (
$_POST['form_login']==1) {
    
$login=trim($_POST['login_name']);
    
$pass=trim($_POST['login_pass']);
    if(
strlen($login)>&& strlen($pass)>3){
        
db_init();
        
$rs=mysql_query('SELECT * FROM users WHERE login="' .addslashes($login).'"AND pass="'.md5($pass).'"');
        if(
mysql_num_rows($rs)==1){
               
$row=mysql_fetch_assoc($rs);
               
$_SESSION['is_logged']==true;
               
$_SESSION['user_info']=$row;
               
header('Location: index.php');
               exit;
        }  elseif(
mysql_num_rows($rs)==0) {
            echo 
'error';
        } 
     
        }
}




headers("Вход");


?>

<form action="login.php" method="POST">
   name: <input type="text" name="login_name" value="" /><br/>
   pass:<input type="text" name="login_pass" value="" /><br/>
   <input type="submit" value="влез" />
   <input type="hidden" name="form_login" value="1">



</form>

<?php
 footer
();

прочетох статиите и написах :print_r($_SESSION) ими излиза този текст;
Array ( [user_info] => Array ( [user_id] => 1 [login] => emilis [pass] => 06be5a54d55b0b0befe9e4ad267b756f [real_name] => EMILIS [email] => eps@gbg.bg [date_register] => 1317207532 [type] => 1 [actyve] => 1 ) )
https://www.facebook.com/pages/Стилияне-ние-сме-с-теб-Победата-е-твоя/

intel

  • Гост
Re: Не мога да разбера защо не ме логва
« Отговор #18 -: 28 Септември 2011, 14:54:25 »
Елементарна грешка в login.php:

Това
$_SESSION['is_logged']==true;
Трябва да е
$_SESSION['is_logged']=true;
== и = са два напълно различни оператора :)

smarfy02

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 13
  • -Получени: 0
  • Публикации: 907
  • https://www.facebook.com/pages/Стилияне-ние-сме-с-
    • smarfy02
Re: Не мога да разбера защо не ме логва
« Отговор #19 -: 28 Септември 2011, 15:15:51 »
Елементарна грешка в login.php:

Това
$_SESSION['is_logged']==true;
Трябва да е
$_SESSION['is_logged']=true;
== и = са два напълно различни оператора :)
верно,оправих го но пак не ще да ми пуска,изкaрва ми  error ,
elseif(mysql_num_rows($rs)==0){
echo'error';
да не е от database ?
« Последна редакция: 28 Септември 2011, 15:18:58 от smarfy02 »
https://www.facebook.com/pages/Стилияне-ние-сме-с-теб-Победата-е-твоя/

intel

  • Гост
Re: Не мога да разбера защо не ме логва
« Отговор #20 -: 28 Септември 2011, 15:21:30 »
Ами имаш още елементарни синтактични грешки:

Следващата касае MySQL заявката.
Това:
Цитат
$rs=mysql_query('SELECT * FROM users WHERE login="' .addslashes($login).'"AND pass="'.md5($pass).'"');

Трябва да е:
Цитат
$rs=mysql_query('SELECT * FROM users WHERE login="' .addslashes($login).'" AND pass="'.md5($pass).'"');

Затова ти връща грешка и съответно не те логва...

smarfy02

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 13
  • -Получени: 0
  • Публикации: 907
  • https://www.facebook.com/pages/Стилияне-ние-сме-с-
    • smarfy02
Re: Не мога да разбера защо не ме логва
« Отговор #21 -: 28 Септември 2011, 15:31:43 »
Ами имаш още елементарни синтактични грешки:

Следващата касае MySQL заявката.
Това:
Цитат
$rs=mysql_query('SELECT * FROM users WHERE login="' .addslashes($login).'"AND pass="'.md5($pass).'"');

Трябва да е:
Цитат
$rs=mysql_query('SELECT * FROM users WHERE login="' .addslashes($login).'" AND pass="'.md5($pass).'"');

Затова ти връща грешка и съответно не те логва...
ами, къде ми е грешката не мога да я открия?  сложих втория код и пак не става както в клипа показва ми че не съм активен
https://www.facebook.com/pages/Стилияне-ние-сме-с-теб-Победата-е-твоя/

intel

  • Гост
Re: Не мога да разбера защо не ме логва
« Отговор #22 -: 28 Септември 2011, 15:35:02 »
Сега вече не ти изкарва error нали?

Трябва да се научите да си проверявате кода, къде точно е счупен - без значение дали логически или синтактично.

smarfy02

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 13
  • -Получени: 0
  • Публикации: 907
  • https://www.facebook.com/pages/Стилияне-ние-сме-с-
    • smarfy02
Re: Не мога да разбера защо не ме логва
« Отговор #23 -: 28 Септември 2011, 15:38:55 »
Сега вече не ти изкарва error нали?

Трябва да се научите да си проверявате кода, къде точно е счупен - без значение дали логически или синтактично.
така е,но ми изкарва че съм не активен  а в таблицата е "1"-активен,а ми искарва че съм "0" ?
« Последна редакция: 28 Септември 2011, 15:43:57 от smarfy02 »
https://www.facebook.com/pages/Стилияне-ние-сме-с-теб-Победата-е-твоя/

intel

  • Гост
Re: Не мога да разбера защо не ме логва
« Отговор #24 -: 28 Септември 2011, 15:45:07 »
Дам...
Това е така защото извикваш session_start(); в headers(); функцията, която на практика е след проверката за вход/login.
Така че на първо време вземи оправи логиката на входа.

Вариант е да промениш в  function.php:

Това
Цитат
<?php
function headers($title){
     session_start();
?>

На това
Цитат
<?php
session_start();
function headers($title){   
?>

Но това пък може да ти повреди някоя друга част на кода.
Отдавна гледах уроците на гатака, но мисля че грешките, които е допуснал са умишлени с цел да ви научат как да разрешавате проблеми като този.
След като вече нямаш синтактични грешки(поне в този код, който си дал, не виждам повече синтактични грешки), остава да се оправят и логическите грешки.

smarfy02

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 13
  • -Получени: 0
  • Публикации: 907
  • https://www.facebook.com/pages/Стилияне-ние-сме-с-
    • smarfy02
Re: Не мога да разбера защо не ме логва
« Отговор #25 -: 28 Септември 2011, 16:00:46 »
Дам...
Това е така защото извикваш session_start(); в headers(); функцията, която на практика е след проверката за вход/login.
Така че на първо време вземи оправи логиката на входа.

Вариант е да промениш в  function.php:

Това
Цитат
<?php
function headers($title){
     session_start();
?>

На това
Цитат
<?php
session_start();
function headers($title){   
?>

Но това пък може да ти повреди някоя друга част на кода.
Отдавна гледах уроците на гатака, но мисля че грешките, които е допуснал са умишлени с цел да ви научат как да разрешавате проблеми като този.
След като вече нямаш синтактични грешки(поне в този код, който си дал, не виждам повече синтактични грешки), остава да се оправят и логическите грешки.
не става, май ми трябва sql koda :(
« Последна редакция: 28 Септември 2011, 16:20:02 от smarfy02 »
https://www.facebook.com/pages/Стилияне-ние-сме-с-теб-Победата-е-твоя/

intel

  • Гост
Re: Не мога да разбера защо не ме логва
« Отговор #26 -: 28 Септември 2011, 20:47:10 »
Оказа се че има още една синтактична грешка при $_SESSION['actyve'] ...

Повече внимание трябва при писането на код, за да няма после главоболия от подобен род :)

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 190
  • Публикации: 3624
Re: Не мога да разбера защо не ме логва
« Отговор #27 -: 28 Септември 2011, 21:23:36 »
Много лошо ги учите, като им пишете кода и не им помагате да мислят.
Никъде в кода му не видях да има някакъв макар и малък дебъгинг.
Постват се 2 страници с код и се пита - а сега кажете къде е грешката?
Виж, ако той е поставил дебъгващ код на няколко места, и въпреки това резултата му бяга - това е различно.
Одавна съм спрял да отговарям на такъв тип, програмисти  ;D
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

smarfy02

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 13
  • -Получени: 0
  • Публикации: 907
  • https://www.facebook.com/pages/Стилияне-ние-сме-с-
    • smarfy02
Re: Не мога да разбера защо не ме логва
« Отговор #28 -: 29 Септември 2011, 12:22:19 »
"колегата " е изпревари :).Ами чесно казано като ги пиша в късно вечер бъркам.А както бе писано по-горе от едната функция трябваше да се премести в index.php , но се получаваше един отваратителен цикъл и неможеше да се регестрира нов потребител.С малко фокуси в тази функция нещата се оправиха. :)
https://www.facebook.com/pages/Стилияне-ние-сме-с-теб-Победата-е-твоя/

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Не мога да разбера защо не ме логва
« Отговор #29 -: 22 Април 2012, 13:12:59 »
Имам един въпрос свързан с session_start ако го сложа само в мy_header на function.php при логване условията в if се изпълняват и ме прехвърля към index.php с изключение на условието $_SESSION['is_logged']=true; понеже според мен в страницата не е стартирана session_start () а извикването на my_header е след това условие в страницата. Но ако сложа в началото на страницата session_start () при влизане в страницата да се логвам ми изписва като забележка, че session_start () се дублира и ще игнорира едната, но кода си работи нормално. Как е правилно да се направи ? И втория ми въпрос е като се логна нормално и ме прехвърли към инdex.php, ако затворя директо браузера или отворя нава страница и стартирам инdex.php ми показва, че съм логнат и ми помни данните с които съм се логнал последния път. Това заради бисквитка при логване ли е ? Защото ако си излеза чрез логоут и си destroy сесията при отваряне на нова страница си иска да се логна както трябва да си е. Благодаря предварително на хората които ще имат желание да ми отговорят :)