Autor Zpráva
Dědeček
Profil *
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
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 *
@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 *
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
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 *
@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
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
jak jinak zajistit aby byl uživatel přihlášen cely den? ..

Nejako takto.
Dědeček
Profil *
@srigi: hm pravda .. me nenapadlo :) dik za radu ;)
Dědeček
Profil *
@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
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 *
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
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!';
  }
}
?>

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: