Ir para conteúdo

Arquivado

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

felipesch

MySQL ligação com PHP

Recommended Posts

Bom dia, pessoal.

Sou novo aqui e no mundo da programação, portanto me desculpem se eu falar alguma besteira.
Vamos ao que interessa... tenho um sistema muito antigo que roda via web, mas como estou tendo muitos problemas com o servidor de hospedagem, decidi colocar o sistema num servidor local. Fiz algumas pesquisas e como sou novo neste mundo, acabei achando o Xammp. Fiz a instalação e devidas configurações, abri o HeideSQL e fiz a importação do BD. Até ai tudo certo. Mas quando tento acessar o meu sistema, ele aparece na tela de login como se não tivesse feito a conexão com o BD e ao colocar o login e senha ele só diz que deu erro na linha 77 do meu arquivo index.php que é o seguinte código

<center><b><?=$msg;?></b></center>.

Na parte de cima do código relacionado a $msg está assim

if ($_POST['usuario'] and $_POST['passw']) {
    $selecionar = mysql_query("SELECT * FROM user WHERE login = '".$_POST['usuario']."'");
    $selecionar2 = mysql_query("SELECT * FROM user WHERE senha = '".md5($_POST['passw'])."'");
    if (mysql_num_rows($selecionar) <= "0") {
        $msg = "Usuário incorreto!";
    }
    else {
        if (mysql_num_rows($selecionar2) <= "0") {
            $msg = "Senha incorreta!";
        }
        else {
            $selecionar2 = mysql_fetch_assoc($selecionar2);
            $_SESSION['usuario'] = $selecionar2['nome'];
            $_SESSION['login'] = $selecionar2['login'];
        }
    }
}

A sensação que tenho é que o sistema não está se conectando com o Banco de Dados, mesmo depois de fazer as configurações. Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu disse em outro post seu, seu problema é conexão;
novamente recomendo PDO:
http://www.devmedia.com.br/introducao-ao-php-pdo/24973
http://www.rafaelwendel.com/2011/12/tutorial-pdo-php-data-object/
ou pesquise sem PDO:
https://www.google.com.br/search?q=conex%C3%A3o+php+mysql&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-BR:official&client=firefox-a&gfe_rd=cr&ei=56TYVLGrLc-ElAHT_YCgBg

 

acabei achando o Xammp

 

Ressalva:

esses "pacotes" nem sempre configuram tudo direito...

verifque se as extensões ao Mysql e PDO estão ativadas,

se as portas do Mysql e do apache estão liberadas,

e se os serviços Mysql e apache estão iniciados

(tenho 1 note q xamp não inicia os serviços automaticamente, tem q ser no "braço" mesmo - ou seja, pelo console do xamp).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por parte igual ao Jack Estripador....

 

1) Fernando C..... entrei no php.ini e retirei os comentários que estavam lá, conforme material que você me mandou. Ao abrir o Xammp ele gera uma mensagem na tela escrito Warning e embaixo PHP Startup:. Além deste erro, percebi que caso eu use o PDO, terei que mudar muitas linhas de comandos do BD e não apenas a de acesso ao BD. Então é inviável.

 

2) Domenike.... meus selects estão corretos e quanto ao acesso ao BD, uso em outro arquivo e também está correto. No texto acima, informei apenas um pedaço do código, na qual era relacionado o erro do meu sistema.

 

<?
$m_host = "";
$m_user = "";
$m_pass = "";
$m_db = "";

mysql_connect($m_host,$m_user,$m_pass);
mysql_select_db($m_db);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe, vamos fazer uma coisa.

Desinstala o XAMP. Limpa tds as possíveis caches do seu servidor e de rede tmbm!

Depois Instale o XAMP. Posta seu código completo e erro certinho.

Daqui vejo para vc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Domenike.... já fiz este procedimento que você me disse. Foi a primeira coisa que me veio a cabeça. Depois revisei todas as portas e todas que eu preciso estão liberadas Apache (80 e 443) e MySQL (3306). Quanto ao erro... teria algum local para eu colocar a imagem, já que o forum só aceita pela url?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não da erro no código. Apenas sei que a tela que ele me mostra no sistema é por conta de algum erro de comunicação com o MySQL.

 

Na tela do meu sistema dá este erro: Notice: Undefined variable: msg in C:\xampp\htdocs\gerenciador\index.php on line 77

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está deixando a variável $msg sem informação. Veja:

<center><b><?=$msg;?></b></center>.

Correto, tira esse center com $msg e coloque isso:

if ($_POST['usuario'] and $_POST['passw']) {
    $selecionar = mysql_query("SELECT * FROM user WHERE login = '".$_POST['usuario']."'");
    $selecionar2 = mysql_query("SELECT * FROM user WHERE senha = '".md5($_POST['passw'])."'");
    if (mysql_num_rows($selecionar) <= "0") {
        $msg = "Usuário incorreto!";
        echo $msg."<br>";
    }
    else {
        if (mysql_num_rows($selecionar2) <= "0") {
            $msg = "Senha incorreta!";
            echo $msg."<br>";
        }
        else {
            $selecionar2 = mysql_fetch_assoc($selecionar2);
            $_SESSION['usuario'] = $selecionar2['nome'];
            $_SESSION['login'] = $selecionar2['login'];
        }
    }
}

Caso resolvido!

Sempre uma variável tem que ser declarada no início de você mostrar ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Domenike....

Fiz a alteração que você pediu e olha só o que apareceu agora:

 

"; } else { if (mysql_num_rows($selecionar2) <= "0") { $msg = "Senha incorreta!"; echo $msg."
"; } else { $selecionar2 = mysql_fetch_assoc($selecionar2); $_SESSION['usuario'] = $selecionar2['nome']; $_SESSION['login'] = $selecionar2['login']; } } } ?>

 

Lembro mais uma vez que esta linha de prog está rodando em outro servidor (externo), portanto volto a repetir.... não é problema de script mas sim alguma coisa relacionada a conexão com o BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galerinha..... minha saga continua. Fiz e refiz várias vezes a instalação do Xampp e Vertrigo, mas o problema continua.

De tanto fuçar acabei descobrindo o seguinte (que é o erro em questão):

 

- Ao entrar em http://localhost/xampp, cliquei em status e para a minha surpresa estava assim:

 

Componente Status Sugest�o
blank.gif Banco de dados MySQL DESATIVADO blank.gif PHP DESATIVADO blank.gif HTTPS (SSL) ATIVADO blank.gif Common Gateway Interface (CGI) DESATIVADO blank.gif Server Side Includes (SSI) DESATIVADO blank.gif Servi�o SMTP DESATIVADO blank.gif Servi�o FTP DESATIVADO blank.gif Servi�o Tomcat ATIVADO

 

Mas no Xampp Control Panel estava ativo o Apache, MySQL e o TomCat.

 

Como faço para ativar os serviços?


Consegui ativar os serviços, mas infelizmente a ligação do PHP com o MySQL não está funcionando. Alguma sugestão? Lembrando que ele não da erro e as configurações dos arquivos são as mesmas de um servidor externo que tenho o sistema rodando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

- Ao iniciar o MySQL ele gera o seguinte log:

 

015-02-27 08:37:49 5776 [Note] Plugin 'FEDERATED' is disabled.
2015-02-27 08:37:49 130c InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2015-02-27 08:37:49 5776 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-02-27 08:37:49 5776 [Note] InnoDB: The InnoDB memory heap is disabled
2015-02-27 08:37:49 5776 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2015-02-27 08:37:49 5776 [Note] InnoDB: Memory barrier is not used
2015-02-27 08:37:49 5776 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-02-27 08:37:49 5776 [Note] InnoDB: Not using CPU crc32 instructions
2015-02-27 08:37:49 5776 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2015-02-27 08:37:49 5776 [Note] InnoDB: Completed initialization of buffer pool
2015-02-27 08:37:49 5776 [Note] InnoDB: Highest supported file format is Barracuda.
2015-02-27 08:37:49 5776 [Note] InnoDB: The log sequence numbers 1665234 and 1665234 in ibdata files do not match the log sequence number 1665334 in the ib_logfiles!
2015-02-27 08:37:49 5776 [Note] InnoDB: Database was not shutdown normally!
2015-02-27 08:37:49 5776 [Note] InnoDB: Starting crash recovery.
2015-02-27 08:37:49 5776 [Note] InnoDB: Reading tablespace information from the .ibd files...
2015-02-27 08:37:49 5776 [Note] InnoDB: Restoring possible half-written data pages
2015-02-27 08:37:49 5776 [Note] InnoDB: from the doublewrite buffer...
2015-02-27 08:37:50 5776 [Note] InnoDB: 128 rollback segment(s) are active.
2015-02-27 08:37:50 5776 [Note] InnoDB: Waiting for purge to start
2015-02-27 08:37:50 5776 [Note] InnoDB: 5.6.21 started; log sequence number 1665334
2015-02-27 08:37:50 5776 [Note] Server hostname (bind-address): '*'; port: 3306
2015-02-27 08:37:50 5776 [Note] IPv6 is available.
2015-02-27 08:37:50 5776 [Note] - '::' resolves to '::';
2015-02-27 08:37:50 5776 [Note] Server socket created on IP: '::'.
2015-02-27 08:37:51 5776 [Note] Event Scheduler: Loaded 0 events
2015-02-27 08:37:51 5776 [Note] c:\xampp\mysql\bin\mysqld.exe: ready for connections.
Version: '5.6.21' socket: '' port: 3306 MySQL Community Server (GPL)

- Ao iniciar o Apache ele gera o seguinte log:

 

[Fri Feb 27 08:37:51.347200 2015] [ssl:warn] [pid 3108:tid 244] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Feb 27 08:37:51.446200 2015] [core:warn] [pid 3108:tid 244] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Fri Feb 27 08:37:51.624200 2015] [ssl:warn] [pid 3108:tid 244] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Feb 27 08:37:51.954200 2015] [mpm_winnt:notice] [pid 3108:tid 244] AH00455: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3 configured -- resuming normal operations
[Fri Feb 27 08:37:51.954200 2015] [mpm_winnt:notice] [pid 3108:tid 244] AH00456: Apache Lounge VC11 Server built: Jul 17 2014 11:50:08
[Fri Feb 27 08:37:51.954200 2015] [core:notice] [pid 3108:tid 244] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Fri Feb 27 08:37:51.955200 2015] [mpm_winnt:notice] [pid 3108:tid 244] AH00418: Parent: Created child process 5452
[Fri Feb 27 08:37:52.414200 2015] [ssl:warn] [pid 5452:tid 260] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Feb 27 08:37:52.679200 2015] [ssl:warn] [pid 5452:tid 260] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Fri Feb 27 08:37:52.719200 2015] [mpm_winnt:notice] [pid 5452:tid 260] AH00354: Child: Starting 150 worker threads.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe, o erro mostrado pelo PHP é apenas um warning, erros desse tipo não param a execução do script PHP.

warning traduzido, significa aviso. se houve algum erro do tipo fatal_error esse sim para a execução do script.

No seu caso estou vendo que você fez várias instalações de Apache, PHP e Mysql em sua máquina, uma instalação pode estar barrando a outra, visto que essa aplicações trabalham em portas default do sistema operacional, no caso do apache a porta 80, Mysql porta 3306, já o PHP é apenas um interpretador, não seria um empecilho ter vários.

Eu sugiro que você desinstale todo e qualquer tipo de software do seu computador que esteja trabalhando com essa tríade PHP, Mysql e Apache, no seu caso seria o vertrigo, XAMP, WAMP. utilize o software revounistaller caso seu sistema operacional seja Windows e selecione a opção de varredura completa que ele removerá todos os vestígios desses softwares do seu computador. após isso, reinstale apenas um desses, recomendo o WAMP ou XAMP por serem mais simplórios que o vertrigo.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz estes são avisos, vocÊ pode desligar isto, basta colocar isto no teu script

 

error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(E_ERROR | E_PARSE);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
Tenta mysqli
//dados do db, arquivo separado

error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(E_ERROR | E_PARSE);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSOWORD', '');
define('DB_DATABASE', 'basededados');
define('DB_PREFIXE', 'cw');
define('DB_CHARSET', 'utf8');
 
//funcão de conexão
 

function DBconection(){
    include("config.php");//
    $link = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSOWORD, DB_DATABASE) or die (mysqli_connect_error());
    mysqli_set_charset($link, DB_CHARSET) or die(mysqli_error($link));
    return $link;
}


Compartilhar este post


Link para o post
Compartilhar em outros sites

