Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Arthur Monteiro de Moraes

herança

Recommended Posts

Primeiramente, isso não tem nada a ver com Herança. Herança é um conceito da Orientação a Objetos. Pelo que entendi, você não está usando objetos

 

Para "passar" variáveis entre páginas, você pode usar session ou cookies. Também é possível passar variáveis via GET, se você acessar pagina2.php?variavel=valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vão surgir inúmeras opções, não tenho certeza se alguém vai apresentar alguma com herança...

 

Algumas opções:

- cookie;

- sessão;

- post;

- get;

- arquivo;

- banco de dados;

Compartilhar este post


Link para o post
Compartilhar em outros sites

é pq fiz uma pagina chamada login.php e dentro de uma td eu coloquei escrito Login inválido! e deixei hidden, quero que apareça somente quando o login estiver errado, porém a validação de usuário é feita na página valida.php, então queria saber como pego o login dessa página e passo pra TD da outra página pra poder aparecer a msg de login inválido ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!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>:: TRADE NET::</title>
<style type="text/css">
body {
background-color: #369;
}

</style>
<script type="text/javascript">
function ValidaForm()
{


d = document.cadastro;
         if (d.usuario.value == ""){
                  alert("O campo " + d.usuario.name + " deve ser preenchido!");
                    d.usuario.focus();
                   return false;
         }
	            if (d.senha.value == ""){
                  alert("O campo " + d.senha.name + " deve ser preenchido!");
                    d.usuario.focus();
                   return false;
				}


return true;
}



</script>
<?php session_start(); ?>
</head>

<body>


<p> </p>
<table width="1318" border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
   <td width="148" align="center"> </td>
   <td width="1170" align="center"><font color="#333333" size="+6" ><b><img src="img/menu001.gif" width="667" height="176"  /></b></font></td>
 </tr>
</table>
<p> </p>
<form method="post" action="valida.php" name="cadastro" onsubmit="return ValidaForm()">
<table width="273" border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>

   <td colspan="2" bgcolor="#000033"><font color="#FFFFFF" ><b>Para logar, informe login e senha abaixo:</b></font></td>
   </tr>

 <tr>
   <td width="59"><label>Usuário</label></td>
   <td width="214"><input type="text" name="usuario" maxlength="50" /></td>
 </tr>
 <tr>
   <td><label>Senha</label></td>
   <td><input type="password" name="senha" maxlength="50" /></td>
 </tr>
 <tr>
   <td> </td>
   <td><input type="submit" value="Entrar" name="Enviar" onclick="return validaLogin();"/></td>
 </tr>
 <tr>
  <td colspan="2" bgcolor="#000033" align="center" ><font color="#FFFF00" style="visibility: <?php echo $_SESSION['visivel']; ?> id="esconde" "><b> Login inválido!</b></font></td>
   </tr>

</table>
</form>

</body>
</html>

 

esse é meu formulario de login

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto não é visibility, e sim display.

 

O display possui vários atributos para exibição e somente um para ocultar, que é o NONE.

Como você está usando TD, o display correto é table-cell. Então:

 

<table>
  <tr>
     <td style="display:none;">invisível</td>
     <td style="display:table-cell;">visível</td>
  </tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como você viu eu passei a sessão la dentro da td <?php echo $_SESSION['visivel']; ?> porém não funciona, não sei o pq

mas o que aparece no código-fonte HTML gerado pela execução? Fica vazio mesmo?

 

 

O display possui vários atributos para exibição e somente um para ocultar, que é o NONE.

Como você está usando TD, o display correto é table-cell. Então:

Dessa eu não sabia :)

 

 

De qualquer forma, veja o HTML gerado. Se estiver vazio, veja se iniciou a session (session_start()). Se aparecer algo (inline, non, etc), siga a dica do Gabriel Heming e veja se usou o atributo certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

o session_start() deve ser a primeira coisa da página. Deve estar antes de qualquer saída para o navegador, inclusive antes de tags html

 

e ative todas as mensagens de erro. coloque isto no topo do script

ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Notice: A session had already been started - ignoring session_start() in D:\webs\newtr3\tradenet\seguranca.php on line 26

 

o session_start() não tem que ser no topo de todas as páginas ?

 

Só que agora eu logo, ele vai pro index.php mas continua na tela de login, é como se tivesse negado o acesso pra aquele usuário

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, isso não tem nada a ver com herança, olha analisei teu código, primeiramente a propriedade CSS não é visibility, e sim display como disseram, no seu caso só vai ser display: inline; para exibir e display:none; para ocultar a mensagem. Porém precisamos saber o que está acontecendo no valida.php, a session tabém deve ser a primeira coisa nas páginas que a utilizam. Eu sugiro que no valida você salve na session o nome do usuario logado, o id dele (dependendo da sua aplicação) e uma posição com um boleano de logado ou não, tipo $_SESSION['logado'], daí você direciona devolta para a tela de login, usando o header do php: header("Location: login.php"); por exemplo, então aí você analiza, if($_SESSION['logado']){header("Location: inicial.php")}else{echo 'fala na autenticação'};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo, o problema é que não abria a sessão, ai não achava o valor da variável, agora da certo, mas agora ficou o problema da segurança.

Se eu coloco

<?php include "seguranca.php";

protegePagina();

?>

Ele fica só na tela de login, pedindo usuario e senha toda hora, não sei o pq disso, se eu tiro funciona mas fica sem a segurança, se eu digitar /index.php ele entra sem precisar colocar login e senha

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!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>:: TRADE NET::</title>
<style type="text/css">
body {
background-color: #369;
}

</style>
<script type="text/javascript">
function ValidaForm()
{


d = document.cadastro;
         if (d.usuario.value == ""){
          		alert("O campo " + d.usuario.name + " deve ser preenchido!");
            		d.usuario.focus();
                   return false;
         }
           		if (d.senha.value == ""){
          		alert("O campo " + d.senha.name + " deve ser preenchido!");
            		d.usuario.focus();
                   return false;
				}


return true;
}



</script>
<?php session_start(); ?>
</head>

<body>


<p> </p>
<table width="1318" border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
   <td width="148" align="center"> </td>
   <td width="1170" align="center"><font color="#333333" size="+6" ><b><img src="img/menu001.gif" width="667" height="176"  /></b></font></td>
 </tr>
</table>
<p> </p>
<form method="post" action="valida.php" name="cadastro" onsubmit="return ValidaForm()">
<table width="273" border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>

   <td colspan="2" bgcolor="#000033"><font color="#FFFFFF" ><b>Para logar, informe login e senha abaixo:</b></font></td>
   </tr>

 <tr>
   <td width="59"><label>Usuário</label></td>
   <td width="214"><input type="text" name="usuario" maxlength="50" /></td>
 </tr>
 <tr>
   <td><label>Senha</label></td>
   <td><input type="password" name="senha" maxlength="50" /></td>
 </tr>
 <tr>
   <td> </td>
   <td><input type="submit" value="Entrar" name="Enviar" onclick="return validaLogin();"/></td>
 </tr>
 <tr>
  <td colspan="2" bgcolor="#000033" align="center" ><font color="#FFFF00" style="visibility: <?php echo $_SESSION['visivel']; ?> id="esconde" "><b> Login inválido!</b></font></td>
   </tr>

</table>
</form>

</body>
</html>

 

esse é meu formulario de login

 

 

 

 

Como o pessoal já disse seu problema não tem nada a ver com herança.

 

 

você está passando o formulário por POST, então é só acessar as variáveis pelo array $_POST[] na página valida.php;

 

$usuario = $_POST['usuario'];

 

$senha = $_POST['senha'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.