- Home
- Categorie
- Coding e Sistemistica
- PHP
- Require - richiamare funzioni da una pagina php
-
Require - richiamare funzioni da una pagina php
Ciao a tutti, sto cercando di realizzare un sito in php con al caratteristica di avere tutte le funzioni per le varie elaborazioni su un unico file php, per permettermi poi di effetturare rapidamente aggiornamenti futuri. Queste funzioni poi vengono richiamate dalle varie pagine del sito. ma non riesco a farlo funzionare.
Nella pagina funzioni.php ho una funzione identificazione() interrogo il db mysql per estrarre il nome della persona che si è loggata,e stamparlo a video tipo "Benvenuto $nome". In piu se il nome corrisponde a quello dell amministratore si dovrebbe visualizzare un menù aggiuntivo.funzioni.php
function identificazione(){ ?> <h2>Area Riservata</h2> <ul> <li>Benvenuto <?php $host = "xxxxxxxxx"; $username = "xxxxxx"; $pass = "xxxxxxxxxxx"; $database = "xxxxxxxxxxxx"; $nominativo_amministratore = "xxxxxx yyyyyyyy"; $connessione = mysql_connect($host,$username,$pass); $db=mysql_select_db($database, $connessione); $query = "SELECT * FROM area_riservata WHERE nome = '$nome'"; $result = mysql_query($query); while ( $row = mysql_fetch_assoc($result)){ $nomecognome = $row['nominativo']; } echo $nomecognome; ?></li> <li><a href="destroy.php">Disconnettiti</a></li> <li> </li> </ul> <br /> <?php if($nome == $nominativo_amministratore){ ?> <h2>Menù Amministratore</h2> <ul> <li><a href="">Gestione Utenti</a></li> <li><a href="">Gestione Materiale</a></li> <li><a href="">Gestione News</a></li> <li> </li> </ul> <br /> <?php } ?> <?php } ?>
Richiamo nella pagina interessata con
<div id="nav"> <?php require("funzioni.php"); echo identificazione(); ?> </div>
Non funziona, il menu amministratore me lo mostra a tutti gli utenti, e il nominativo non viene stampato vicino a "Benvenuto "
Mi aiutate?
-
Riflettendo sul problema credo di aver capito forse dove sta l errore, ma io non sono un esperta quindi cihedo ciarimenti a voi, e ovviamente spero in un vostro aiuto.
Credo che il problema sia nella riga
$query = "SELECT * FROM area_riservata WHERE nome = '$nome'";
nella pagian che riciamo ho all inizio
$nome = $_GET['nome']; che serve per far partire a sessioneIl mio dubbio è:
quando uso il comando require per richiamare la funzione identificazione() dal file funzioni.php, il pezzo di codice viene sostituito nella pagina e poi esguito quindi trovando $nome = $_GET['nome']; o viene elaborato cmq nella pagina funzioni.php ed in questo caso $nome non è valido?
-
Prova con questo:
[php]<div id="nav">
<?php
require("funzioni.php");
identificazione();
?>
</div>[/php]
-
Ciao scusa se rispondo adesso, comunque lo stesso non funziona anche togliendo echo
-
Prova cosi:
[PHP]<?php function identificazione($user){ ?>
//qui ti connetti e cerchi i dati dell'amministratore
if($user == $nominativo_amministratore){ ?>
<h2>Menù Amministratore</h2>
<ul>
<li><a href="">Gestione Utenti</a></li>
<li><a href="">Gestione Materiale</a></li>
<li><a href="">Gestione News</a></li>
<li> </li>
</ul>
<br />
<h2>Area Riservata</h2>
<ul>
<li>Benvenuto <?php echo $user; ?>
</li>
<li><a href="destroy.php">Disconnettiti</a></li>
<li> </li>
</ul>
<br />
<?php
}else{
?>
<h2>Area Riservata</h2>
<ul>
<li>Benvenuto <?php echo $user; ?>
</li>
<li><a href="destroy.php">Disconnettiti</a></li>
<li> </li>
</ul>
<br />
<?php
}
}
?>
[/PHP]E poi
<div id="nav">
<?php
$user=$_SESSION['user'];//casomai utilizzi le sessioni oppure utilizzi $_COOKIE per utilizzare i cookie
require("funzioni.php");
identificazione($user);
?>
</div>
-
Ho fatto una prova veloce e sembra funzionare. Appena questi sciacalli mi lasciano un po di tempo strutturo il tutto e provo meglio.
Grazie di cuore, non sono pratica di scripting e ci stavo sbattendo la testa da diversi giorni
Ciao e grazie a tutti
-
Prego;)
-
Ciao Jeeves, usando questo codice;
<div id="nav">
<?php
require("funzioni.php");
identificazione();
?>
</div>viene mostrato il contenuto della pagina .php, ma subito dopo sotto mi dà questo errore;
Fatal error: Call to undefined function identificazione() in /home/content/c/a/r/carinipa/html/Senzatitolo-2.php on line 169