Ir para conteúdo

POWERED BY:

Arquivado

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

renan.gomes2007

erro no include

Recommended Posts

Boa noite pessoal,

Sou iniciante em php. É o seguinte, estou tentando incluir um arquivo de conexao com o banco de dados em uma outra pagina em php que se encontra na mesma pasta que o arquivo de conexao, porém é apresentado os seguintes erros:

 

Warning: include(1) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in C:\wamp\www\escola\prof\dados_prof.php on line 3

 

Warning: include() [<a href='function.include'>function.include</a>]: Failed opening '1' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\escola\prof\dados_prof.php on line 3

 

Lembrando que estou testando em um servidor local primeiramente para que depois eu hospede.

 

Segue um print da organização dos arquivos na pasta para ver que estão os dois na mesma pasta:

http://www.casimages.com.br/i/130628124908276822.jpg.html

 

O arquivo conexao.php

 

<?php 
header('Content-Type: text/html; charset=utf-8');
$host = "localhost";
$user = "root";
$pass = "";
$banco = "portal_escolar";
mysql_connect($host,$user,$pass) or die( 'Não foi possível conectar: '.mysql_error());
mysql_select_db($banco) or die ('Não foi possível selecionar o banco: '.mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

?>

 

 


 

dados_prof.php

<?php 
session_start();
include("conexao.php") or die (mysql_error()); #arquivo de conexão com banco de dados

$nome = $_SESSION["nome"]; #armazena o nome do usuário na variável de sessão criado em login.php
$prof = $nome; #atribui o valor da variavel nome

# Select no banco de dados para mostrar os dados do professores
$select = mysql_query("SELECT * FROM professor WHERE nome = '$prof';") or die (mysql_error());
$linha = mysql_num_rows($select);
if ($linha > 0) {
	$array = mysql_fetch_array($select);
	for ($i = 0; $array = mysql_fetch_array($select); $i++) {
		$nome = $array["nome"];
		$ra = $array["ra"];
		$email = $array["email"];
		$telefone = $array["telefone"];
?> 

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Dados Pessoais</title>
<link href="menu_assets/estilo.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="conteudo_pagina">
	<h1>Dados Pessoais</h1>
    <table border="1px">
    	<tr>
            <td><span>Nome</span></td>
            <td><span>RA</span></td>
            <td><span>E-mail</span></td>
            <td><span>Telefone</span></td>
        </tr>
        <tr bgcolor="#FFFFFF">
        	<td><?php echo "$nome"; ?></td>
            <td><?php echo "$ra"; ?></td>
            <td><?php echo "$email"; ?></td>
            <td><?php echo "$telefone"; ?></td>
            <?php 
		} #fecha o for
		} #fecha o if 
	    ?>
        </tr>
    </table>
</div>
</body>
</html>

 

 

A variável de sessão está funcionando certinho, pois fiz o teste dando um print na $_SESSION["nome"] e deu tudo certo.

O engraçado é que nas outras páginas está tudo ok, funcionando o include e tudo mais, o problemas só está nessa página mesmo.

 

E já tentei include_once, require, require_once, e todos dão o mesmo erro, e o servidor que estou usando é o Wamp.

 

Gostaria de uma força aí, quem puder me ajudar agradeço e muito ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

LOL, você achou um bug no PHP! :clap:

 

 

Por incrível que pareça, retorna esses erros:

Warning: include(1): failed to open stream: No such file or directory

Warning: include(): Failed opening '1' for inclusion (include_path='.;c:\php\includes')

Para isso:

include "arquivo-qualquer.php" or mysql_error();

Testei na versão 5.4.11. Alguém aí poderia testar na versão estável mais recente?

 

Solução:

basta remover isso:

 or mysql_error()
Deixando só:
include "conexao.php";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha 3 do arquivo dados_prof.php você deve substituir isso:

include("conexao.php") or die (mysql_error()); #arquivo de conexão com banco de dados

Por isso:

include("conexao.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então agora os erros devem ser verdadeiros. Lá em cima você disse que o arquivo se chama "conexão.php" (com til), mas você está chamado por "conexao.php" (sem til). É isso mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

De ambas as maneiras a página fica em branco ...

O estranho é que em outras páginas está funcionando tudo ok, só esta página está bugada ...

nas outras páginas está :

include 'conexao.php';

 

Estranho né ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre o caminho completo dos dois arquvos.

 

 

LOL, você achou um bug no PHP! :clap:

 

Não é bem um bug, o interpretador lê da esquerda para direita, logo se ocorrer um erro no include ele vai emitir e não há nada de errado com o mysql para exibir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é bem um bug, o interpretador lê da esquerda para direita, logo se ocorrer um erro no include ele vai emitir e não há nada de errado com o mysql para exibir.

Você não entendeu. É uma falha ao exibir a mensagem de erro apropriada. Essa falha pode ser chamada de bug, sim.

 

Veja esse código:

<?php include("test.php") or die();

No PHP 5.4.11 retornou aquelas mensagens de erro que citei no post #4.

 

O arquivo [inline]test.php[/inline] existe e se fizer o include sem o [inline]or die()[/inline] ele irá funcionar perfeitamente. A mensagem de erro esperada seria algo como "Não se deve usar operadores lógicos com include pois include não retorna nenhum valor". Ao invés disso, o interpretador acusa que o arquivo não existe, mesmo existindo, deixando o usuário sem saber ao certo onde está o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Removi o die e a pagina fica em branco, com o die retornam aqueles dois erros descritos lá em cima



Estranho, removeu o die?

Removi o die e a pagina fica em branco, com o die retornam aqueles dois erros descritos lá em cima

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Embora seja POG, no início do script (após o <?php) tente colocar:

set_include_path('.');

 

Sem sucesso novamente ... o or die teria alguma influência? pois coloco ele pra ter uma noção de onde esteja o erro caso exista ... e vi que em momentos me mandaram tirar, e a página retornou nada ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal seria remover. Como nas outras páginas não está ocorrendo este problema, verifique como está sendo usado o include nos outros arquivos. O erro é incompreensível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal seria remover. Como nas outras páginas não está ocorrendo este problema, verifique como está sendo usado o include nos outros arquivos. O erro é incompreensível.

 

Nas outras páginas está

include 'conexao.php';

 

 

E está funcionando ... só essa mesmo que não dá certo, será que seria o wamp?

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.