Autor Zpráva
Lurtz
Profil
Dobrý den, chtěl bych se zeptat, kde mám v tomto zdrojovém kódu chybu, nějak mi to nejede. Děkuji.

<?php

include 'server.php';

//připojení k MySQL
@mysql_connect($server, $user, $password) or die("<h2>Nelze se připojit k MySQL</h2>\n");
mysql_select_db($databaze) or die("<h2>Nelze se připojit k databázi $databaze</h2>\n");
mysql_query("set names 'utf8'");
//start session
session_start();

if(!empty($_POST["jmeno"]) && !empty($_POST["heslo"])) { //byly odeslány neprázdné přihlašovací údaje
  //porovnání se záznamem v tabulce uživatelů
  $dotaz="select * from uzivatele where jmeno='{$_POST["jmeno"]}'";
  $data=mysql_query($dotaz);
  $zaznam=mysql_fetch_array($data);
  if($zaznam["heslo"]==md5($_POST["heslo"])){
    //zadáno správné heslo
    $_SESSION["jmeno"]=$zaznam["jmeno"];  //uložení jména uživatele do session
    echo "<p>Uživatel {$_SESSION["jmeno"]} přihlášen</p>";
  }
  else echo "<h1>Nezadány správné údaje</h1>";
  
}

if(!isset($_SESSION["jmeno"])){
  //session neexistuje - uživatel není přihlášen - zobrazíme přihlašovací formulář
  echo "<form action='session_prihlaseni.php' method='post'>
  <label>Přihlašovací jméno</label>
  <input type='text' name='jmeno' maxlength='20'><br>
  <label>Heslo</label><input type='password' name='heslo'><br>
  <input type='submit' value='Přihlásit'>
  </form>";
}


?>
Davex
Profil
Lurtz:
nějak mi to nejede
Můžeš to prosím nějak upřesnit?
Joker
Profil
Lurtz:
nějak mi to nejede
Asi to bude nějak rozbité.
Kdyby byl konkrétnější popis problému, třeba by někdo věděl i konkrétnější popis příčiny.
Lurtz
Profil
Pardon, tady je výpis chyb.

Warning: session_start() [function.session-start.html]: Cannot send session cookie - headers already sent by (output started at C:\ComplexWebServer\http_docs\Hokej\Php.php:15) in C:\ComplexWebServer\http_docs\Hokej\Php.php on line 23

Warning: session_start() [function.session-start.html]: Cannot send session cache limiter - headers already sent (output started at C:\ComplexWebServer\http_docs\Hokej\Php.php:15) in C:\ComplexWebServer\http_docs\Hokej\Php.php on line 23
PanOdjinud
Profil *
Zkus dát to session_start(); úplně začátek, ještě předtím include... a nebo jestli to nemáš už v jiným souboru to session_start();
Lurtz
Profil
To první, co jste zmínil jsem už zkoušel. A v tom druhém to určitě není. Ale přesto děkuji.
lorin
Profil
Jestli máš kódování UTF-8, můžeš před <?php mít tzv. identifikační byty. Zkus se kouknout v editoru, jestli to jde vypnout. Popř. zkus změnit kódování.
Davex
Profil
Lurtz:
output started at C:\ComplexWebServer\http_docs\Hokej\Php.php:15
Chyba je na 15. řádku v souboru Php.php, kde dochází k výstupu před voláním funkce session_start(). Viz Nejčastější potíže s PHP (FAQ) » headers already sent….

Mělo by se to přepracovat, aby k tomu výstupu došlo později. Nebo zapnout bufferování na úplném začátku prvního skriptu ob_start(), a nebo globálně v php.ini output_buffering = On.
lorin
Profil
Davex:
Chyba je na 15. řádku
Toho jsem si nevšiml. Omlouvám se.
Lurtz
Profil
Opět odzkoušeno, ale zase nic, ale to je spíš, že s tim celkově moc neumim. Přesto děkuji za pomoc, ještě na to mrknu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: