consigli sull'action dei form

akp

Utente Attivo
8 Giu 2015
133
0
16
Buona sera ragazzi, vorrei chiedervi quale delle due tecniche applicate nei form?
1)action nella stessa pagina
2)action in un altra pagina

io momentaneamente sto utilizzando la 1 e in alcuni casi(pochi) la 2. Quali sono i pro e i contro di entrambi i metodi? In quali casi è consigliato utilizzare la 1 e in quali la 2?
 

localhost.nicola

Utente Attivo
11 Dic 2015
58
2
8
Buon giorno, premettendo che se utilizzi l'invio di form, a meno che tu non crei un iframe, viene comunque effettuato il reload totale della pagina.
Io ti consiglio di utilizzare Ajax o $.post() di Jquery, secondo me sono un ottimo strumento per l'invio di form e la validazione di dati.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
a parte il reload entrambi i metodi vanno bene.
secondo me dipende da quanto script html per il form e php ti serve per controllo e elaborazione dei dati, se è poco non vale la pena di fare due pagine
se molto conviene due perchè poi diventa più facile la manutenzione cercando le righe da correggere o modificare.
un accorgimento comodo se usi una pagina sola è nell'action utilizzare la variabile globale $_SERVER['PHP_SELF'] in modo da non preuccuparsi se si dovesse cambiare il nome della pagina,
ti schematizzo
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<!-- quello che serve -->
</form>
poi se vuoi utilizzare ajax o js dipende, comunque, sempre a mio parere, è essenziale il controllo dei dati lato server con php
 

akp

Utente Attivo
8 Giu 2015
133
0
16
ciao
a parte il reload entrambi i metodi vanno bene.
secondo me dipende da quanto script html per il form e php ti serve per controllo e elaborazione dei dati, se è poco non vale la pena di fare due pagine
se molto conviene due perchè poi diventa più facile la manutenzione cercando le righe da correggere o modificare.
un accorgimento comodo se usi una pagina sola è nell'action utilizzare la variabile globale $_SERVER['PHP_SELF'] in modo da non preuccuparsi se si dovesse cambiare il nome della pagina,
ti schematizzo
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<!-- quello che serve -->
</form>
poi se vuoi utilizzare ajax o js dipende, comunque, sempre a mio parere, è essenziale il controllo dei dati lato server con php
Ciao e grazie ad entrambi per le risposte. Lasciando stare il reload che non è un gran problema per me..ho notato che se faccio l'action nella stessa pagina e dopo l'invio per un qualsiasi motivo decido di aggiornarla mi invia nuovamente i dati al database. quindi per evitare questo problema posso utilizzare gli header,però qua si crea un altro problema cioè se in caso di successo volessi far comparire un messaggio "tutto bene" con lheader non questo non comparirebbe.
Altra domanda : potrei crearmi una pagina apposta dove indirizzare tutti POST? Cioè potrebbe essere una buona soluzione per avere il codice sistemato?

Inviato dal mio XT1068 utilizzando Tapatalk
 

localhost.nicola

Utente Attivo
11 Dic 2015
58
2
8
Non riesco a capire bene cosa vorresti fare.

Vorresti convogliare in un unica pagina di elaborazione più form di più pagine?

Io ti consiglio di utilizzare una pagina di risposta per ogni pagina di invio. Appunto per il problema di leggibilità e aggiornamento del codice PHP.

Non so che tipo di programma o sito web stai sviluppando ma nel caso tu avessi 10 pagine, con 1 form ognuna, immaginati come sarebbe scomodo e incasinato manutenere una sola pagina con 10 risposte ai form.
Ovviamente dipende dal progetto, ma secondo me non è consigliabile.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se intendi fare quello che ha inteso localhost.nicola, cioè una pagina che raccoglie i post di diversi form, ha perfettamente ragione, sarebbe un casino.
anche perchè dovresti ricordarti di cambiare il name di tutti i submit altrimenti come fa la pagina php a capire da quale pagina provieni.
se invece è un form solo anche con l'invio di molti dati, puoi fare benissimo una pagina che li raccolga tutti, riinviado alla pagina del form (o altra come preferisci) una volta processati
 

akp

Utente Attivo
8 Giu 2015
133
0
16
Grazie per i chiarimenti, seguirò i vostri suggerimenti :mavieni:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se ti interessa questo è uno schema come in genere utilizzo io.
uso anche le sessioni in modo che se l'utente fa degli errori ricordo i dati giusti e tornado al form, l'utente non è costretto a iniziare da capo tutto l'inserimento
pagina_del_form.php (html+php)
PHP:
<?php
session_start();
if(!isset($_GET['errori']) || $_GET['errori'] ==""){
//se il get non esiste o è vuoto
//o è la prima volta che accedi al form o non sono stati fatti errori
?>
<!DOCTYPE HTML>
<html>
<head>
<!-- tutto quello che serve -->
</head>
<body>
<form action="processa.php" method="post">
  uno:  <input type="text" name="uno" value="<?php echo $_SESSION['uno']; ?>"></br>
  due:  <input type="text" name="due"<?php echo $_SESSION['due']; ?>></br>
  <!-- altri compi di input -->
  <input type="submit" name="invia" value="invia">
</form>
<?php
}else{
	echo $_GET['errori'];
	//e un piccolo js per tornare al form dopo alcuni secondi
}
?>
</body>
</html>

processa.php (solo php, senza niente html)
PHP:
<?php
session_start();
$errori="";//stringa vuota
//raccolgo e verifico i dati, esempio
if($_POST['uno']==""){
	$_SESSION['uno']="";
	$errori.="non hai inserito il dato UNO</br>";
}else{
	$_SESSION['uno']=$_POST['uno'];
}
//eccetera per tutti gli altri post
if($errori==""){
	//la stringa è rimasta vuota
	//non ci sono errori
	//processo i dati, es. invio email o li inserisco nel db...
	if(!$processo){
		//c'è un errore es. di connessione
		$errori="il processo non è andato a buon fine, riprova più tardi</br>":;
	}else{
		//processo OK
		//elimino le sessioni perchè non servono
		$_SESSION=array();
	}

}
//e riinvio alla pagina del form
header("location=pagina_del_form.php?errori=$errori");
?>
considera che è uno schema, quindi posso aver fatto erori
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
la metto a vuota per verificare se ci sono stati errori nella compilazione del form o nell'esecuzione del processo, la utilizzo inoltre anche per stampare a video gli eventuali errori che ha fatto l'utente nella pagina del form
anche se, forse principalmente, è una forma di abitudine
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Consigli SEO per scrittura e struttura pagine SEO e Posizionamento 6
bubino8 Consigli e aiuti integrazione API Programmazione 3
G Access point con rete guest, consigli? Reti LAN e Wireless 0
G Richiesta consigli SEO: nuovo algoritmo Google (e altro) SEO e Posizionamento 2
P [Photoshop] Consigli per logo dimensioni minime Photoshop 1
B [WordPress] Consigli per sito b&b WordPress 1
Seeride Consigli per ripetitore wifi? Reti LAN e Wireless 2
T Consigli Impianto Videosorveglianza Esterna Deposito IP Cam e Videosorveglianza 8
D [PHP] Consigli su come creare form PHP 1
S Consigli per invio di comunicati stampa Discussioni Varie 2
G Consigli Logo aziendale Webdesign e Grafica 7
W [Javascript] Bootstrap Admin templates, mi dareste dei consigli? CMS (Content Management System) 0
E [Photoshop] consigli per stampa puzzle personalizzato Photoshop 0
N [Photoshop] Tavoletta Grafica XP-Pen O Wacom : Consigli per il primo Acquisto Photoshop 0
Zidane Spero di poter dare e ricevere molti consigli Presentati al Forum 0
I [HTML/CSS] Consigli sul mio primo sito HTML e CSS 9
G [WordPress] Consigli tema portfolio WordPress 3
G consigli per nuovo sito Hosting 2
B Consigli telecamera esterna IP Cam e Videosorveglianza 1
M Consigli prima di fare qualsiasi passo Domini 8
G mysql - problemi inserimento dati nel database, consigli. MySQL 3
braccobaldo Hosting per nuovo sito WordPress: consigli? Hosting 6
B Consigli per libro su Python Programmazione 1
voldemort Consigli per Cloud Object Storage Cloud Computing e Cloud Server 1
zorro Consigli.........cercasi PHP 2
P Consigli per sistemare meglio il menu HTML e CSS 63
D Suggerimenti e/o consigli per App personale gestione Rapporto Interventi Tecnici (RIT Sviluppo app per Android 0
F webmaster novizio, consigli Discussioni Varie 1
T Consigli da professionisti del mondo web in merito ai corsi di formazione Discussioni Varie 0
fabriziio consigli contratto Leggi, Normative e Fisco 0
zorro Consigli per indicizzazione nuovo sito (principiante) SEO e Posizionamento 3
K Supporto - consigli e chiarimenti per utilizzo transazioni ... PHP 6
G Consigli per sito multilingua in PHP PHP 1
S Consigli per script javascript per creare videogiochi Javascript 2
L Consigli su utilizzo framework per progetto PHP 5
novello88 Consigli per posizionamento nuovo blog SEO e Posizionamento 8
E consigli per piccola area riservata PHP 4
Sevenjeak Aiuto e consigli su adattamento sito per dispositivi mobile HTML e CSS 2
L Realizzazione script prenotazione posti: consigli PHP 3
Umberto Conti Richiesta consigli e suggerimenti per ecommerce E-Commerce 5
A Problema script e consigli PHP 6
Z Redirect 301 per restyling sito: dubbi e consigli SEO e Posizionamento 0
T Consigli C/C++ C/C++ 1
R Immobili - strumenti e consigli Joomla 0
P Consigli libro php Discussioni Varie 0
Sevenjeak Aiuto e consigli su funzione parsing BBCode PHP 0
T Consigli migrazione da Phpbb a VBulletin CMS (Content Management System) 0
StarFish Consigli IDE Windows per C++ C/C++ 3
A Consigli sviluppo nuovo sito web dinamico Discussioni Varie 0
felino Consigli e pareri sul mio sito web! Presenta il tuo Sito 15

Discussioni simili