• Home
  • Forum
  • Fare Web
  • PHP

Form dopo errori

  • Creatore Discussione Creatore Discussione oscar
  • Data di inizio Data di inizio 3 Feb 2016
O

oscar

Nuovo Utente
17 Apr 2014
29
0
1
  • 3 Feb 2016
  • #1
Ciao a tutti, vorrei se possibile qualche idea su come fare con un form. La situazione sarebbe :
Ho un form con tre campi, nome, cognome e email; l'utente sbaglia scrivendo l'email con un formato che non corrisponde (l'errore sorpassa l'html5) e un metodo php lo scopre invalidando il passaggio al db. A questo punto vorrei ritornare al client il formulario completo dei dati che aveva inserito e in più un messaggio di errore sotto la casella che contiene l'errore. Ed è qui che mi torna il form vuoto come si fosse la prima volta.
Avendo fatto per ogni input del form :
PHP:
<input type="email" name="e_mail" autocomplete="off" required>
                <br>
                <?php
                    $errori->stampaErr6();
                ?>
stampaErr6() dovrebbe stampare la prima volta una stringa vuota e a form riproposto una stringa con un messaggio. Mi sembra che il problema principale sia, come posso fare il ritorno del form con i dati già inseriti nelle caselle sfruttando php? Ho pensato di utilizzare header() ma non so come accodargli i dati, tutte le volte mi ritorna un form senza i dati stampati. Qualche spunto? Ringrazio in anticipo le possibile risposte.
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 5 Feb 2016
  • #2
Ciao Oscar,
se non ho capito male, tu vorresti che,. una volta inseriti i dati nel form (anche se sbagliati) questi venissero in qualche modo memorizzati e,
in caso di riproposta del form, questo non sia vuoto ma riporti i dati già inseriti dall'utente. Per fare questo il mio consigllio è di usare le SESSION per memorizzare, ed eventualmente riproporre, i dati passati tramite form (che avrà anch'esso estensione .php e non più .html
Ciao


Zorro
 
O

oscar

Nuovo Utente
17 Apr 2014
29
0
1
  • 5 Feb 2016
  • #3
grazie zorro, è proprio così, in pratica se l'utente sbaglia qualche dato il server ripropone il form con tutti i dati inseriti originariamente e in più un messaggio magari di fianco al campo sbagliato segnalando l'errore. Adesso vedo il tema delle sessioni che avevo trascurato e come includere nei campi questi dati.
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 5 Feb 2016
  • #4
Se dovessi avere qualche problema con le sessioni, ti posto il form che ho usato io.
NB. Olre al file dove memorizzare le variabili di sessione, dovrai crearne un altro (ad es.. resetta.php)
per resettare le variabili prima di presentare il form, per evitare che l'utente trovi i campi già riempiti con i dati
dell'utente precedente
Spero di essertti stato d'aiuto. Ciao


Zorro:byebye::byebye:
 
O

oscar

Nuovo Utente
17 Apr 2014
29
0
1
  • 8 Feb 2016
  • #5
Grazie Zorro ma non cerco codice già scritto, cerco di imparare programmazione ad oggeti e php asieme alla voglia di farmi un sito interamente fatto in casa. Stò vedendo le sessioni e sicuramente ci saranno altre domande al forum.
 
O

oscar

Nuovo Utente
17 Apr 2014
29
0
1
  • 9 Feb 2016
  • #6
Ciao a tutti. Tornando sempre allo stesso form, sono riuscito a riproporre il form con il messaggio d'errore messo assieme al campo corrispondente però non riesco a includere nel campo rispettivo il dato già scritto in origine dall'utente. Il metodo della classe che controlla i dati dell'email è :
Codice:
private function testEmail ($dato){
        if (!filter_var((filter_var($dato, FILTER_SANITIZE_EMAIL)),FILTER_VALIDATE_EMAIL)=== FALSE){
            if (!preg_match($this->pattern_email, $dato)===FALSE){
                return $dato; 
            }                            
        }
        else {
            static::$a=1;
            $_SESSION['emailTestNeg']="questo indirizzo email è sbagliato: ".$dato."<br>";          
        }
    }
e nella pagina del form :
Codice:
*email (indirizzo valido per verifica):<br>
                <input type="email" name="e_mail" autocomplete="off" required> <br>
                <?php
                    if(!empty($_POST)){
                        echo $_SESSION['emailTestNeg'];
                    }
                ?>
risultato :

Come si vede l'indirizzo erroneo appare nel form riproposto ma dentro il messaggio, vorrei che ci sia anche dentro il campo e non so come farlo. Ringrazio qualche idea in questione.
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 9 Feb 2016
  • #7
Ciao Oscar,
non sono molto pratico di programmazione ad oggetti comunque, per assegnare al campo un valore, devi utilizzare, all'interno del FORM. la clausola VALUE, valorizzandola col contenuto che avrai memorizzato nella relativa variabile di sessione:


PHP:
<input type="text" name="cog" id="cog" value="'.$cognome.'">


e quindi, anche il FORM diventerà un file .php (e non più .html) in quanto, all'inizio, dovrai assegnare ad una variabile d'appoggio (io ho usato il cognome) il contenuto della relativa variabile di sessione:


PHP:
$cognome = $_SESSION['cognome'];



Zorro:byebye::byebye:
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 9 Feb 2016
  • #8
zorro ha scritto:
Ciao Oscar,
non sono molto pratico di programmazione ad oggetti comunque, per assegnare al campo un valore, devi utilizzare, all'interno del FORM. la clausola VALUE, valorizzandola col contenuto che avrai memorizzato nella relativa variabile di sessione:


PHP:
<input type="text" name="cog" id="cog" value="'.$cognome.'">
Clicca per allargare...


PS Essendo un comando PHP lo dovrai racchiudere tra echo ' e ';


PHP:
echo '<input type="text" name="cog" id="cog" value="'.$cognome.'">';
 
O

oscar

Nuovo Utente
17 Apr 2014
29
0
1
  • 12 Feb 2016
  • #9
grazie zorro, avevo dimenticato la clausula value. eseguito consiglio in questo modo :
Codice:
<?php                    
       echo '<input type="email" name="e_mail" value="'.($errori->stampaErr6()).'"autocomplete="off" required>';  
       if(!empty($_SESSION['emailTestNeg'])){                       
              echo '<p class="erroreCampo">'. $_SESSION['emailTestNeg'].'</p>';
       }
              else{ 
                    echo '<br>';
              }
?>
e funziona così :
 

zorro

Utente Attivo
20 Ott 2014
334
22
28
ROMA
  • 12 Feb 2016
  • #10
Lieto di esserti stato d'aiuto


Zorro
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

Intercettare form solo dopo invio
  • nivaria.achinet
  • 29 Apr 2022
  • Javascript
Risposte
1
Visite
1K
Javascript 30 Apr 2022
otto9due
M
Form: come tornare ai campi già compilati dopo invio
  • Marcello_php
  • 16 Ago 2021
  • PHP
Risposte
1
Visite
1K
PHP 17 Ago 2021
zorro
B
  • Bloccata
[PHP] Creare PDF dopo inserimento dati form
  • bipolare75
  • 28 Set 2019
  • PHP
Risposte
4
Visite
4K
PHP 28 Set 2019
Max 1
F
[JavaScript] Ottenere il CSS dopo transform: scale() e transform-origin
  • fede220
  • 18 Set 2019
  • Javascript
Risposte
0
Visite
1K
Javascript 18 Set 2019
fede220
F
B
[PHP] Invio mail automatico dopo compilazione form - db
  • Borghese
  • 3 Feb 2019
  • PHP
  • 2
Risposte
25
Visite
8K
PHP 12 Feb 2019
Borghese
B
dopo la richiesta ajax il bottone del form non si disabilita
  • gandalf1959
  • 26 Ott 2016
  • Ajax
Risposte
5
Visite
2K
Ajax 29 Ott 2016
gandalf1959
passaggio variabili da form dopo verifiche: tutte meno una!?!?
  • gandalf1959
  • 11 Apr 2016
  • Javascript
Risposte
4
Visite
2K
Javascript 12 Apr 2016
gandalf1959
S
Email di conferma dopo un form
  • Sette Giorni
  • 25 Mar 2016
  • PHP
Risposte
4
Visite
5K
PHP 27 Mar 2016
Sette Giorni
S
A
eseguire funzione dopo scelta dal form
  • alerosa
  • 29 Feb 2016
  • PHP
Risposte
4
Visite
1K
PHP 3 Mar 2016
zorro
P
Caricare nuova pagina dopo invio dati form
  • Prom
  • 27 Gen 2015
  • Javascript
Risposte
11
Visite
11K
Javascript 30 Gen 2015
borgo italia
A
form che si refrescia dopo modifica tabella mysql
  • angeloba
  • 17 Dic 2014
  • PHP
Risposte
2
Visite
1K
PHP 19 Dic 2014
angeloba
A
P
invio form non corretto dopo controllo dati
  • Paperino78
  • 3 Dic 2014
  • PHP
Risposte
8
Visite
2K
PHP 7 Dic 2014
Paperino78
P
L
cerco esempio form dopo form
  • luigi777
  • 20 Ott 2014
  • PHP
Risposte
5
Visite
1K
PHP 24 Ott 2014
luigi777
L
M
chiusura colorbox dopo inserimento dati in un database tramite form
  • Marco Luigia
  • 26 Ago 2014
  • PHP
Risposte
0
Visite
1K
PHP 26 Ago 2014
Marco Luigia
M
Pagina posizione Top dopo salvataggio form
  • elpirata
  • 29 Mag 2014
  • Javascript
Risposte
0
Visite
1K
Javascript 29 Mag 2014
elpirata
P
Mantenere valore di un form anche dopo refresh
  • ppigna
  • 30 Gen 2014
  • PHP
Risposte
6
Visite
5K
PHP 31 Gen 2014
ppigna
P
M
lanciare due funzioni javascript dopo l'invio di un form
  • marco4001
  • 7 Giu 2013
  • Javascript
Risposte
2
Visite
4K
Javascript 9 Giu 2013
marco4001
M
M
Dopo invio del form ritorno alla "base".....
  • MAX1972
  • 9 Mag 2012
  • PHP
Risposte
11
Visite
15K
PHP 9 Mag 2012
MAX1972
M
A
problema con l'inserimento di valori in una tabella dopo una ricerca da form
  • alessandrot
  • 19 Apr 2012
  • Classic ASP
Risposte
1
Visite
3K
Classic ASP 23 Apr 2012
Vale2
Disabilita il button dopo l'invio del form
  • Vale2
  • 5 Apr 2012
  • Snippet Javascript
Risposte
0
Visite
1K
Snippet Javascript 5 Apr 2012
Vale2
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?