Quale codice?

Shyson

Utente Attivo
19 Ago 2012
1.148
1
38
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:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, l'else del primo non ha motivo di esistere.
 

marino51

Utente Attivo
28 Feb 2013
3.001
173
63
Lombardia
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.148
1
38
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.607
54
48
TN
@ 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.148
1
38
@ 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

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.001
173
63
Lombardia
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:

Shyson

Utente Attivo
19 Ago 2012
1.148
1
38
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

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.001
173
63
Lombardia
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.148
1
38
La sessione la mantiene senza la $, così $_SESSION['nomeG'] = nomeG;
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
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.148
1
38
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

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.148
1
38
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.

Ora funziona, ho spostato le sessioni sotto i POST

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

$_SESSION['nomeG'] = $nomeG;
 

Shyson

Utente Attivo
19 Ago 2012
1.148
1
38
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:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
SESSION è già un array non serve ridefinirlo.
 

Shyson

Utente Attivo
19 Ago 2012
1.148
1
38
SESSION è già un array non serve ridefinirlo.

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.607
54
48
TN
non mantiene i dati perchè devi stampare la sessione non la variabile
PHP:
<?php echo $_SESSION['messaggioG']; ?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
giancadeejay Codice php come testo-quale tag usare? PHP 9
otto9due Capire quale file .js contiene il codice eseguito? jQuery 3
A Quale NVR con ingressi bnc ? IP Cam e Videosorveglianza 1
G non riesco a capire quale sia l'errore [SQL] MySQL 2
felino Esportare tabella HTML in PDF, quale libreria usare? Javascript 1
M Servizi digitali con gestionale: Quale CMS scegliere? Content Management System (CMS) 3
felino Filtro Aqua FP3 9" 3/4: quale cartuccia scegliere? Discussioni Varie 0
W Hosting vs Cloud per Prestashop, su quale azienda? Cloud Computing e Cloud Server 0
S Quale model router con DDNS gratuito Reti LAN e Wireless 3
W [HTML] Px, Em, Rem o %. Quale unità di misura scegliere? HTML e CSS 3
felino Elvox citofono: quale modello e'? Discussioni Varie 7
Q Per Illustrator e Photoshop Quale Tavoletta Consigliate? Photoshop 0
P Quale plugin per wordpress WordPress 6
Br1ma [HTML] Quale editor utlizzare per la manutenzione del sito ? HTML e CSS 5
felino TV Box Android: consiglio su quale acquistare Discussioni Varie 0
M [IIS] Quale Servizio Web IIS 7
felino Host e Wordpress: quale dominio a basso costo? Hosting 11
felino [Windows Seven] Olibook S1500: quale versione di Windows? Windows e Software 5
novello88 Quale provider per mail aziendale? Posta Elettronica 1
F nuovo sito da zero, quale sito di hosting? Hosting 1
E Decidere quale email deve partire PHP 3
felino ASUS P4S8X-X: quale ram montare? Hardware 0
F Quale privacy policy menzionare in un BOX COMMENTI? Leggi, Normative e Fisco 0
V App inventor, o quale e come? Sviluppo app per Android 0
M Nascondere Video e censurare src in tag <iframe> Quale linguaggio consigliate? Discussioni Varie 0
D Libro per php,quale prendere? PHP 1
felino Tour Operator: quale CMS scegliere? Content Management System (CMS) 5
felino Sondaggio: quale framework utilizzate e perchè? PHP 0
felino [CMS] Ticket online: consiglio su quale CMS scegliere! Content Management System (CMS) 0
felino Edit video: quale programma consigliate? Windows e Software 2
felino Fotografi Social: quale portale usate? Discussioni Varie 1
L Gestire password utenti registrati. Quale codifica? PHP 23
M Quale linguaggio usare per il mio progetto? Programmazione 0
voldemort quale pubblicita a tutto schermo inserire su app free? Sviluppo app per iOS 0
felino Asus EeePC 1011CX: quale distro di linux scegliere? Linux e Software 11
A Consiglio su quale cms puntare Content Management System (CMS) 1
voldemort MySQL e cifre in Euro: quale tipo di dati? MySQL 1
L jquery ui , Quale versione da scaricare? jQuery 0
L Scelta php framework quale? PHP 3
G Quale di questi strumenti è meglio analizzare il successo di un sito web? SEO e Posizionamento 2
P quale cms scegliere x prenotazione make-up artist Content Management System (CMS) 1
F Quale tag è quello giusto? <meta name="robots" content="index, follow"> oppure .... HTML e CSS 1
D Mi serve un page-flip, quale mi consigliate? Javascript 1
neo996sps [Virtual Server] Quale opertore scegliere? Server Dedicati e VPS 1
F quale tra questi hosting? Hosting 0
A Quale CSM consigliate di usare per la realizzazione di un sito per una agenzia di viaggi? Content Management System (CMS) 4
A Creazione sito web:quale CMS scegliere? Content Management System (CMS) 5
R Quale la funzione mysql query. PHP 3
Frank10 Quale programma usate per fare siti? HTML e CSS 48
Frank10 Consiglio su quale forum installare MyBB 3

Discussioni simili