Sessão

13. Re: Sessão

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 27/04/2015 - 11:58h


Acho que esqueci de comentar, eu tenho uma pagina add_cliente.php em que a pessoa que não tem login/senha:
a) ou cria um usuário/senha, insere no banco de dados, cria a sessão login e continua a navegação
b) ou não cria um usuário/senha, porém cria a sessão login, assim ele navega normalmente como "convidado"

no seu código, achei interessante você ter escrito
$_SESSION[$login] = $login;
se não me falha a memória, se o login for 'danilo', você criará $_SESSION[danilo]. Se você redirecionar a pessoa para outra página, não funcionará o teste abaixo
if (! $_SESSION['login']) {
header("Location:login.php");
die;
}
pois só haverá a $_SESSION[danilo], por isso eu sugeri $_SESSION[login] = $login;
Mas como você deve ter testado a página, acredito que este meu comentário é irrelevante

Sobre "O único bug que ficou foi que vc é desconectado quando posta. ", isso só ocorre se você destruir a sessão ou não incluir session_start() no início da página


  


14. Re: Sessão

Danilo de Araújo Rodrigues
daniloarodrigues

(usa Outra)

Enviado em 27/04/2015 - 12:20h

cassio88 escreveu:


Acho que esqueci de comentar, eu tenho uma pagina add_cliente.php em que a pessoa que não tem login/senha:
a) ou cria um usuário/senha, insere no banco de dados, cria a sessão login e continua a navegação
b) ou não cria um usuário/senha, porém cria a sessão login, assim ele navega normalmente como "convidado"

no seu código, achei interessante você ter escrito
$_SESSION[$login] = $login;
se não me falha a memória, se o login for 'danilo', você criará $_SESSION[danilo]. Se você redirecionar a pessoa para outra página, não funcionará o teste abaixo
if (! $_SESSION['login']) {
header("Location:login.php");
die;
}
pois só haverá a $_SESSION[danilo], por isso eu sugeri $_SESSION[login] = $login;
Mas como você deve ter testado a página, acredito que este meu comentário é irrelevante

Sobre "O único bug que ficou foi que vc é desconectado quando posta. ", isso só ocorre se você destruir a sessão ou não incluir session_start() no início da página


A) Exato. adicionando a !$sessão a página funciona normalmente.
B) O bug é consequência do if !$_SESSION['login']
C) Vou tentar mais aqui, se eu consegui uma nova solução sem bug, eu posto. Obrigado pela ajuda (y)



15. Re: Sessão

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 27/04/2015 - 13:39h

já experimentou algo assim:
Admin.php:
<?php
session_start();
if (! $_SESSION['login']) {
echo "<meta http-equiv='refresh' content='1;url=http:xxxxx.xxxxx.xxxxx'>";
// ao invés de echo, eu faria um header location para a página de login *****
}
$conn = mysql_connect($hostname,$user,$pass); mysql_select_db($db) or die( "Não foi possível conectar ao banco MySQL");
if (!$conn) {echo "<font color='red'>Não foi possível conectar ao banco MySQL.</font>"; exit;}
else {echo "<font color='green'>Conectado</font>";}
?>
<html>
<head>
<script type="text/javascript" src="tinymce/js/tinymce/tinymce.min.js"></script>
<script>tinymce.init({selector:'textarea',theme: 'modern', plugins: [
"advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker",
"searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
"save table contextmenu directionality emoticons template paste textcolor jbimages"
],content_css: "css/content.css",
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | l ink image | jbimages | print preview media fullpage | forecolor backcolor emoticons",
style_formats: [
{title: 'Bold text', inline: 'b'},
{title: 'Red text', inline: 'span', styles: {color: '#ff0000'}},
{title: 'Red header', block: 'h1', styles: {color: '#ff0000'}},
{title: 'Example 1', inline: 'span', classes: 'example1'},
{title: 'Example 2', inline: 'span', classes: 'example2'},
{title: 'Table styles'},
{title: 'Table row 1', selector: 'tr', classes: 'tablerow1'}
]});</script>
<title>Administração de Notícias</title>
<link href='http://fonts.googleapis.com/css?family=Josefin+Sans:600' rel='stylesheet' type='text/css'>
</head>
<?php
if(isset($_POST['enviar'])){
$title = $_POST['title'];
$introtext = utf8_decode($_POST['introtext']);
$publish_up = utf8_decode($_POST['publish_up']);
// eu usaria The php calendar component written by TJ @triconsole para lidar com datas, mas é questão de preferência *****
$enviar = mysql_query("INSERT INTO jos_content (title, introtext, publish_up) VALUES ('$title', '$introtext', '$publish_up')");
$id = mysql_insert_id();
// NOTE QUE $id foi definido, mas nunca será usado *****
header("Location:Admin.php");
die;
}
// do jeito que está, a página sempre volta para admin.php, talvez seja preciso um botão (link) para outra página ou para sair
?>
<form action="Admin.php" method="post" enctype="multipart/form-data" name="jos_content" style="margin: 50px;">
<p>Título: <input type="text" name="title"></p>
<p>Data: <input type="date" name="publish_up"></p>
<p>Conteúdo:<br><textarea rows="10" cols="45" name="introtext"></p>
<p><input type="submit" name="enviar">
</form>
</BODY>
</HTML>



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts