Newsgroup: it.comp.www.php
Titolo: form action sulla stessa pagina -- GET e POST

Salve,
oggi stavo provando un paio di cosucce ed ho notato 1 cosa per me 
strana. Una chiamata di tipo POST con un form all'interno della stessa 
pagina non comporta un nuovo "richiamo" della pagina.
example.php
<html>
	form action post su example.php
	parametri
<php>
	if $_POST dei parametri allora ...
	questo codice non viene mai eseguito
forse ï¿œ tutto normale ma io mi aspettavo che il submit comportasse un 
nuovo richiamo della pagina example.php invece questo non succedeva. Se 
impostavo GET come action allora la pagina veniva ricaricata ... perchï¿œ 
il metodo POST deve obbligatoriamente far riferimento ad una pagina 
diversa da quella corrente?
Scusate per la domanda forse troppo facile :)

 diversa da quella corrente?
Questo non ï¿œ vero. Il metodo post puï¿œ fare tranquillamente riferimento 
alla pagina stessa esattamente come il metodo get.
Se a te non succede significa che hai fatto qualche errore nel codice 
dove usi post.
Prendi la tua pagina di test con get e metti method="POST" nella form e 
$_POST al posto di $_GET e deve funzionare esattamente nello stesso modo.
ciao
Mauro

Innuendo ha scritto:
 > Questo non ï¿œ vero. Il metodo post puï¿œ fare tranquillamente riferimento
 > alla pagina stessa esattamente come il metodo get.
Grazie per la precisazione.
 > Se a te non succede significa che hai fatto qualche errore nel codice
 > dove usi post.
 > Prendi la tua pagina di test con get e metti method="POST" nella form e
 > $_POST al posto di $_GET e deve funzionare esattamente nello stesso modo.
Non ho sottomano il codice. Posso solo dirti che nell'html mi limitavo a 
chiamare cambiare POST con GET nel form e nel codice PHP l'invocazione 
degli Array $_POST con $_GET
In teoria a paritï¿œ di funzionamento questi cambi dovrebbero garantire 
uno shifting incolume o sbaglio? invece con GET andava tutto, con POST 
no. Non ho trovato una spiegazione!
Cmq appena ho due minuti riprovo e posto il codice!

 nuovo richiamo della pagina example.php invece questo non succedeva. Se
si fa al contrario :)


 si fa al contrario :)
Cosa intendi per "si fa al contrario"?
In teoria posso farlo quando voglio con un controllo isset sulla 
variabile passata. E poi perchï¿œ dovrebbe funzionare con Get e non con Post?
-- 
- Kaiser -

 si fa al contrario :)
Perché mai?
E nei casi in cui usi una action in cui non c'è alcuna form come fai a 
scrivere "al contrario"?

Kaiser ha scritto:

io mica ho capito...comunque la pagine viene ricaricata...
io di solito faccio cosï¿œ
<?php
if (isset($_POST['mionome'])) {
	echo "Il tuo nome ï¿œ: ".$_POST['mionome'];
} else {
	echo "<form action='#' method='post'>";
	echo "Scrivi il tuo nome: <input type='text' name='mionome'>";
	echo "<input type='submit' value='Invia'>";
	echo "</form>";
}
?>

Il codice seguente perchè va con GET e non con POST?
Mi sfugge qualcosa ... qualcuno sa dirmi il perchè di tutto
questo?????
<?php
if (isset($_GET['file'])) {
        echo "ci siamo";
} else { ?>
    <form action="#" method="get"
    enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" />
    <br />
    <input type="submit" name="submit" value="Submit" />
    </form>
<?php
}
?>

 ?>
perch� in questo caso devi usare $_FILES['file'] al posto di $_GET (e 
perch� scommetto che usavi $_POST['file'])

 perchè scommetto che usavi $_POST['file'])
Immaginavo di esser finito in una situazione particolare. Solo non
capisco perchè la variabile viene passata nell'array $_GET e non in
quello $_POST? $_FILES la usavo poi nell'oggetto che invocavo per
uppare il file ...

     <form action="#" method="get"
Togli quel cancelletto e metti POST, poi segui quello che dice Argaar.
Bye.

Alessandro Pellizzari ha scritto:

si configura come errore il cancelletto?

 si configura come errore il cancelletto?
Non ho mai provato, ma a logica il browser potrebbe interpretarlo come un 
anchor e NON ricaricare la pagina.
Meglio non rischiare... :)
Bye.

 si configura come errore il cancelletto?
Si dovrebbe controllare cosa dice il validatore w3c.

Andrea D'Amore ha scritto:

al validatore sono sempre andati bene...ma in realtà non ho mai avuto 
problemi di alcun tipo, era più che altro per un vizio di stile...nel 
senso che di solito li uso e funziona ma magari è più corretto in un 
altro modo...

     enctype="multipart/form-data">
Questo è il busillis. I form di tipo upload vengono gestiti in maniera
diversa da quelli normali,
vedi
http://www.php.net/manual/en/features.file-upload.post-method.php
bye!