php, linguagem ridicula - session_start() com erro.
nossa! Como é que pode-se usar uma linguagem dessas e dizer que presta? Apresentar erro apenas por que usa-se session_start() entre um codigo html . Um simples espaço em branco ja ferra com tudo. Eu tambem uso php e as vezes fico indignado com algumas limitações ridiculas, saudades do bom e velho asp que mata a pau isso tudo. Pelo menos no quisito simplicidade de programar, hoje em dia tempo é grana e ficar perdendo tempo com bobagens é ridiculo. Como dizem, se quer bem feito tem que pagar e não é a toa que o linux é gratis. Alguem pode me explicar por que esse erro aparece? Esta tudo certo, declarado uma vez, não tem include, esta no topo de tudo, ja verifiquei e reverifiquei mas o erro insiste em aparecer..
Re: php, linguagem ridicula - session_start() com erro.
PHP: session_start - Manual
Este warning (E_NOTICE) aparece quando a sessão já está iniciada (já chamaram session_start antes do ponto atual no arquivo).
Nos comentários existe um singleton que é uma encapsulação do $_SESSION, que deve resolver este seu warning.
PHP: session_start - Manual
Código php:
<?php
/*
Use the static method getInstance to get the object.
*/
class Session
{
const SESSION_STARTED = TRUE;
const SESSION_NOT_STARTED = FALSE;
// The state of the session
private $sessionState = self::SESSION_NOT_STARTED;
// THE only instance of the class
private static $instance;
private function __construct() {}
/**
* Returns THE instance of 'Session'.
* The session is automatically initialized if it wasn't.
*
* @return object
**/
public static function getInstance()
{
if ( !isset(self::$instance))
{
self::$instance = new self;
}
self::$instance->startSession();
return self::$instance;
}
/**
* (Re)starts the session.
*
* @return bool TRUE if the session has been initialized, else FALSE.
**/
public function startSession()
{
if ( $this->sessionState == self::SESSION_NOT_STARTED )
{
$this->sessionState = session_start();
}
return $this->sessionState;
}
/**
* Stores datas in the session.
* Example: $instance->foo = 'bar';
*
* @param name Name of the datas.
* @param value Your datas.
* @return void
**/
public function __set( $name , $value )
{
$_SESSION[$name] = $value;
}
/**
* Gets datas from the session.
* Example: echo $instance->foo;
*
* @param name Name of the datas to get.
* @return mixed Datas stored in session.
**/
public function __get( $name )
{
if ( isset($_SESSION[$name]))
{
return $_SESSION[$name];
}
}
public function __isset( $name )
{
return isset($_SESSION[$name]);
}
public function __unset( $name )
{
unset( $_SESSION[$name] );
}
/**
* Destroys the current session.
*
* @return bool TRUE is session has been deleted, else FALSE.
**/
public function destroy()
{
if ( $this->sessionState == self::SESSION_STARTED )
{
$this->sessionState = !session_destroy();
unset( $_SESSION );
return !$this->sessionState;
}
return FALSE;
}
}
/*
Examples:
*/
// We get the instance
$data = Session::getInstance();
// Let's store datas in the session
$data->nickname = 'Someone';
$data->age = 18;
// Let's display datas
printf( '<p>My name is %s and I\'m %d years old.</p>' , $data->nickname , $data->age );
/*
It will display:
Array
(
[nickname] => Someone
[age] => 18
)
*/
printf( '<pre>%s</pre>' , print_r( $_SESSION , TRUE ));
// TRUE
var_dump( isset( $data->nickname ));
// We destroy the session
$data->destroy();
// FALSE
var_dump( isset( $data->nickname ));
?>
Só para constar, o software que roda este portal é feito em PHP, e roda em Linux. E nem por isso dá esses erros.
---
EDIT: Poste a mensagem de erro completa, creio que você está é com outro problema: chamando session depois dos headers já foram mandados.
Re: php, linguagem ridicula - session_start() com erro.
Não saber programar é um erro, falar mal da linguagem é por que não se conhece sua documentação. A verdade que cada pessoa programa na linguagem que mais gosta, mas nem todos tem saco de ler a documentação. Aposto que a maioria quando é solicitado para desenvolver um software, ou site já vai ligando o compilador e digitando. Nada de modelar antes, ou desenvolver as fases e testar cada parte, e o principal documentar.
Re: php, linguagem ridicula - session_start() com erro.
Citação:
Postado originalmente por
biohazzard
Não saber programar é um erro, falar mal da linguagem é por que não se conhece sua documentação. A verdade que cada pessoa programa na linguagem que mais gosta, mas nem todos tem saco de ler a documentação. Aposto que a maioria quando é solicitado para desenvolver um software, ou site já vai ligando o compilador e digitando. Nada de modelar antes, ou desenvolver as fases e testar cada parte, e o principal documentar.
Falou a mais pura verdade, muitos nem conhecem direito sobre logica, pegam receita de bolo na internet usam CTRL+C.
Re: php, linguagem ridicula - session_start() com erro.
Troca para uma linguagem que vc saiba o que esta fazendo e goste do que faz. Nao existe a linguagem perfeita, existem desenvolvedores que sabem qual liguagem sera melhor para projeto X ou Y.
Re: php, linguagem ridicula - session_start() com erro.
devia falar que o PHP não presta para o pessoal do facebook, ny times, yahoo, wikipedia e varios outros nomes poderosos da web como o site da casa branca que é um dos mais atacados do mundo.
acho que o erro não é na linguagem, mais quem usa ela que não tem conhecimento suficiente.
Re: php, linguagem ridicula - session_start() com erro.
session_start(), header(), etc... Todos tem que ser enviados como header em um cabecalho HTTP... Pra isso, eles tem que ser a primeira saida da pagina.
Se voce colocar um espaco antes da tag <?php ?> voce esta mandando uma saida (o tal espaco) e logo, o header estaria sendo enviado depois de uma saida... O que nao faz absolutamente nenhum sentido...
Eu perdi meu tempo respondendo isso mas tenho certeza que voce só postou esta merda para causar confusão... (desculpem o meu francês.)
Re: php, linguagem ridicula - session_start() com erro.
não saber usar session e php, e falar mal do linux por ser gratuito? você então não precisa mais deste forum pois o mesmo como ja disseram é em php, linux e gratuito.
Re: php, linguagem ridicula - session_start() com erro.
O cara nem voltou mais...
Mas a malhação continua...
Tópico trancado.