Autor | Zpráva | ||
---|---|---|---|
Dědeček Profil * |
#1 · Zasláno: 4. 5. 2009, 10:12:14
Zdravím, nevíte kde prosím je chyba .. protože se cookie nevytvoří :/
<? if($_POST["submit"] == "Přihlásit se") { $nick=$_POST["nick"]; $password=$_POST["password"]; $password = md5($password); if (mysql_result (mysql_query ("select count(*) from users where nick = '$nick' and pass='$password'"), 0, 0)) { setcookie("pass", $password, time() + 60*60*24); setcookie("nick", $nick, time() + 60*60*24); echo '<meta http-equiv="refresh" content="0;url=index.php" />'; } else { echo 'Heslo nebo jméno bylo chybně zadáno!'; } } ?> |
||
srigi Profil |
#2 · Zasláno: 4. 5. 2009, 10:21:16
Dědeček
Skus to takto: setcookie ( 'pass', $password, time() + 60*60*24, '/'); BTW, urcite kces tajne heslo klienta ukladat do cookie a prenasat hode-dole Internetom? |
||
Dědeček Profil * |
#3 · Zasláno: 4. 5. 2009, 10:27:11
@srigi: nevytvořilo to :/ je v md5 ale jeste to vic zakoduju, jak jinak zajistit aby byl uživatel přihlášen cely den? ..
|
||
Dědeček Profil * |
#4 · Zasláno: 4. 5. 2009, 10:39:17
Měl jsem vypnuto error reporting a hlasi to
Warning: Cannot modify header information - headers already sent by ( jenze na tom radku kde hlasi ze je output nic není :/ je tam <LINK href="css/style.css" rel="stylesheet" type="text/css"> |
||
Nox Profil |
#5 · Zasláno: 4. 5. 2009, 10:41:41
Dědeček
Koukni se i na řádky předtím a pokud pracuješ v utf8 tak se ujisti, že máš vyplé bom |
||
Dědeček Profil * |
#6 · Zasláno: 4. 5. 2009, 10:44:20
@Nox: v utf-8 pracuji, vyple bom? o tom jsem ještě neslyšel .. nějake nakopnutí? Když smažu cely header aj s charsetem a vším tak to stejně vypíše, že je tam output na 9 řádku ikdyž kod končí na 8 :/
|
||
AM_ Profil |
#7 · Zasláno: 4. 5. 2009, 10:44:23
„jenze na tom radku kde hlasi ze je output nic není :/ je tam
<LINK href="css/style.css" rel="stylesheet" type="text/css">“ No a co myslíš že to je? HTML výstup, anglicky tudíž output. Btw taky je zajímavé, že ti výstup začíná tagem LINK, a ne !DOCTYPE nebo <HTML>. |
||
srigi Profil |
#8 · Zasláno: 4. 5. 2009, 10:44:42
|
||
Dědeček Profil * |
#9 · Zasláno: 4. 5. 2009, 10:47:24
@srigi: hm pravda .. me nenapadlo :) dik za radu ;)
|
||
Dědeček Profil * |
#10 · Zasláno: 4. 5. 2009, 10:48:43
@AM_: vypsal jsem ten řádek č. 9 ;) začíná to takhto
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><META http-equiv="Content-Type" content="text/html; charset=utf-8"> <META content="yes" name="apple-mobile-web-app-capable"> <META content="minimum-scale=1.0, width=device-width, maximum-scale=0.6667, user-scalable=no" name="viewport"> <LINK href="css/style.css" rel="stylesheet" type="text/css"> <script type="text/javascript"> window.addEventListener('load', function(){ setTimeout(scrollTo, 0, 0, 1); }, false); </script> <link rel="apple-touch-icon" href="images/icon.png"> <TITLE>SMS | created by Godoy</TITLE> </HEAD><BODY> <div id="topbar"> <div id="leftnav"><? echo $leftnav; ?></div> <div id="title"><? echo $title; ?></div> <div id="rightnav"><? echo $rightnav; ?></a> </div> </div> <DIV id="content"> |
||
AM_ Profil |
#11 · Zasláno: 4. 5. 2009, 10:59:08
Dědeček
Ano, to všechno je výstup. Prvním znakem napsaným na výstup, ať už přímo mimo <?php ?>, nebo echo, print, atd... začíná výstup. <html> <?php setcookie("ahoj", "ahoj", time()); ?> špatně <?php setcookie("ahoj", "ahoj", time()); ?> <html> dobře |
||
Dědeček Profil * |
#12 · Zasláno: 4. 5. 2009, 11:04:35
No jenze to mám takto kdyz to vemu jednoduse
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> <head><!-- ščřžýŠČŘŽÝ --> <meta name="generator" content="PSPad editor, www.pspad.com" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <? require $page; ?> </body> </html> a v $page je <form name="send" action="" method="POST"> <ul class="pageitem"> <li class="form"><input name="nick" placeholder="Nick" type="text" /></li> <li class="form"><input name="password" placeholder="Password" type="password" /></li> </ul> <ul class="pageitem"> <li class="form" id="box"><input id="box" name="submit" type="submit" value="Přihlásit se"/></li> </ul> </form> <? if($_POST["submit"] == "Přihlásit se") { $nick=$_POST["nick"]; $password=$_POST["password"]; $password = md5($password); if (mysql_result (mysql_query ("select count(*) from users where nick = '$nick' and pass='$password'"), 0, 0)) { setcookie( 'pass', $password, time() + 60*60*24); setcookie( 'nick', $nick, time() + 60*60*24); } else { echo 'Heslo bylo chybně zadáno!'; } } ?> takže jak mam dat setcookie pred? :/ |
||
AM_ Profil |
#13 · Zasláno: 4. 5. 2009, 14:29:30
za a) <? se přestává používat, používej plnou notaci <?php
divím se, že ti to vůbec funguje, pokud máš zapnuté short_open_tagy, bude ti server <?xml ... ?> brát jako PHP. udělej to třeba <?php require "login.php"; ?> <!doctype ... ... HTML kód ... <?php echo $login_message; ?> a login.php: <?php if($_POST["submit"] == "Přihlásit se") //tohle se mi moc nelíbí, v případě potíží s kódováním to selže - dnes už ne moc pravděpodobné, ale stále možné. //Lepší je rozlišovat submity podle klíče, tedy <input type="submit" name="prihlas_se" value="Přihlásit se" /> //a pak if (isset($_POST['prihlas_se'])); { $nick=$_POST["nick"]; $password=md5($_POST["password"]); //zbytečně to máš na 2 řádky if (mysql_num_rows(mysql_query ("select count(*) from users where nick = '$nick' and pass='$password'")) > 0) //takhle mi to přijde logičtější { setcookie( 'pass', $password, time() + 60*60*24); setcookie( 'nick', $nick, time() + 60*60*24); $login_message = 'Úspěšně přihlášen'; } else { $login_message = 'Heslo bylo chybně zadáno!'; } } ?> |
||
Časová prodleva: 15 let
|
0