problema con get per includere pagine dal database

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
Salve, vorrei fare il modo che quando un link che faccio

index.php?p=bio

esca la pagina biografia etc.. (per farvi un esempio).

Vi posto il codice delle tre pagine:

index.php
PHP:
<section id="content"><!-- #content -->
			<?php 
			 include("pager.php");
			?>
</section><!-- end of #content -->

pager.php
PHP:
<?php
if(isset($_GET['p'])){ //pagina passata via parametro
$p=$_GET['p'];
include("pages.php?p=".$p."");
}
?>

pages.php
PHP:
<?php
		$url = $_GET["p"];
		$query = "SELECT * FROM pagine WHERE url='".$url."'";
		$result = $db->query($query)or die($db->error);
		if(empty($url)) {
		echo "ID non specificato";
}
elseif ($result->num_rows == 0) { echo "Record non trovato"; }
else
{
		
	
		$strSQL = "SELECT * FROM pagine"
				. " WHERE url= '".$url."'";
	
		$result =  $db->query($strSQL);
        $row = $result->fetch_assoc();
		$titolo = $row['titolo'];
        $testo = $row['testo'];
	    $result->free_result(); 



?>

<?php	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	?>
<?php	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {?>
  <article>
				<h2 class="titolo"><a href="#"><?php echo $titolo; ?></a></h2>
				<p><?php echo $testo; ?></p>
</article>           
	<?php 
	}
}
?>

Mi dite come posso fare ..

che io faccio

?p=chisiamo
?p=dovesiamo
?p=etc

e le pagine vengono caricate dal database.

Però non sto capendo nulla come fare.

vi rivolgo a voi.

grazie mille.
buona giornata.
 
Ultima modifica di un moderatore:
ciao, sta inclusa nella index.php dove sta la template.

PHP:
<?php 
require_once(dirname(__FILE__) . '/inc.php');
?>

e nel file c'è db.php e setting.php
e ve li posto.
setting.php
PHP:
<?php 
$DIR_COOKIE = "sito";
$reg_url = "http://localhost/sito/";
?>

e il file db:
PHP:
<?php
error_reporting(E_ALL & ~E_DEPRECATED);
ini_set('display_errors',1);
ini_set('display_startup_errors',0);
ini_set('log_errors',1);
ini_set('log_errors_max_len',0);
ini_set('ignore_repeated_errors',1);
ini_set('ignore_repeated_source',1);
ini_set('report_memleaks',1);
ini_set('track_errors',1);
ini_set('error_log','php_error.log');


$hostname = "localhost";
$database = "n0k151001";
$username = "root";
$password = "root";



// Effettua la connessione al database
$db = new mysqli($hostname, $username, $password, $database);

// In caso di errore nella connessione termina l'esecuzione
if (mysqli_connect_errno()) {
	exit("<div><strong>Errore durante la connessione:</strong> ".mysqli_connect_error()."</div>");
}
?>

e ho sempre usato cosi.. solo che vorrei fare una cosa che con cosi ?p = mi legga le pagine e con ?a= , gli articoli con tutto il testo.


e gli errori che mi vengono fuori sono questi:

Codice:
Warning: include(pages.php?p=prova) [function.include]: failed to open stream: No error in D:\xampp\htdocs\sito\pager.php on line 4

Warning: include() [function.include]: Failed opening 'pages.php?p=prova' for inclusion (include_path='.;D:\xampp\php\PEAR') in D:\xampp\htdocs\sito\pager.php on line 4


mi dici come fare?

grazie mille.
 
Ultima modifica di un moderatore:
ho risolto

dovevo mettere cosi:
PHP:
<?php
if(isset($_GET['p'])){ //pagina passata via parametro
$p=$_GET['p'];
include("pages.php");
}
?>

e ha funzionato..

grazie mille.
 
Ultima modifica di un moderatore:
In ogni caso metti dei filtri pesantissimi su quei GET, l'inclusione di dinamica di pagine è una procedura abbastanza rischiosa.
 

Discussioni simili