LeozinCuiabá.... tenho apenas uma instalação dos 3 programas, a instalação que o Xamp fez. Já desinstalei pelo menos umas 4 a 5 vezes o Xammp e refiz tudo do zero. Mas ainda não consigo fazer funcionar como tem que ser. Infelizmente não foi dessa vez.

 

 

 

Felipe, o erro mostrado pelo PHP é apenas um warning, erros desse tipo não param a execução do script PHP.

warning traduzido, significa aviso. se houve algum erro do tipo fatal_error esse sim para a execução do script.

No seu caso estou vendo que você fez várias instalações de Apache, PHP e Mysql em sua máquina, uma instalação pode estar barrando a outra, visto que essa aplicações trabalham em portas default do sistema operacional, no caso do apache a porta 80, Mysql porta 3306, já o PHP é apenas um interpretador, não seria um empecilho ter vários.

Eu sugiro que você desinstale todo e qualquer tipo de software do seu computador que esteja trabalhando com essa tríade PHP, Mysql e Apache, no seu caso seria o vertrigo, XAMP, WAMP. utilize o software revounistaller caso seu sistema operacional seja Windows e selecione a opção de varredura completa que ele removerá todos os vestígios desses softwares do seu computador. após isso, reinstale apenas um desses, recomendo o WAMP ou XAMP por serem mais simplórios que o vertrigo.

 

Espero ter ajudado.


Ldovale.... já tentei o myslqi, mas também não deu certo. Alguma outra sugestão?

 

 

Rapaz estes são avisos, vocÊ pode desligar isto, basta colocar isto no teu script

 

error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(E_ERROR | E_PARSE);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
Tenta mysqli
//dados do db, arquivo separado

error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(E_ERROR | E_PARSE);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSOWORD', '');
define('DB_DATABASE', 'basededados');
define('DB_PREFIXE', 'cw');
define('DB_CHARSET', 'utf8');
 
//funcão de conexão
 

function DBconection(){
    include("config.php");//
    $link = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSOWORD, DB_DATABASE) or die (mysqli_connect_error());
    mysqli_set_charset($link, DB_CHARSET) or die(mysqli_error($link));
    return $link;
}


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o seguinte, cria um arquivo php separado, apenas com a conexão com o banco de dados e posta o código aqui.

na primeira linha do script coloca ini_set('display_errors', 1); e posta aqui tbm os erros aqui tbm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

LeozinCuiabá..... fiz o que você pediu. Criei um script igual ao que está neste link (http://imasters.com.br/artigo/272/mysql/conectando-o-php-ao-banco-de-dados-mysql/) e apenas me aparece uma página em branco.

Troquei a porta do MySQL para 3406 e liberei no firewall e mais uma vez quanto ao erro..... não apareceu nada.

 

 

Alguma outra sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galerinha..... não sei o que fiz, mas agora o sistema gera o seguinte erro: "Warning: mysql_connect(): in C:\xampp\htdocs\gerenciador\master.php on line 8
Nenhuma conex�o p�de ser feita porque a m�quina de destino as recusou ativamente.".

 

O script master.php é o seguinte:

<?php

$m_host = "localhost";
$m_user = "teste";
$m_pass = "teste";
$m_db = "bd_teste";

$conexao = mysql_connect($m_host,$m_user,$m_pass) or die (mysql_error());
$conexao = mysql_select_db("$m_db", $conexao) or die (mysql_error());

?>

 

Já verifiquei as portas e todas estão liberadas, inclusive troquei a porta do MySQL para 3406. Outra tentativa foi desativar o firewall, mas também não tive sucesso.

 

Alguma idéia pessoal?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro de mysql_connect é porque suas credenciais estão erradas, certifique-se que o usuário e a senha do banco estão corretos. você criou algum usuário chamado teste e setou a senha como teste? por default, o usuário é root e não tem senha, na conexão no campo senha você só passa uma string vazia. depois de verificar isso faz um if no mysql_connect para verificar se deu certo a conexão ou não, exemplo:

 

 
if (mysql_connect($m_host,$m_user,$m_pass)) {
 echo 'conexao realizada com sucesso';
} else {
 echo 'erro ao tentar conectar com o banco de dados' . mysql_error();
}
 

E outra, deixa a porta do mysql default mesmo, que é a 3306.

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.