Inclusione file

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
Ciao a tutti, sono nuovo di qui e da poco mastico php (sono un principiante insomma =))
Il mio cruccio è il seguente, nella index.php del mio sito includo (con funzione include) 3 file diversi, i quali però prendono i dati da uno stesso database da tabelle diverse.
Quando faccio partire la pagina il primo file mi viene incluso correttamente, al momento però dell'inclusione del secondo mi si blocca completamente la pagina alla riga sopra la funzione include.
Come mai?

Aiutatemi, è un problema davvero grosso per me!


Grazie mille.
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
Ho provato a metterlo, perchè (ho pensato io) per ogni file che includo esso si apre con la connessione al database, config.php, ma anche chiudendola ogni volta il risultato non cambia.
Vi posto il codice di uno dei file che includo (gli alri funzionano uguale ma prendoni i dati da altre 2 tabelle):

PHP:
<?
include "config.php";
// includiamo la pagina contenente il codice per la creazione delle anteprime
require "anteprima.php";

// estraiamo i dati relativi agli articoli dalla tabella
$sql = "SELECT * FROM news ORDER BY art_data DESC";
$query = @mysql_query($sql) or die (mysql_error());

//verifichiamo che siano presenti records
if(mysql_num_rows($query) > 0){
  // se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo
  while($row = mysql_fetch_array($query)){
    $art_id = $row['art_id'];
    $titolo = stripslashes($row['art_titolo']);
    $data = $row['art_data'];
    $articolo = stripslashes($row['art_articolo']);
   
    //valorizziamo una variabili con il link all'intero articolo
    $link = " ..<br><a href=\"../articoli/articolo.php?id=$art_id\">Leggi tutto</a>";

    echo "<span><h3>".$titolo."</h3></span>";
   
    // creaimo l'anteprima che mostra le prime 30 parole di ogni singolo articolo
    // per farlo utilizzo una funzione che vi presenterò più avanti
    echo anteprima($articolo, 150, $link); 
    echo "<br><br>";
   
  } 
}else{
  // se in tabella non ci sono records...
  echo "No dati.";
}
?>
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
ciao
senza il codice che usi è un po' difficile aiutarti.
posta la parte che ti da errore e indica che errore ti da php
Il problema è che non mi da nessun tipo di errore, solamente la pagina stampata a video si interrompe proprio nel punto di inclusione del secondo file..
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
Nessuno riesce ad aiutarmi?

Ho pensato anche, per caso non è un problema del server chenon supporta pi connessione al database in una sola pagina?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
il problema è che visto così il codice che hai postato non sembrerebbe contenere errori.
quindi o l'errore e nel file config.php e nel anteprima.php.

un piccolo appunto, ma non mi sembra che sia dovuto a quello, metti
include_once
e
require_once
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
ciao
il problema è che visto così il codice che hai postato non sembrerebbe contenere errori.
quindi o l'errore e nel file config.php e nel anteprima.php.

un piccolo appunto, ma non mi sembra che sia dovuto a quello, metti
include_once
e
require_once
Li ho inseriti, ma non cambia niente..
Posto i file config e anteprima..

config.php
PHP:
<?php
$dbhost = "nomehost";
$dbname = "nomedb";
$dbuser = "userl";
$dbpass = "pass";
$connect = @mysql_connect($dbhost, $dbuser, $dbpass) or die (mysql_error());
@mysql_select_db($dbname) or die (mysql_error());
?>
anteprima.php

