PDA

View Full Version : [PHP] Richiamo funzione da form


bobby1112
17-11-2009, 21:18
ragazzi ho questa situazione:

<form method="post" name="metodo" action="esegui()">
<label>

<div align="center">
<input name="inserisci" type="text" id="inserisci" value="" size="70">
<input type="submit" name="Invia" id="Invia" value="Invia">
</div>
</label>
</form>
<?
function esegui()
{
include("script/Avvio.php");
echo "ciao".$_SESSION['user'];
}
?>

ma non va come faccio, la devo richiamare nella stessa pagina!!

vhost87
17-11-2009, 21:47
ragazzi ho questa situazione:



ma non va come faccio, la devo richiamare nella stessa pagina!!

mumble... mi sa che ce un po di confusione.
Richiama la medesima pagina nel form...

<form method="post" name="metodo" action="pagina.php">

vizzz
18-11-2009, 08:32
<form method="post" name="metodo" action="<? echo $_SERVER['PHP_SELF'] ?>">
<label>

<div align="center">
<input name="inserisci" type="text" id="inserisci" value="" size="70">
<input type="submit" name="Invia" id="Invia" value="Invia">
</div>
</label>
</form>
<?
if (isset ($_POST['submit']))
{
include("script/Avvio.php");
echo "ciao".$_SESSION['user'];
}
?>

se invii il form si ricarica la stessa pagina e viene controllata la condizione submit (cioè se il form è stato inviato)
non l'ho provato ma dovrebbe funzionare

flx2000
18-11-2009, 09:16
L'errore è di tipo concettuale; non puoi richiamare funzioni lato-server (es. PHP) come faresti per funzioni lato-client (es. Javascript), perciò non puoi richiamare una funzione PHP in una "action" del codice HTML.

Se vuoi controllare i dati dovresti prima di tutto verificare se sono stati inseriti, e in caso contrario visualizzare quella form.

In pratica il tuo codice sarebbe più corretto così (fermo restando che in qualche altro punto tu abbia gestito la sessione e il valore di 'user', cosa che nello spezzone di codice che hai scritto manca completamente):


<?php
if ( isset($_POST['Invia']) )
{
include "script/Avvio.php";
echo "ciao".$_SESSION['user'];
}
else
{
echo <<<END
<form method="post" name="metodo" action="{$_SERVER['PHP_SELF']}">
<label>
<div align="center">
<input name="inserisci" type="text" id="inserisci" value="" size="70">
<input type="submit" name="Invia" id="Invia" value="Invia">
</div>
</label>
</form>
END;
}
?>