Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

charly

Erro com criação de cookies!

Mensagens Recomendadas

charly

boas pessoal, eu estou a tentar criar 2 cookies, e no código que tinha, já estava lá para a criação de um outro cookie.

mas quando executo ele da-me erro e eu não entendo porque.

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\sv\login.php:2) in C:\xampp\htdocs\sv\login.php  on line 42

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\sv\login.php:2) in C:\xampp\htdocs\sv\login.php on line 43

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\sv\login.php:2) in C:\xampp\htdocs\sv\login.php on line 46

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Algures na tua linha 2, escreveste conteúdos para o browser (por conteúdos entende-se frases, caracteres, incluindo espaços em branco. Não pode haver ouput antes de qualquer função que modifique os cabeçalhos HTTP (cookies, sesões, etc.)

http://wiki.portugal-a-programar.pt/dev_web:php:problemas_comuns_em_php#sessoes

(fala de sessões, mas aplica-se exactamente o mesmo para os cookies)


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
charly

não isso é impossivel.

eu digo por 2 motivos passando a citar:

quando dizer que é um erro na linha 2 deves estar a referir a "login.php:2" <- a este 2, bem este 2 se não sabes é a porta que ele esta a utilizar, pois os erros são nas linhas 42,43 e 46, e olho para o que está nessas linhas, e são a criação de cookies, apenas nas linhas onde estão a ser criados cookies é que estão a dar erro, por isso algo ser passa.

Ajuda PF

obrigado softclean

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

quando dizer que é um erro na linha 2 deves estar a referir a "login.php:2" <- a este 2, bem este 2 se não sabes é a porta que ele esta a utilizar, pois os erros são nas linhas 42,43 e 46, e olho para o que está nessas linhas, e são a criação de cookies, apenas nas linhas onde estão a ser criados cookies é que estão a dar erro, por isso algo ser passa.

Não, esse "2" é a linha onde o output começa (se leres a descrição do erro), o que significa que tens alguma coisa escrita provavelmente logo no início do ficheiro. Às vezes é apenas um acento que mal se vê ou um espaço lá ..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
charly

olhem entao não sei, deixo aqui o códgo, é que no meu web host o codigo esta igual e funciona e no meu pc não:

<head><title>NexuS On Futur : By NexuSystem.co.cc</title></head>

<?php

/**
* login.php
*
* @version 1.0
* @copyright 2008 by ?????? for XNova
*/

define('INSIDE'  , true);
define('INSTALL' , false);
define('LOGIN'   , true);

$InLogin = true;

$xnova_root_path = './';
include($xnova_root_path . 'extension.inc');
include($xnova_root_path . 'common.' . $phpEx);

includeLang('login');

if ($_POST) {
	$login = doquery("SELECT * FROM {{table}} WHERE `username` = '" . mysql_escape_string($_POST['username']) . "' LIMIT 1", "users", true);

	if ($login) {
		if ($login['password'] == md5($_POST['password'])) {
			if (isset($_POST["rememberme"])) {
				$expiretime = time() + 31536000;
				$rememberme = 1;
			} else {
				$expiretime = 0;
				$rememberme = 0;
			}

			@include('config.php');
			$cookie = $login["id"] . "/%/" . $login["username"] . "/%/" . md5($login["password"] . "--" . $dbsettings["secretword"]) . "/%/" . $rememberme;

			// CODIGO DO CHARLY

			setcookie("cid",$login["id"],$expiretime);
			setcookie("cjog",$login["username"],$expiretime);

			// FIM DO CODIGO DO CHARLY
			setcookie($game_config['COOKIE_NAME'], $cookie, $expiretime);

			unset($dbsettings);

			print "<script type=text/javascript> alert('Login Efectuado com Sucesso!')</script>";
			//print "<script type=text/javascript> window.location = './overview.php' </script>";
			//header("Location: ./overview.php");

			exit;
		} else {
			message($lang['Login_FailPassword'], $lang['Login_Error']);
		}
	} else {
		message($lang['Login_FailUser'], $lang['Login_Error']);
	}
} else {
	$parse                 = $lang;
	$Count                 = doquery('SELECT COUNT(*) as `players` FROM {{table}} WHERE 1', 'users', true);
	$LastPlayer            = doquery('SELECT `username` FROM {{table}} ORDER BY `register_time` DESC', 'users', true);
	$parse['last_user']    = $LastPlayer['username'];
	$PlayersOnline         = doquery("SELECT COUNT(DISTINCT(id)) as `onlinenow` FROM {{table}} WHERE `onlinetime` > '" . (time()-900) ."';", 'users', true);
	$parse['online_users'] = $PlayersOnline['onlinenow'];
	$parse['users_amount'] = $Count['players'];
	$parse['servername']   = $game_config['game_name'];
	$parse['forum_url']    = $game_config['forum_url'];
	$parse['PasswordLost'] = $lang['PasswordLost'];

	$page = parsetemplate(gettemplate('login_body'), $parse);

	// Test pour prendre le nombre total de joueur et le nombre de joueurs connectés
	if ($_GET['ucount'] == 1) {
		$page = $PlayersOnline['onlinenow']."/".$Count['players'];
		die ( $page );
	} else {
		display($page, $lang['Login']);
	}
}

// -----------------------------------------------------------------------------------------------------------
// History version

?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.