
viper33
Membros-
Total de itens
69 -
Registro em
-
Última visita
Tudo que viper33 postou
-
Meu formulário que recebe o login ficou assim: <?PHP $login = @$_POST["login"]; $senha = @$_POST["senha"]; include "conecta_mysql.inc"; $sql="SELECT * FROM TBUSU WHERE login = '$login'"; $res=mysql_query($sql); $dados=mysql_fetch_array($res); if ($dados["login"]==$login && $dados["senha"]==$senha) { session_start(); $_SESSION["logado"]=$dados['cdusu']; header("Location: Index.php"); } ?> No início da página principal coloquei assim: <?PHP include "conecta_mysql.inc"; include "valida_sessao.inc"; session_start(); ?> Parou de dar o erro, mas ao invés de abrir a página inicial, aparece uma página em branco.
-
Ok, mas como faço então no caso do header. Se header("location: Index.php"); não posso colocar, como fazer para chamar a minha página principal? Grato.
-
Sei que o assunto é dúvida corriqueira para iniciantes em PHP e já pesquisei na net e não consegui solucionar o meu problema. Tenho o formulário de login: <!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>Controle de Acesso</title> <link rel="stylesheet" href="estilo.css" type="text/css" media="screen" > </head> <body> <form method="post" id="frmlogin" name="login" action="rec_login.php"> <table width="400" border="0" align="center"> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2" class="Titulo">SCCAC - CONTROLE DE ACESSO!</td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td width="13%" rowspan="2"><img src="Cadeado" width="120" height="100" alt="Cadeado" /></td> <td width="80%" height="46"><label for="login">Login:</label> <input name="login" type="text" id="login" size="20" maxlength="20" /></td> </tr> <tr> <td><label for="senha">Senha:</label> <input name="senha" type="password" id="senha" size="20" maxlength="20" /></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td colspan="2" align="center"><input type="submit" name="enviar" id="enviar" value="Enviar" /></td> </tr> </table> </form> </body> </html> E o formulário que verifica o login: <!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>Recebe Login</title> </head> <body> <?PHP include "conecta_mysql.inc"; $login = $_POST["login"]; $senha = $_POST["senha"]; $resultado = mysql_query ("SELECT * FROM TBUSU WHERE login = '$login'"); $linhas = mysql_num_rows ($resultado); if($linhas == 0) { echo "<html><body>"; echo "<p align=\"center\">Usuário não encontrado!</p>"; echo "<p align=\"center\"><a href = \"frmlogin.html\">Voltar</a></p>"; echo "</body></html>"; } else { if($senha != mysql_result($resultado, 0, "senha")) { echo "<html><body>"; echo "<p align=\"center\">A senha está incorreta!</p>"; echo "<p align=\"center\"><a href = \"frmlogin.html\">Voltar</a></p>"; echo "</body></html>"; } else { session_start(); $_SESSION['login']=$login; $_SESSION['senha']=$senha; //setcookie("usuario", $login); //setcookie("senha", $senha); header("Location: index.php"); } } mysql_close($con); ?> </body> </html> Mas ao tentar logar aparece o erro. O que pode ser? Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\SCCAC\rec_login.php:8) in C:\xampp\htdocs\SCCAC\rec_login.php on line 32 linha 32 session_start(); Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\SCCAC\rec_login.php:8) in C:\xampp\htdocs\SCCAC\rec_login.php on line 37 linha 37 header("Location: index.php"); No início da página index tenho <?PHP session_start(); include "conecta_mysql.inc"; ?>
-
Como é um programa para uso em "desktop" o mais indicado seria criar uma sessão, correto?
-
RESOLVIDO Fiz assim: <?PHP $operacao = $_POST["operacao"]; include "conecta_mysql.inc"; $incluir = 0; $hora = date('H:i:s'); if ($operacao=="incluir") { $ramo = $_POST["ramo"]; $incluir = 1; $sql = "INSERT INTO tbrm_ativ values (' ','$ramo',now(),now())"; mysql_query ($sql) or die("Não foi possível inserir."); echo "Ramo de atividade incluído com sucesso."; } mysql_close($con); ?> Agora preciso resolver a última questão: a tabela tem os campos código do usuário que incluiu e o código do usuário que alterou. Preciso saber como capturar esses campos.
-
Tenho em minhas tabelas campos de auditoria onde eu quero gravar o usuário que incluiu ou alterou um registro e as respectivas datas. O campo `Dtincreg` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, fará com que a data seja inserida no banco automaticamente? Se sim, como fazer para a data de alteração do registro também ser capturada, já que o PHP permite apenas um campo current_timestamp em uma tabela? Segue exemplo de tabela abaixo: CREATE TABLE `SIA`. `TbCidade` ( `CdCidade` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `NmCidade` Varchar(30) NOT NULL, `SgEstado` char(2) NOT NULL, `CdUsuinc` CHAR( 20 ) NOT NULL, `Dtincreg` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `Cdusualt` CHAR( 20 ) NOT NULL, `Dtaltreg` TIMESTAMP NOT NULL, UNIQUE ( `NmCidade` ) ) ENGINE = MyISAM;
-
Desinstalei o Easy PHP e instalei o Xampp. Aí funcionou.
-
No formulário que recebe os dados eu uso uma include para o conecta: <!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>Grava Ramo de Atividade</title> </head> <?PHP $operacao = $_POST["operacao"]; include "conecta_mysql.inc"; $incluir = 0; if ($operacao=="incluir") { $codigo = $_POST["codigo"]; $ramo = $_POST["ramo"]; $sql = "INSERT INTO tbrm_ativ values ('$codigo','$ramo')"; $resultado = mysql_query ($sql); echo "Ramo de atividade incluído com sucesso."; } mysql_close($con); ?> <body> </body> </html> E o detalhe é que funciona no windows XP dessa forma.
-
Estou fazendo um programa em PHP, linguagem que não domino. Fiz um fomulário de teste e nele consigo cadastrar normalmente usando o XP. Uso o Easy PHP e Dreamweaver mas no Vista ocorre a mensagem abaixo: No arquivo conecta tenho: <?php include "conf.php"; // inclui o arquivo conf.php $con = mysql_connect($host,$user,$pass); // ciar uma conexao com o bancon de dados mysql_select_db($dbname); ?> E no conf.php tenho: <?php $host = "localhost"; //Host onde a página se encontra $dbname = "sia"; //Nome do banco de dados q armazena os dados $user = "root"; //Nome do usuário q tem acesso ao banco de dados $pass = ""; //Senha do usuário q tem acesso ao banco de dados ?>
-
Finalmente resolvido: O problema estava nesse cabeçalho do formulário de confirmação de login: <!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"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> Depois que retirei esse código finalmente funcionou. Como eu estava trabalhando com 3 forms não conseguia entender direito o tal cabeçalho: quando definia header("location:./index.php"); eu pensava que a mensagem de erro que o PHP exibia, vinha do cabeçalho da página index. Grato. Observação: não deixem também nenhum espaço em branco antes do código PHP do formulário que recebe os dados.
-
Acho que consegui resolver: Na minha conexão eu usava uma variável chamada $senha e uma variável $senha no form de verificação de login. Acho que a confusão estava aí. Troquei o name da senha do formulário de envio e funcionou. Mas...no formulário de confirmação de login agora aparece o erro do cabeçalho que eu ainda não entendi como resolver: Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\SICC Serra\confirma_login.php:7) in C:\xampp\htdocs\SICC Serra\confirma_login.php on line 44 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\SICC Serra\confirma_login.php:7) in C:\xampp\htdocs\SICC Serra\confirma_login.php on line 45 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\SICC Serra\confirma_login.php:7) in C:\xampp\htdocs\SICC Serra\confirma_login.php on line 46 Essas linhas são: setcookie ("login",$login); setcookie ("password",$password); header ("location: index.php");
-
Array ( [login] => malccsi [senha] => sistemas [Enviar] => Enviar ) Senha do formulário: || Senha do banco: |sistemas| A senha está incorreta!
-
Deu isso aqui: sistemasSenha do formulário: || Senha do banco: |sistemas| A senha está incorreta! Voltar
-
Ok Serra. É que estou praticando o PHP porque preciso conhecer a linguagem. E você tem razão. Retornou isso aqui: Array ( [cdusu] => 1 [nmusu] => Wiliam Bonner [login] => malccsi [senha] => sistemas ) Quando coloco echo mysql_result($resultado,0,"senha"); aparece a senha que está no banco mas exibe a mensagem de senha incorreta! Grato Estou usando esse script para o banco: CREATE TABLE `tbusu` ( `cdusu` int(11) NOT NULL auto_increment, `nmusu` varchar(40) NOT NULL, `login` varchar(20) NOT NULL, `senha` varchar(20) NOT NULL, PRIMARY KEY (`cdusu`), UNIQUE KEY `login` (`login`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
Coloquei o que me passou e continuou da mesma forma. Fiz um teste digitando um login que não existe no banco e retorna a mensagem de que esse usuário não existe. Ou seja, até essa parte deu certo.
-
Serra, eu fiz o que você falou mas deu a mesma mensagem e o echo no mysql não retornou nada. Mas testei o sql da seguinte forma no banco e aparece o resultado: SELECT * FROM `tbusu` WHERE login = "malccsi"; Parece que o erro está no sql do form: "SELECT * FROM tbusu WHERE login='$login'" Alguma outra sugestão? Grato.
-
Tenho o seguinte form de login <table width="50%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#efefef" class="fundo"> <tr> <th width="34%" scope="col"> </th> <th height="41" scope="col"><span class="fonte">CONTROLE DE ACESSO</span></th> </tr> <tr> <th width="34%" scope="col"><img src="img/Cadeado.png" width="128" height="128" alt="cadeado" /></th> <td align="center"><form action="confirma_login.php" method="post" name="form_login" target="" id="login"> <p> <label><span class="fonte">Usuário</span> <input type="text" name = "login" id="login" size="20" maxlength="20" /> </label> </p> <p> <label><span class="fonte">Senha</span> <input type="password" name = "senha" id="senha" size="20" maxlength="20" /> </label> </p> <p> <label> <input type="submit" name="Enviar" id="Enviar" value="Enviar" /> <input type="submit" name="Cancelar" id="Cancelar" value="Cancelar" /> </label> </p> </form></td> </tr> <tr> <th scope="col"> </th> <td align="center"></td> </tr> </table> E o form de confirmação de login abaixo: <?php $login = @$_POST['login']; $senha = @$_POST['senha']; include ("conexao.php"); $resultado= mysql_query ("SELECT * FROM tbusu WHERE login='$login'"); $linhas = mysql_num_rows ($resultado); if ($linhas==0) { echo "<html><body>"; echo "<p align =\"center\">Esse usuário não existe!<p>"; echo "<p align =\"center\"><a href =\"login.php\">Voltar</a></p>"; echo "</body></html>"; } else { if($senha != mysql_result($resultado,0,"senha")) { echo "<html><body>"; echo "<p align =\"center\">A senha está incorreta!<p>"; echo "<p align =\"center\"><a href =\"login.php\">Voltar</a></p>"; echo "</body></html>"; } else { setcookie ("login",$login); setcookie ("senha",$senha); header ("location: index.php"); } } Mas sempre dá a mensagem que a senha está incorreta. Onde estou errando? A senha existe no banco e estou digitando-a corretamente. Grato.
-
Ok. Pesquisei no google e descobri que além de não poder usar a mesma página eu poderia usar a função ob_start(); no início da página que recebe os dados do formulário que resolveria o problema. Resolveu em parte, porque a mensagem de erro não aparece mais. Por outro lado a partir do momento que efetuei o login, era para aparecer o menu de opções para o usuário cadastrar e etc. Mas o que ocorre é que aparece novamente o login. Imaginem uma tabela com uma figura no topo embaixo dela um menu, mais embaixo (no centro da página) o login e por fim o rodapé. O que eu preciso é que quando o usuário fizer o login, essa tela de login desapareça e surja o menu. Quando o usuário clicar em cadastrar e etc, o form de cadastro irá aparecer no local onde ficava o login. Alguém pode me ajudar? Estou quebrando a cabeça há dias. Viper33
-
Tenho a seguinte página inicial abaixo. Essa página precisa ser dinâmica, ou seja, quando o usuário fizer o login, aparecerá o menu da página para cadastrar cliente, cidade e etc, controles e relatórios. <?php include "conexao.php"; session_start(); ?> <!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>Untitled Document</title> <style type="text/css"> <!-- </style> <script src="includes/ice/ice.js" type="text/javascript"></script> <script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script> <link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- </style> </head> <body> <center> <div id="tudo"> <div id="topo"><img src="img/Topo.JPG" width="776" height="96" alt="topo" /></div><!--topo--> <div id="menu"> <?php if (isset($_SESSION["logado"])) //verifica se está setado, se existe { ?> <ul id=MenuBar1" class="MenuBarHorizontal"> <li><a class="MenuBarItemSubmenu" href="#">Cadastrar</a> <ul> <li><a href="#">Bairro</a></li> <li><a href="#">Cidade</a></li> <li><a href="#">Cliente</a></li> <li><a href="#">Concorrente</a></li> <li><a href="#">Consulta</a></li> <li><a href="#">Motivo de Cancelamento</a></li> <li><a href="#">Ramo de Atividade</a></li> <li><a href="#">Rua</a></li> <li><a href="#">Terminal</a></li> <li><a href="#">Tipo de Sistema</a></li> <li><a href="#">Usuário</a></li> <li><a href="#">Vendedor</a></li> </ul> </li> <li><a class="MenuBarItemSubmenu" href="#">Controle</a> <ul> <li><a href="#">Contrato</a></li> <li><a href="#">Procuração</a></li> <li><a href="#">Cancelamento de Contrato</a></li> </ul> </li> <li><a class="MenuBarItemSubmenu" href="#">Relatórios</a> <ul> <li><a href="#">Clientes Ativos</a></li> <li><a href="#">Clientes Inativos</a></li> <li><a href="#">Quantidade de Vendas P/ PerÃodo</a></li> <li><a href="#">Relação de Clientes e Motivos de Cancelamento</a></li> <li><a href="#">Total de Clientes P/ Atividade</a></li> <li><a href="#">Relação de Terminais</a></li> </ul> </li> </ul> <?PHP } else { ?> </div><!--menu--> <div id="centro"> <table width="45%" align="center" border="0" cellspacing="0" cellpadding="0"> <tr> <td><h3 align="center"> </h3></td> <td><h4>CONTROLE DE ACESSO</h4></td> </tr> <tr> <td width="17%"><img src="img/Cadeado.png" width="108" height="112" alt="cadeado" /></td> <td width="83%"> <form method="post" action="login.php"> <p>Login: <input type="text" name="login" /></p> <p>Senha: <input type="password" name="senha" /></p> <input type="submit" value="Enviar" /> <input name="Reset" type="reset" value="Cancelar" /></p> </form></td> </tr> </table> </div><!--centro--> <?PHP } ?> </div><!--tudo--> <div id="rodape">© MOS</div><!--rodape--> </center> <script type="text/javascript"> <!-- var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"}); //--> </script> </body> </html> Código do formulário para o qual o formulário de login direciona: <!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>Logar</title> </head> <body> <? $login = @$_POST["login]; $senha = @$_POST["senha"]; include "conexao.php"; $resultado = mysql_query("SELECT * FROM tbusu WHERE login=$login'"); $vericheck=mysql_fetch_array($resultado); if ($vericheck["login]==$login && $vericheck["senha"]==$senha) { session_start(); $_SESSION["logado"]=$vericheck['cdusu']; header("location:./index.php"); } else { header("location:./?id=invalido"); } ?> </body> </html> mensagem de erro: Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\SICC\login.php:9) in C:\xampp\htdocs\SICC\login.php on line 24 Código da página que chamei de "inválido": <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Usuário ou senha inválidos</title> </head> <body> <table border="1" width="50%" bordercolor="#0066CC" bgcolor="#C0C0C0"> <tr> <td><p align =center>Usuário ou senha inválidos!</p> <p align="center"><a href="./?id=index">Ir para página inicial.</a></p></td> </tr> </table> </body> </html>