Jump to content


Ancale

Member Since 16/11/2003
Offline Last Active 23/07/2004, 12:59
-----

Topics I've Started

Duas Dúvidas

22/07/2004, 12:17

Olá pessoal. :D

A minha primeira dúvida é sobre um código de login, que ao meu ver está corretissímo, mas não dá o resultado esperado:

<?php
function Login($nick, $password_pass)
{
         $password = md5($password_pass);
         $connect = mysql_connect("localhost", "user", "senha");
         mysql_select_db("tabela", $connect);
         $query = "SELECT * FROM users WHERE user_password= $password AND username = $nick";
         $sql = mysql_query($query);
         $contagem = mysql_num_rows($sql); //linha 12

               if($contagem == 1)
               {
                     echo "Logado";
               }

               else {
               echo "Não Logado";
               }
               
               


}

Login("usuário", "senha");              //linha de teste!


?>

Por meio de um formulário ele pega o username e o password digitado pelo usuário (com o password usa-se md5, já que a senha está codificada no bd) e verifica no bd se isso está correto. Com mysql_num_rows ele verifica as linhas modificadas. Se houver uma, aparece na tela um "Logado" (no código original eu setava uns cookies, mas tirei porque nessa parte está tudo ok), se não, um "Não Logado". Porém, usando o Apache, só dá "Não Logado", independente do user e/ou a senha existirem ou não. Eu já tentei de tudo e não entendo o que possa estar errado. Alguém saberia resolver esse problema?

PS: É interresante notar que usando um compilador PHP ele dá o seguinte erro:

"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Arquivos de Programas\Easy PHP1-7\home\login_Temp.php in line 12"

Mais interresante: eu fiz um or die() com mysql_error e vejam o que apareceu:

"ErroColuna 'd9ddb6de1f448cd7ed484a9c09569106' desconhecida em 'where clause'"

Eu NUNCA vi esse erro. Alguém sabe me explicar? O d9ddb... é a senha do user decodificada com md5().

==

A minha segunda dúvida é sobre sessions. Eu NÃO consigo usá-las de jeito nenhum!

Vejam o código retirado da documentação do php:

<?php
if (!session_is_registered('count')) {
    session_register('count');
    $count = 1;
}
else {
    $count++;
}
?>

Hello visitor, you have seen this page <?php echo $count; ?> times.<p>;

To continue, <A HREF="nextpage.php?<?php echo SID?>">click here</A>

Agora vejam a penca de erros: <_<

Warning:  session_register(): open(C:\PHP\sessiondata\sess_04aecd754fa7faf28f25f15f748671d4, O_RDWR) failed: No such file or directory (2) in C:\Arquivos de Programas\Easy PHP1-7\home\session_Temp.php on line 3

Warning:  session_register(): Cannot send session cookie - headers already sent by (output started at C:\Arquivos de Programas\Easy PHP1-7\home\session_Temp.php:3) in C:\Arquivos de Programas\Easy PHP1-7\home\session_Temp.php on line 3

Warning:  session_register(): Cannot send session cache limiter - headers already sent (output started at C:\Arquivos de Programas\Easy PHP1-7\home\session_Temp.php:3) in C:\Arquivos de Programas\Easy PHP1-7\home\session_Temp.php on line 3

Warning:  Unknown(): open(C:\PHP\sessiondata\sess_04aecd754fa7faf28f25f15f748671d4, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning:  Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\PHP\sessiondata) in Unknown on line 0


Eu verifiquei no php.in e o session.save_path está na pasta "C:\Arquivos de programas\EasyPHP1-7\home\Sessions", que eu mesmo criei. Diabos, qual é o problema para os sessions não funcionarem?

PS: Eu não sei se é necessário (acredito que sim, pois sessions trabalham com cookies), mas por via das dúvidas, executo o código com o apache ligado. ;)

Dúvidas Básicas

24/04/2004, 17:06

Olá pessoal, será que vocês podiam resolver duas duvidas bem básicas de um newbie?

Minha primeira dúdiva é em relação ao "register_globals" do PHP.ini. Estou usando o Apache, o register_globals está ON, mas eu só consigo obter as variáveis enviadas por metódos GET e POST com o comando $_POST['variável']. Porque não dá para colocar diretamente a variável ($variável em vez de $_POST)? :huh:

A minha outra dúvida é sobre programação propiamente dita:

Eu estava querendo fazer uma função que mostrasse numa tabela HTML uma mensagem de erro. Até aí fácil. Porém, são variais mensagens em um outro arquivo. Além disso, em outros arquivos que se não esse eu gostaria de chamar essa função para exibir erros.

Parece fácil, mas eu estou com problemas. Eu construi a função assim:

include "Msgs.php";                      //arquivo com as msgs de erro

function Erro($msgs)
{
                      echo "<table width=\"303\" border=\"0\" cellspacing=\"1\"cellpadding=\"0\" height=\"169\" bgcolor=\"#336699\"align=\"center\"><tr><td bgcolor=\"#336699\" height=\"110\">
  <table width=\"311\" border=\"0\" cellspacing=\"1\"cellpadding=\"0\" bgcolor=\"#EEEDEA\" height=\"136\"><tr><td height=\"175\"><div align=\"center\">";
  echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><font size=\"2\">";
                                return "$msgs";
  echo "</font></b>";
 
  }


Ou seja, a função mostrará numa tabela a string $msgs. Feita a função, vamos chama-lá em outro arquivo:

include "Msgs.php";                                //arquivo com as msgs de erro
include "Erro.php";                                //arquivo com a função

Erro($MsgsQualquer);


Pela lógica (acho eu), ao chamar a função com o argumento $MsgsQualquer, este faria o papel do $msgs, não? Porém, misteriosamente, a tabela fica vazia. Qual diabos seria o problema?

Php Nuke

18/04/2004, 21:30

Olá. Estou usando o Apache para rodar o PHP Nuke. Porém, meu PHPMyAdmin trava quando executa os comandos SQL, já que são muitos (90 tabelas!). Queria saber se há em algum lugar esse arquivo dividido em várias partes, já que eu não consigo executá-lo devido ao grande número de comandos SQL.

Desde já, obrigado.

Apache No Php

30/03/2004, 15:53

Olá pessoal, será que vocês poderiam resolver um probleminha para mim? :(

Eu estou usando este tutorial para usar o Apache, e que inclusive, descobri aqui no fórum, e por sinal, muito bem falado.

Estou instalando o Apache para funcionar com o PHP no metódo CGI. Instalo o Apache (2.0.47), em "Network Domain" e "Server Name" coloco "locahost", em "Administrator's Email Address" coloco meu e-mail, e instalo na pasta padrão(C:\Arquivos de programas\Apache Group).

Em seguida instalo o PHP 4.3.4 (arquivo EXE). Seleciono a opção de instalação "Standart", seleciono a pasta padrão (C:\php), em "SMTP server" coloco "smtp.uol.com.br" e em "mail function" meu e-mail. Em seguida, seleciono a opção "Apache" para configurar o PHP com este. Tudo ok, PHP instalado.

Em seguida, vou no PHP.ini e coloco cgi.force_redirect para um (na verdade, já estava em um). Então, vou no httpd.conf do Apache e adiciono no final dele (sim, fora dos comentários #):

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

O Apache então está pronto, não? Pois bem, nada acontece. Digito "http://localhost/meu...arquivophp.php" e ele mostra como um arquivo HTML, com todo o código-fonte embaralhado.

Já pesquisei no fórum todo, mas não obtive soluções. Se alguém puder dar um help, obrigado...

IPB Skin By Virteq