Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
charly

Erro com criação de cookies!

Recommended Posts

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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á ..

Share this post


Link to post
Share on other 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

?>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.