#1 2015-04-09 10:36:22

vales30
Endora uživatel
Registrován: 2015-03-24
Příspěvky: 4

Přihlášení na webu

Dobrý den,
vytvořil jsem stránky a na svém localhostu mi vše funguje. Celý projekt jsem vložíl na endoru, ale na stránkách se mi nejde přihlásit.
Nevíte kde může být problém?
Žádnou chybu to nevypisuje, viditelně probíhá jen refresh. Registrace uživatele funguje.


Děkuji

Jedná se o školní projekt valema.g6.cz

Upravil vales30 (2015-04-09 11:28:08)

Offline

#2 2015-04-09 16:03:57

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: Přihlášení na webu

Nechte si vypsat proměnné (přihlašovací údaje), které používáte a porovnejte je s údaji v databázi. Popřípadě pročtěte tento příspěvek.

Případně použijte pro přihlašovací dialog formulář.


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#3 2015-04-09 23:14:27

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Přihlášení na webu

Nemáte náhodou na locale register_globals na hodnote On a pracujete takto s premennými? Poprípade, môžete ukázať Váš skript na prihlasovanie?


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#4 2015-04-10 08:31:12

vales30
Endora uživatel
Registrován: 2015-03-24
Příspěvky: 4

Re: Přihlášení na webu

kksmirice: Proměnné souhlasí. Cítím problém spíš někde v nastavení..
Lkopo: register_globals je Off.

.. není potřeba něco nastavovat na endoře/phpMyAdmin? Něco co jsem přehlédl a proto mi to nefunguje jak na locale?


login.php

<?php
$page = isset($_GET['p'])?$_GET['p']:'home'; //???

if (!array_key_exists('login',$_SESSION))
{  // kontrola jestli existuje index login v poli s $_SESSION
  $_SESSION['login'] = false; // defaulte jsme neprihlaseni 
}  // END OF: kontrola jestli existuje index login v poli s $_SESSION
if ($page == 'login' || ($_SESSION['login'] && $page != 'logoff'))
{ // pokus o nalogovani
  $PHP_login_bw = isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:null; // login z prohlizece
  $PHP_pass_bw = isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:null; // heslo z prohlizece
  $rec = mysql_fetch_assoc(mysql_query("SELECT * FROM zakaznik WHERE login = '" . mysql_real_escape_string
  ($PHP_login_bw)."' AND heslo = '".md5($PHP_pass_bw)."'"));
  if (!$rec) 
    {  // vyzadá si autentizacni tabulku pro login a heslo
        header('HTTP/1.1 401 Unauthorized');
        header('WWW-Authenticate: Basic realm="'.$PHP_system_name.'"');
        $PHP_title = $PHP_system_name.' - Pristup odepren';
        $PHP_redirect = true; // presmerovavame
        $PHP_redirect_time = 5; // po 5 sec na url...
        $PHP_redirect_url = 'index.php'; 
        require 'pages/design/menu.php'; //pripojeni menu
        ?>
          <?php
            echo "<br><span class=\"chyba\" >Pro přístup na tuto stránku se musíte přihlásit!</span>";
          ?>
        <?php
        unset($_SESSION['login']); // odhlaseni autentizacni sessiony  
        require 'pages/design/footer.php'; // pripojeni HTML zapati
        exit;
    } // END OF: vyzadej si autentizacni tabulku pro login a heslo
    else
    {  // jsme prihlaseni
      $PHP_logged = true;
      $PHP_login = $rec['id_zakaznik'];                          
      $PHP_jmeno = $rec['jmeno'];
      $PHP_prijmeni = $rec['prijmeni'];
      $PHP_adresa = $rec['ulice']." ".$rec['cislo_popisne']." ".$rec['mesto']." ".$rec['psc'];
      //$PHP_user_id = $rec['id'];
      $_SESSION['login'] = true; // autentizacni sessiona (vime, ze je uzivatel prihlasen)
    } // END OF: jsme prihlaseni
} // END OF: pokus o nalogovani
else
if ($page == 'logoff')
{ // pokus o odhlaseni
  unset($_SESSION['login']); // odhlaseni autentizacni sessiony 
  //session_destroy();  
  header('HTTP/1.1 401 Unauthorized');
  header('WWW-Authenticate: Basic realm="'.$PHP_system_name.'"');
  //header ('Location: index.php');
} // END OF: pokus o odhlaseni
?>

Upravil kksmirice (2015-04-10 09:26:02)

Offline

#5 2015-04-10 09:33:41

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: Přihlášení na webu

IMHO, proměnná $rec je pole. Vy vyhodnocujete pouze proměnnou $rec, která neexistuje.
Upravte si script tak, aby se testovala alespoň nějaká vrácená proměnní z dotazu, např. $rec['id_zakaznik'] (pokud taková existuje v tabulce).