PHP:
<?
function anteprima($testo, $lunghezza, $finale) {
return (count($parole = explode(' ', $testo)) > $lunghezza) ? implode(' ', array_slice($parole, 0, $lunghezza)) . $finale : $testo;
}
?>
Grazie Infinite
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
anche quello che hai postato sembrerebbe sintatticamente corretto.
un piccolo dubbio:
tu dici
...nella index.php del mio sito includo (con funzione include) 3 file diversi...
nel codice vedo solo due inclusioni non tre.
il primo codice che hai postato non è la index? ma è uno dei file che includi nella index?
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
Esatto, il primo file che ho postato è quello che includo nella homepage.
Quello stesso file viene incluso 3 volte nella index, andando a "pescare" per ogni inclusione da una tabella del db diversa
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
allora prova a togliere dai 3 file le righe
PHP:
include "config.php"; 
// includiamo la pagina contenente il codice per la creazione delle anteprime 
require "anteprima.php";
e mettile solo nella index anzi meglio
PHP:
include_once "config.php"; 
// includiamo la pagina contenente il codice per la creazione delle anteprime 
require_once "anteprima.php";
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
Facendo come suggerisci si bloccala pagina addirittura dopo aver stampato a video il "titolo" del primo file incluso.
HELP! =(
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
PHP:
<!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=iso-8859-1" />
	<link rel="shortcut icon" href="http://forum.mrwebmaster.it/images/favicon.ico" />
		<?php include "corpo/text.inc.php"; ?>
	<link href="style.css" rel="stylesheet" type="text/css" />
</head>


<body>
<!--header start -->
	<div id="header">
		<ul>
		<?php include "corpo/menu.inc.php"; ?>
		</ul>
	
		
		<?php include "corpo/frase.inc.php"; ?>
	
	<a href="" class="readMore"></a>
	</div>
<!--header end -->

<!--body start -->
<div id="body">
	<?php include "corpo/leftpanel.inc.php"; ?>

	<?php include "corpo/rightpanel.inc.php"; ?>

<br class="spacer" />
</div>
<!--body end -->


<!--bodyBottom start -->
<div id="bodyBottom">
	<?php include "corpo/news.inc.php"; ?>

	<?php include "corpo/facebook.inc.php" ?>

	<?php include "corpo/newsletter.inc.php" ?>
	
<br class="spacer" />
</div>
<!--bodyBottom end -->

	<?php include "corpo/footer.inc.php"; ?>

</body>
</html>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
sono questi i files incriminati?
PHP:
  <?php include "corpo/news.inc.php"; ?>
    <?php include "corpo/facebook.inc.php" ?>
    <?php include "corpo/newsletter.inc.php" ?>
se in tutti i files hai le 2 righe
include "config.php";
// includiamo la pagina contenente il codice per la creazione delle anteprime
require "anteprima.php";
includi 3 volte gli stessi file e, come minimo, hai una sovrapposizione nella definizione della funzione anteprima, inoltre controlla nei tre file se hai altre sovrapposizione di variabili
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
ciao
sono questi i files incriminati?
PHP:
  <?php include "corpo/news.inc.php"; ?>
    <?php include "corpo/facebook.inc.php" ?>
    <?php include "corpo/newsletter.inc.php" ?>
se in tutti i files hai le 2 righe
include "config.php";
// includiamo la pagina contenente il codice per la creazione delle anteprime
require "anteprima.php";
includi 3 volte gli stessi file e, come minimo, hai una sovrapposizione nella definizione della funzione anteprima, inoltre controlla nei tre file se hai altre sovrapposizione di variabili
Eh già, penso sia proprio li il problema, come posso fare per "sistemarlo"?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
facendo attenzione ai percorsi, credo che l'unica sia mettere prima di quegli include (ribadisco metti l'once) le due righe config e anteprima e toglierle dai file incriminati
PHP:
<?php
//.........
include_once "config.php";    
require_once "anteprima.php";
include_once "corpo/news.inc.php";
include_once "corpo/facebook.inc.php"
include_once "corpo/newsletter.inc.php"
//.....
?>
questo perchè ti basta una connessione sola al db e definire una sola volta la funzione
 

Botolo93

Nuovo Utente
4 Nov 2010
17
0
0
In questo modo il primo file lo include correttamente, il secondo stampa a video
"Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)", dopodichè la pagina si blocca.
C'è già un pezzo in più però ;)