Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: S

Aktivity
Avatar
dilong
Člen
Avatar
dilong:23.1.2019 8:53

Ahojte, riešim problém s header a session v logine. Mam prihlasovací kód s ktorým som doteraz nemal žiaden problém. Nasadil som ho u rôznych providerov syphon, euronet, webhlobe, webhouse.... bez problémov. Teraz som ho však nasadil u menšieho lokálneho providera a nechce mi ho vykonávať.
T.j. aby som bol presný, nevykoná header("Location: ".$error_file);

Vypisuje :
session_start(): Cannot send session cookie - headers already sent by (output started at /home/jb160101/­public_html/ad­min/config.php:9) in /home/jb160101/­public_html/ad­min/protection­.php on line 2
session_start(): Cannot send session cache limiter - headers already sent (output started at /home/jb160101/­public_html/ad­min/config.php:9) in /home/jb160101/­public_html/ad­min/protection­.php on line 2

... a viacero podobnych hlasok

Cpanel k doméne nemá info o nastaveniach PHP a dokonca nefunguje ani phpinfo v kode, errory sa zapnúť nedajú, len som si ich vypísal kódom.

Používam Netbean, ktorý prázdne medzeri automaticky maže a prešiel som si cely kód, žiadne vypisovanie by pred header nemalo byť - navyše použivam to už bez problémov poriadne dlho a na rôznych serveroch.

Nenapadá vás niečo? Žeby nejake striktné obmedzenia v nastavení PHP?
.... zakomentovane riadky som skúšal tiež (t.j. plnú cestu) ale vez výsledku.

Vďaka
Zkusil jsem:

<?php
session_start();
//@ob_start();
//if(session_status()!=PHP_SESSION_ACTIVE) session_start();
//$host  = $_SERVER['HTTP_HOST'];
//$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
 $error_file="login.php";
// header("Cache-control: private");
 if ($_SESSION["user_is_logged"] != 1){
//   header("Location:http://$host$uri/$error_file");
 header("Location: ".$error_file);
 exit();
 }
 ?>

Chci docílit: Snažím sa aby mi to fungoval header a v prípade nezalogovania ma presmeroval na login obrazovku.

Vďaka za každú radu.

Editováno 23.1.2019 8:55
 
Odpovědět
23.1.2019 8:53
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23.1.2019 13:48

Tenhle kod vypada ok. Problem je v jine casti kodu.

headers already sent
Toto pise, pokud byla hlavicka uz odeslana. To nastava pri vypsani mezery, noveho radku, cehokoliv.
Dokonce ti myslim pise, ve kterem souboru k tomu doslo na kterem radku (coz stare php nevypisuje)

output started at /home/jb160101/public_html/admin/config.php:9

Da se to resit tak, ze nastavis do souboru, ktery includujes vsude na prvni radek ob_start (to by melo zabranit vypisovani znaku na echo nebo pri preruseni php) nebo session_start. Pred session_start bys proste nemel mit zadny jiny kod, html, php, ...
Nebo je treba pres php_ini() nastavit cosi, nepouzivam, nevim :)

<?php
echo 'cokoliv'; // vypise text, vytvori header
session_start() // vypise error
?>
// ---

<?php
session_start() // vypise error, prazdny radek pred <?php, se odesila uzivateli, vytvori vlastni header bez session
//---
<?php
?>

<?php
session_start() // vypise error, opet prazdny radek

Zkratka tam mas chybu. Ms take opravuje 20 let stare chyby :)

Editováno 23.1.2019 13:50
 
Nahoru Odpovědět
23.1.2019 13:48
Avatar
dilong
Člen
Avatar
Odpovídá na Peter Mlich
dilong:23.1.2019 17:11

Vdaka za pomoc s zato ze si ma naviedol, kde mam hladat.
Pozrel som vsetky subory ako ich postupne includujem az do prihlasenia ci tam nemam medzeru alebo prazdny riadok mimo PHP kodu.
Vsetko je OK + ziadne echo sa tam nechadza a stale mi to vypisuje. Nechapem.

Riadok na ktory sa s chybou odkazuje v config.php je tento:

$dbc=mysql_connect($SERVER,$LOGIN,$PASS) or die('Pripojenie k serveru zlyhalo!');

Proste, podla mna hlupost (mozno sa mylim) - skusil som aj odstranit " or die('Pripojenie k serveru zlyhalo!')", ale bez zmeny. Dokonca som vsetky subory znova ulozil v pspade aby som vylucil BOM znaky.

Nejake dalsie napady? Som v koncoch. Ako som pisal, nerobilo mi to doteraz na ziadom PHP serveri :(

Editováno 23.1.2019 17:13
 
Nahoru Odpovědět
23.1.2019 17:11
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23.1.2019 17:13

dej si zobrazit zdrojovy kod te stranky. Nekde pred tou hlaskou o cybe bude neco, co tam nema byt. treba nejakeke jina hlaska s chybou.

 
Nahoru Odpovědět
23.1.2019 17:13
Avatar
dilong
Člen
Avatar
Odpovídá na Peter Mlich
dilong:23.1.2019 17:49

Ja tam nic nevidim :(
Jediny je <br> tag ale ten je sucastou vypisu hlasky. Hlasky undefined variable su OK - je to text, ktory sa cita z DB po zalogovani.

<br />
<b>Deprecated</b>:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in <b>/home/jb160101/public_html/admin/config.php</b> on line <b>10</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_art_title in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>82</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_art_title2 in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>100</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_art_title3 in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>118</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_mgart_title in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>130</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_mgart_title2 in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>142</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_mgart_title3 in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>152</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_mgart_title4 in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>163</b><br />
<br />
<b>Notice</b>:  Undefined variable: txt_cont_title in <b>/home/jb160101/public_html/plugins/pluginlist.php</b> on line <b>224</b><br />
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="google-site-verification" content="NCknGDv8Q396RZBg_aEc2vYWHbxYKZWswCxDpN2OoCQ" />
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="../layout/images/favicon-ad.ico">
<link rel="stylesheet" type="text/css" href="../layout/admin.css" media="all">
<script src="../admin/ckeditor-1578/ckeditor.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="//cdn.jsdelivr.net/webshim/1.14.5/polyfiller.js"></script>
  <script>
    webshims.setOptions('forms-ext', {types: 'date'});
    webshims.polyfill('forms forms-ext mediaelement');
    $.webshims.formcfg = {
      en: {
        dFormat: '.',
        dateSigns: '.',
        patterns: {
          d: "dd.mm.yy"
        }
      }
    };
  </script>
</head>
<body>
<div class="admin-containter">
<br />
<b>Notice</b>:  Undefined variable: _SESSION in <b>/home/jb160101/public_html/admin/protection.php</b> on line <b>5</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/jb160101/public_html/admin/config.php:10) in <b>/home/jb160101/public_html/admin/protection.php</b> on line <b>6</b><br />
 
Nahoru Odpovědět
23.1.2019 17:49
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23.1.2019 19:56
  • Tak, zkus odstranit vsechny ostatni chyby.
  • Chybovou hlasku, o ktere jsi psal prvne, v tomto kodu nemas.
  • jeste muzes vyrobit jednoduchy soubor, kam budes vkladat ten config, prihl. formular a nic jineho.Pokud ti to tam bude fungovat, tak je jasne, ze v tom druhem kodu mas chybu.
  • muzes zkusit kod, ktery jsem posilal zde https://www.itnetwork.cz/…c31cfab56756

Ale jemu to stejne nepomohlo, on ma nejaky problem, ktery jde mimo nej.

 
Nahoru Odpovědět
23.1.2019 19:56
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:24.1.2019 7:51

A jeste muzes zkusit potlacit zobrazovani chybovych hlaseni. Treba to zacne fungovat. Ale tim neodstranis chyby, kterych tam mas spousty.
http://php.net/…eporting.php
http://php.net/…onstants.php - seznam konstant, ktere se daji napsat do te zavorky a nebo cislo. E_ALL by melo zobrazovat vsechno. E_ERROR jen zavazne chyby. E_STRICT vsechny chyby krome deprecated (pokud nechces prepisovat mysql na pdo, treba).

A jeste mne napada, ze mas asi i divne poskladany php kod. Vsechno okolo php bys mel vyresit jeste nez udelas prvni echo. misto echo bys to mel ukladat do promene, treba $page .= "neco";
Je to videt z toho, ze chybove hlasky mas nahore i dole pod html kodem.

Editováno 24.1.2019 7:53
 
Nahoru Odpovědět
24.1.2019 7:51
Avatar
petr.jouza
Člen
Avatar
Odpovídá na dilong
petr.jouza:22.2.2019 19:57

Ahoj, mně napadlo, že jednou jsem řešil něco podobného a problém byl v tom, že jsem měl v souboru BOM značku. Uložil jsem pak soubor bez BOM a bylo to OK.

 
Nahoru Odpovědět
22.2.2019 19:57
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:25.2.2019 8:06

Jj, zakerny pspad a ukladani do utf-8. Tam je treba mu nekde rici, ze to chces bez BOM znacky.

 
Nahoru Odpovědět
25.2.2019 8:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.