| Autor | Zpráva | ||
|---|---|---|---|
| Lurtz Profil |
#1 · Zasláno: 10. 2. 2013, 14:03:19
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 |
#2 · Zasláno: 10. 2. 2013, 14:12:39
Lurtz:
„nějak mi to nejede“ Můžeš to prosím nějak upřesnit? |
||
| Joker Profil |
#3 · Zasláno: 10. 2. 2013, 14:12:54
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 |
#4 · Zasláno: 10. 2. 2013, 14:14:33
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 * |
#5 · Zasláno: 10. 2. 2013, 14:58:46
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 |
#6 · Zasláno: 10. 2. 2013, 15:29:29
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 |
#7 · Zasláno: 10. 2. 2013, 15:35:27
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 |
#9 · Zasláno: 10. 2. 2013, 15:43:38
Davex:
„Chyba je na 15. řádku“ Toho jsem si nevšiml. Omlouvám se. |
||
| Lurtz Profil |
#10 · Zasláno: 10. 2. 2013, 15:52:11
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.
|
||
|
Časová prodleva: 14 let
|
|||
0