Zkoušel jste provést úpravy podle zaslaného linku, popřípadě přihlašování změnit na php formulář?


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#6 2015-04-10 13:09:42

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Přihlášení na webu

To s rec je dobre, ked je pole prazdne, vrati to false. No samozrejme musi taky uzivatel aj existovat v databaze. Premennu PHP_system_name nemate inicializovanu ani.


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#7 2015-04-10 22:06:01

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: Přihlášení na webu

PHP_system_name je definována v includovaném scriptu.

S tím loginem bych byl opatrnější. Takhle se jen dozví, zda existuje login a heslo, ale již to neřeší, pokud takových uživatelů bude více. Bohužel ani registrační script neřeší duplicitu záznamů.


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#8 2015-04-11 03:58:31

Destroyer
Endora rádce
Registrován: 2009-11-01
Příspěvky: 2,097
Web

Re: Přihlášení na webu

1. MySQL PHP rozsireni a jeho fce jako mysql_fetch_assoc, mysql_real_escape_string je uz prakticky deprecated
2. warning na radku 4... lepsi by bylo neco jako

 if (!isset($_SESSION) || !array_key_exists('login',$_SESSION)) 

mluvim o tom pouze proto, ze je to skolni projekt, ale jinak to s chybou nema nic spolecne

Kdyz to testuju u sebe(na endore), mam taky problem s tim, ze PHP_AUTH_USER a PHP_AUTH_PW jsou prazdne ... co vam tedy vrati ten mysql prikaz do rec, pokud zadate spravne udaje?

Offline

#9 2015-04-11 09:00:19

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: Přihlášení na webu

Na srv5 jsem také testoval - výsledek přihlašovací dialog, bez přihlášení.
Jsou vynechány dotazy do databáze.

Doporučuji nejprve zjistit co se vrací z autentizačních proměnných a pak řešit dál dotaz. Proto jsem se na začátku všeho ptal, zda jsou shodné hodnoty. Vaše odpověď byla ano, ale moc o tom nejsem přesvědčen, nechte si je v nějakém scriptu vypsat a bude vědět na čem jste.

OT
Vypadá to, že tady spíše diskutujeme my než uživatel big_smile


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#10 2015-04-11 22:25:53

vales30
Endora uživatel
Registrován: 2015-03-24
Příspěvky: 4

Re: Přihlášení na webu

Všem moc děkuji za velkou snahu. Bohužel moje znalosti nesahají do výše, v které mi doporučujete udělat změny.
Vzhledem k tomu, že jsem nepřišel na to jak pouze zprovoznit stránky stejně jako byly na lokálu, tak to musím vzdát.

Stejně z pohledu "lajka" mě fascinuje, že zde to před 14 dny fungovalo a bez jediné změny najednou ne. + jsou mi navrhované takové změny.

Offline

#11 2015-04-11 23:38:39

Destroyer
Endora rádce
Registrován: 2009-11-01
Příspěvky: 2,097
Web

Re: Přihlášení na webu

divim se, ze by to zde vubec nekdy fungovalo, kazdopadne nestacilo by pred

  $PHP_login_bw = isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:null; // login z prohlizece

pridat

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

Offline

#12 2015-04-13 12:56:24

vales30
Endora uživatel
Registrován: 2015-03-24
Příspěvky: 4

Re: Přihlášení na webu

Žádné změny to nedělá.

Offline

#13 2015-04-13 18:02:33

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: Přihlášení na webu

Admin prověří nastavení na serveru.
To co funguje u mě, u Vás není funkční.

Vyčkejte na odpověď admina.


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#14 2015-04-16 12:38:59

MB
Podpora
Registrován: 2013-11-28
Příspěvky: 311

Re: Přihlášení na webu

Dobrý den, o problému jsme  byly informováni a řešíme ho. Odepíši zde až bude problém vyřešen. Omlouváme se za komplikace.

Offline

#15 2015-04-17 15:50:09

MB
Podpora
Registrován: 2013-11-28
Příspěvky: 311

Re: Přihlášení na webu

Je zapotřebí vytvořit na FTP soubor .htaccess s tímto obsahem:

SetEnvIfNoCase Authorization "Basic ([a-z0-9=]+)" REMOTE_AUTHORIZATION=$1

a následně za komentář "pokus o nalogovani" v PHP skriptu toto:

if (isset($_SERVER["REDIRECT_REMOTE_AUTHORIZATION"]) && $_SERVER["REDIRECT_REMOTE_AUTHORIZATION"] != '') {
  $d = base64_decode($_SERVER["REDIRECT_REMOTE_AUTHORIZATION"]);
  list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $d);
}

Offline

Zápatí

Založeno na FluxBB | CZ a SK