Autor Zpráva
Tomashekk
Profil
Nechápu toto, BOM tam nikde není a stejně hlásí že hlavička byla odeslána
Odkaz
<div id="center"><?php
	if($_GET['act'] == "log"){
		$rows = mysql_num_rows(mysql_query("SELECT 1 FROM `user` WHERE `nick`='".addslashes($_POST['prezdivka'])."' AND `password`='".md5(addslashes($_POST['heslo']))."'"));
		if($rows == 1)
			{
				$domena = "http://mops.cz.uvirt16.active24.cz/green/";
				setcookie ("prihlaseni", "jasan", time() + 60*60*24 , "", ".$domena.");
				setcookie ("uzivatel", $_POST['prezdivka'], time() + 60*60*24 , "/", $domena);
				echo $_COOKIE['prihlaseni'];
				Header("Location: index.php?page=modules/user/prihlaseni");
			}
			else
			{
				?><script> alert('Špatné jméno nebo heslo, prosím zadejte správnou kombinaci.');javascript:self.history.back();</script><?
			}
	}
	else
	{
	?> 
        <form id="form1" name="form1" method="post" action="index.php?page=modules/user/prihlaseni&act=log">
      </form>
	<?php } ?>
</div>

a index
<?php 
include('./inc/log.php');
mysql_query("SET CHARACTER SET utf8", $link) or die ("");
mysql_query("SET NAMES utf8", $link) or die ("");

$page = $_GET["page"];
$page .= '.php';
if (!page || !file_exists($page)) $page = "main.php";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zkouška webu</title>
<link href="style/a/screen.css" rel="stylesheet" type="text/css" />
<link href="style/screen.css" rel="stylesheet" type="text/css" />

</head>

<body>
</body>
</html>
panther
Profil
Tomashekk:
na 10. řádku prvního scriptu přesměrováváš (header), výstup máš na 1. řádku (<div id="center">).
ShiraNai7
Profil
<div id="center"><?php

= výstup před použítím setcookie.

Řešení: použít output buffering nebo přesunout ten přihlašovací skript ještě před výstup
Tomashekk
Profil
panther:
jak to odstraním? odebral jsem ten div a stejně problém je ten samý. A přesměrování se mi tam celkem hodí, jenže nevím jak jinak na něj
ShiraNai7:
ok, díky... si musím takové blbosti zapamatovat (hold se učím :( )
ShiraNai7
Profil
Tomashekk:
Zkus dát hned na začátek toho souboru toto:
<?php ob_start(); ?>
panther
Profil
Tomashekk:
jak to odstraním?
nejprve PHP script, pak až HTML. Začátek toho divu přesuň pod to PHP.
Tomashekk
Profil
<?php
	if($_GET['act'] == "log"){
		$rows = mysql_num_rows(mysql_query("SELECT 1 FROM `user` WHERE `nick`='".addslashes($_POST['prezdivka'])."' AND `password`='".md5(addslashes($_POST['heslo']))."'"));
		if($rows == 1)
			{
				$domena = "http://mops.cz.uvirt16.active24.cz/green/";
				setcookie ("prihlaseni", "jasan", time() + 60*60*24 , "", ".$domena.");
				setcookie ("uzivatel", $_POST['prezdivka'], time() + 60*60*24 , "/", $domena);
				echo $_COOKIE['prihlaseni'];
				Header("Location: index.php?page=modules/user/prihlaseni");
			}
			else
			{
				?><script> alert('Špatné jméno nebo heslo, prosím zadejte správnou kombinaci.');javascript:self.history.back();</script><?
			}
	}
	else
	{
	?> <div id="center">
        <form id="form1" name="form1" method="post" action="index.php?page=modules/user/prihlaseni&act=log">
      </form>
	<?php } ?>
</div>


takto to vypadá a stejně to samé.. tuto stránku mám vnořenou do index.php pomocí include
ShiraNai7
Profil
Nemůžeš nastavovat cookie když je už poslán výstup do prohlížeče.
Tomashekk
Profil
ShiraNai7:
takže když v action (20. řádek) nebude index.php .... , ale jen modules/... tak to pošlape, zda to chápu
panther
Profil
Tomashekk:
tuto stránku mám vnořenou do index.php pomocí include
a ten include je kde? Uprostřed body, předpokládám -> nad ním je tuna výstupu (HTML hlavička, atp.).

Nesmí tam být nikde žádný výstup, include funguje trochu jako Ctrl+C, Ctrl+V. Nejprve musí být PHP, pak HTML. V indexu v [#1] jsem žádný include neviděl, myslel jsem, že si ty soubory žijou svým životem. V tom případě dej celé PHP na začátek indexu.
Tomashekk
Profil
panther:
je to v body, jen jsem to odmazal, aby toho tu nebylo děsně moc
panther
Profil
Tomashekk:
jen jsem to odmazal, aby toho tu nebylo děsně moc
odmazal jsi to nejpodstatnější. No, nevadí, šoupni to PHP na začátek indexu, půjde to.
Tomashekk
Profil
Super, už to šlape, ale do cookies se asi nic neukládá, jelikož se nic nevypisuje :(
Tomashekk
Profil
panther:
co je na tom špatně?
$domena = "http://mops.cz.uvirt16.active24.cz/";
setcookie ("prihlaseni", "jasan", time() + 60*60*24 , "/", $domena);
				setcookie ("uzivatel", $_POST['prezdivka'], time() + 60*60*24 , "/", $domena);

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: