• Home
  • Forum
  • Fare Web
  • PHP

Quale codice?

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio 27 Ago 2014
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #1
Questi 2 codici funzionano entrambi, però secondo voi, qual'è meglio?


PHP:
if((isset($_POST['invia']) || !empty($_POST['invia']))){
if ($nome == "") { 
echo "Inserire il Nome"; 
}
else {
$nome;
}
}

PHP:
if((isset($_POST['invia']) || !empty($_POST['invia']))){ 
if ($nome == "") { 
echo "Inserire il Nome"; 
}
 
Ultima modifica: 27 Ago 2014

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 27 Ago 2014
  • #2
Ciao, l'else del primo non ha motivo di esistere.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #3
criric ha scritto:
Ciao, l'else del primo non ha motivo di esistere.
Clicca per allargare...

L'avevo pensato, ma non ero sicuro :mavieni:
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 27 Ago 2014
  • #4
scusa criric se intervengo ma, ... bacchettata sulle mie mani se sbaglio,

if((isset($_POST['invia']) || !empty($_POST['invia']))){

provo a leggere quello che hai scritto nell'if,

isset($_POST['invia'] = la variabile può essere impostata ma VUOTA
!empty($_POST['invia'] = la variabile deve essere impostata E deve avere un valore (diverso da una serie di valori che rendono falsa la risposta)

c'è forse qualche contraddizione perchè penso che a te serva controllare la variabile con valore
o comunque una possibile ottimizzazione ....

manuale alla mano,
EMPTY
Determina se una variabile è da considerare vuota.
Una variabile è considerata vuota se non esiste oppure se il suo valore è uguale a FALSE.
empty() non genera un avviso se la variabile non esiste.

da ciò, scriverei,
PHP:
if( !empty($_POST['invia']) ){ 
  if ($nome == "") { 
    echo "Inserire il Nome"; 
}}

ovvero prendi 2 paghi 1
ciao
Marino
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #5
L'ho modificato. Ho poi visto che togliendo la riga sopra funziona lo stesso, a che serve?

PHP:
if((isset($_POST['invia']) || !empty($_POST['invia']))){ 
if ($nomeG == "") { 
echo "Inserire il Nome"; 
 }
  }
PHP:
if ($nomeG == "") { 
echo "Inserire il Nome"; 
 }
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 27 Ago 2014
  • #6
@ marino
hai ragione ! empty() controlla anche che la variabile sia settata.
Non l'ho usato mai da solo nei miei script, ma, inizierò.
In tempo di crisi è bene risparmiare anche sul codice :evil:
@Shyson
bisogna vedere quando e come imposti $nomeG
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #7
criric ha scritto:
@ marino
hai ragione ! empty() controlla anche che la variabile sia settata.
Non l'ho usato mai da solo nei miei script, ma, inizierò.
In tempo di crisi è bene risparmiare anche sul codice :evil:
@Shyson
bisogna vedere quando e come imposti $nomeG
Clicca per allargare...

Ho l'if sopra i codici e poi lo richiamo li. In un altro form non c'è e funziona lo stesso


PHP:
if(isset($_POST['invia'])) {
$_SESSION['nomeG'] = $_POST['nomeG'];

if((isset($_POST['invia']) || !empty($_POST['invia']))){ 
$nomeG = htmlspecialchars(addslashes(ucfirst(trim($_POST['nomeG']))));
}

if((isset($_POST['invia']) || !empty($_POST['invia']))){
if ($nomeG == "") { 
echo "Inserire il Nome"; 
 }
  }
   }


Nel form ho questo

PHP:
 <button type="submit" name="invia" style="cursor:pointer">Invia</button>
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 27 Ago 2014
  • #8
il bottone ti restituisce $_POST['invia'] settato, ma VUOTO, non avendo inserito nessun "value"
gli if funzionano per il solo controllo isset

personalmente considero il tuo controllo "debole",
se per qualunque ragione, una persona dovesse intervenire, modificando il tuo codice
ed inserendo una riga con
$_POST['invia'] = "";
il tuo script smette di funzionare .....

io preferisco sempre assegnare un valore significativo ai bottoni ...

il tuo esempio lo scriverei come segue,
PHP:
if( !empty($_POST['invia'] ) {
  if ($nomeG == "") { 
    echo "Inserire il Nome";
    ---->>> gestire l'errore 
  }
  $nomeG = htmlspecialchars(addslashes(ucfirst(trim($_POST['nomeG']))));
  $_SESSION['nomeG'] = $nomeG;
}
o comunque in una forma facile per il controllo degli errori ....
ed il bottone
PHP:
 <button type="submit" name="invia" value="invia" style="cursor:pointer">Invia</button>
ciao
Marino
 
Ultima modifica: 27 Ago 2014

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #9
marino51 ha scritto:
il bottone ti restituisce $_POST['invia'] settato, ma VUOTO, non avendo inserito nessun "value"
gli if funzionano per il solo controllo isset

personalmente considero il tuo controllo "debole",
se per qualunque ragione, una persona dovesse intervenire, modificando il tuo codice
ed inserendo una riga con
$_POST['invia'] = "";
il tuo script smette di funzionare .....

io preferisco sempre assegnare un valore significativo ai bottoni ...

il tuo esempio lo scriverei come segue,
PHP:
if( !empty($_POST['invia'] ) {
  if ($nomeG == "") { 
    echo "Inserire il Nome";
    ---->>> gestire l'errore 
  }
  $nomeG = htmlspecialchars(addslashes(ucfirst(trim($_POST['nomeG']))));
  $_SESSION['nomeG'] = $nomeG;
}
o comunque in una forma facile per il controllo degli errori ....
ed il bottone
PHP:
 <button type="submit" name="invia" value="invia" style="cursor:pointer">Invia</button>
ciao
Marino
Clicca per allargare...

Il controllo dell'errore c'è, tu dici di mettere solo if( !empty($_POST['invia'] ) { invece di if((isset($_POST['invia']) || !empty($_POST['invia']))){ e il value.
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 27 Ago 2014
  • #10
si modificare l'if,
inserire un value significativo nel bottone
e cambiare l'ordine delle operazioni,

1 - controllo esistenza
2 - lo ripulisco
3 - lo memorizzo (SESSION) per trovarlo pulito quando lo riutilizzo in seguito
ciao
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #11
La sessione la mantiene senza la $, così $_SESSION['nomeG'] = nomeG;
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 27 Ago 2014
  • #12
scritta così : nomeG, è una costante non una variabile
le variabili pretendono il $ davanti al nome.
nel codice che hai postato $nomeG è una variabile e non è valorizzata; non può funzionare.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #13
marino51 ha scritto:
si modificare l'if,
inserire un value significativo nel bottone
e cambiare l'ordine delle operazioni,

1 - controllo esistenza
2 - lo ripulisco
3 - lo memorizzo (SESSION) per trovarlo pulito quando lo riutilizzo in seguito
ciao
Clicca per allargare...

Ho modificato come il tuo, sembra andare meglio. Ancora una cosa: siccome il form è in fondo alla pagina, si puòmettere un segnalibro in modo che in caso di errore ritorna al form e non sopra?

PHP:
echo "$errore"; 
echo "<meta http-equiv='refresh' content='1; url=".htmlspecialchars($_SERVER['PHP_SELF']) ."'>";
…
   <form method="post" name="mioformGx" id="mioG" action="<?php echo $_SERVER['PHP_SELF'];?>"...">
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 27 Ago 2014
  • #14
criric ha scritto:
scritta così : nomeG, è una costante non una variabile
le variabili pretendono il $ davanti al nome.
nel codice che hai postato $nomeG è una variabile e non è valorizzata; non può funzionare.
Clicca per allargare...

Ora funziona, ho spostato le sessioni sotto i POST

PHP:
if(isset($_POST['invia'])) { 
$nomeG = htmlspecialchars(addslashes(ucfirst(trim($_POST['nomeG']))));

$_SESSION['nomeG'] = $nomeG;
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 27 Ago 2014
  • #15
Si, così ha più senso :fonzie:
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 28 Ago 2014
  • #16
Ora sembra tutto a posto, ho ancora una domanda: questo $_SESSION=array(); va bene in questa posizione?


PHP:
if($errore==""){ 
$_SESSION=array();
echo "Messaggio inviato!"; 
echo "<meta http-equiv='refresh' content='2; url=".htmlspecialchars($_SERVER['PHP_SELF']) ."'>";
}
else { 
echo "$errore"; 
echo "<meta http-equiv=\"refresh\" content=\"1; url=".htmlspecialchars($_SERVER['PHP_SELF'])."?#segnaordine\">";
 
...

}
 } 
session_destroy();
?>
 
Ultima modifica: 28 Ago 2014

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 28 Ago 2014
  • #17
SESSION è già un array non serve ridefinirlo.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 28 Ago 2014
  • #18
criric ha scritto:
SESSION è già un array non serve ridefinirlo.
Clicca per allargare...

L'unico campo che non mantiene i dati, in caso di errore, è il textarea che non è un campo obbligatorio.

PHP:
if(isset($_POST['inviaG'])) {
$messaggioG = htmlspecialchars(addslashes(ucfirst(trim($_POST['messaggioG'])))); 
$_SESSION['messaggioG'] = $messaggioG;
...
 } 
session_destroy();
?>

…

<textarea name="messaggioG" id="txtScrivimiG"><?php echo $messaggioG; ?></textarea>

<button type="submit" name="inviaG" value="inviaG" style="cursor:pointer">Invia</button>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 28 Ago 2014
  • #19
non mantiene i dati perchè devi stampare la sessione non la variabile
PHP:
<?php echo $_SESSION['messaggioG']; ?>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
  • 28 Ago 2014
  • #20
criric ha scritto:
non mantiene i dati perchè devi stampare la sessione non la variabile
PHP:
<?php echo $_SESSION['messaggioG']; ?>
Clicca per allargare...

Non è la sessione questa? Nell'altro form funziona
 
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

Codice php come testo-quale tag usare?
  • giancadeejay
  • 1 Mar 2018
  • PHP
Risposte
9
Visite
2K
PHP 3 Mar 2018
Max 1
Capire quale file .js contiene il codice eseguito?
  • otto9due
  • 18 Feb 2017
  • jQuery
Risposte
3
Visite
2K
jQuery 21 Feb 2017
criric
M
  • Poll Poll
Quale piattaforma cloud ritenete migliore?
  • mad bull
  • 23 Lug 2023
  • Cloud Computing e Cloud Server
Risposte
0
Visite
3K
Cloud Computing e Cloud Server 23 Lug 2023
mad bull
M
Rich Text Editor, quale?
  • MarcoGrazia
  • 2 Dic 2022
  • Javascript
Risposte
1
Visite
2K
Javascript 7 Dic 2022
otto9due
Differenti formati webm. Quale scegliere?
  • Zio Crick
  • 5 Nov 2022
  • Webdesign e Grafica
Risposte
0
Visite
2K
Webdesign e Grafica 5 Nov 2022
Zio Crick
A
Quale NVR con ingressi bnc ?
  • aeroxr1
  • 12 Apr 2021
  • IP Cam e Videosorveglianza
Risposte
1
Visite
1K
IP Cam e Videosorveglianza 13 Apr 2021
aeroxr1
A
G
non riesco a capire quale sia l'errore [SQL]
  • giuseppe98594
  • 29 Giu 2020
  • MySQL
Risposte
2
Visite
2K
MySQL 30 Giu 2020
MarcoGrazia
Esportare tabella HTML in PDF, quale libreria usare?
  • felino
  • 27 Feb 2020
  • Javascript
Risposte
1
Visite
2K
Javascript 18 Mag 2020
felino
M
Servizi digitali con gestionale: Quale CMS scegliere?
  • marina.pervinca
  • 19 Feb 2020
  • CMS (Content Management System)
Risposte
3
Visite
2K
CMS (Content Management System) 25 Ott 2020
metteomercatale
M
Filtro Aqua FP3 9" 3/4: quale cartuccia scegliere?
  • felino
  • 24 Set 2019
  • Discussioni Varie
Risposte
0
Visite
1K
Discussioni Varie 24 Set 2019
felino
W
Hosting vs Cloud per Prestashop, su quale azienda?
  • w_t
  • 13 Mar 2019
  • Cloud Computing e Cloud Server
Risposte
0
Visite
2K
Cloud Computing e Cloud Server 13 Mar 2019
w_t
W
S
Quale model router con DDNS gratuito
  • stefano@72
  • 4 Nov 2018
  • Reti LAN e Wireless
Risposte
3
Visite
4K
Reti LAN e Wireless 6 Nov 2018
marino51
W
[HTML] Px, Em, Rem o %. Quale unità di misura scegliere?
  • webfra01
  • 26 Ott 2018
  • HTML e CSS
Risposte
3
Visite
2K
HTML e CSS 26 Ott 2018
Max 1
Elvox citofono: quale modello e'?
  • felino
  • 7 Set 2018
  • Discussioni Varie
Risposte
7
Visite
7K
Discussioni Varie 31 Ott 2018
felino
Q
Per Illustrator e Photoshop Quale Tavoletta Consigliate?
  • qianren
  • 30 Giu 2018
  • Photoshop
Risposte
0
Visite
1K
Photoshop 30 Giu 2018
qianren
Q
P
Quale plugin per wordpress
  • pati
  • 18 Giu 2018
  • WordPress
Risposte
6
Visite
2K
WordPress 4 Ott 2018
glm1986ITALY
[HTML] Quale editor utlizzare per la manutenzione del sito ?
  • Br1ma
  • 18 Feb 2018
  • HTML e CSS
Risposte
5
Visite
3K
HTML e CSS 20 Feb 2018
iTonto
I
TV Box Android: consiglio su quale acquistare
  • felino
  • 4 Apr 2017
  • Discussioni Varie
Risposte
0
Visite
2K
Discussioni Varie 4 Apr 2017
felino
M
[IIS] Quale Servizio Web
  • memento00
  • 17 Gen 2017
  • Web Server
Risposte
7
Visite
3K
Web Server 17 Gen 2017
marino51
Host e Wordpress: quale dominio a basso costo?
  • felino
  • 3 Nov 2016
  • Hosting
Risposte
11
Visite
3K
Hosting 10 Feb 2017
4potere
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?