Creare sondaggio

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho fatto una prova, ho commentato $_SESSION=array(); e non da più errore, devo toglierlo?


PHP:
//$_SESSION=array();
echo "Successo inviato!"; 
echo "<meta http-equiv='refresh' content='1; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Ho fatto una prova, ho commentato $_SESSION=array(); e non da più errore, devo toglierlo?

PHP:
//$_SESSION=array();
echo "Successo inviato!"; 
echo "<meta http-equiv='refresh' content='1; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
ecco dove è l'inghippo:
se lo togli sparisce l'errore ma se non lo togli rimangono i testi nel form, bisogna fare una modifica alle sessioni del form (quelle che si ricordano i testi in caso di errore)
non mi ricordo bene i nomi ma ti faccio un esempio
probabilmente hai (es.) per l'email
PHP:
<input name="email" type="text" id="email" value="<?php echo $_SESSION['email']; ?>">
modifica TUTTE le sessioni relative al form invio successi in questo modo
$_SESSION['succ']['nome']
$_SESSION['succ']['email'] ecc.....
cioè facciamo un array di array.
e poi

PHP:
$_SESSION['succ']=array();
echo "Successo inviato!"; 
echo "<meta http-equiv='refresh' content='1; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
in questo modo se il successo viene salvato correttamente si eliminano solo le sessioni chiamate $_SESSION['succ'] e non le altre che ti servono
spero di essermi spiegato bene
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Cosi dice che succ non è definito

Img_01.png
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non intendevo lì. ma anche dove leggi i $_POST provenienti dal form, anche li devi correggere i nomi delle sessioni
per quello che ti chiedevo di ripostare la parte di verifica e salvataggio, in quella parte avrai qualcosa del genere
$_SESSION['nomeS']= $_POST['nomeS'];
oppure
$_SESSION['nomeS']= $nomeS; (non mi ricordo bene)
devi modificare anche quelle (es)
$_SESSION['form']['nomeS']= $_POST['nomeS'];
o come hai scritto
$_SESSION['succ']['nomeS']
 
Ultima modifica:

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
non intendevo lì. ma anche dove leggi i $_POST provenienti dal form, anche li devi correggere i nomi delle sessioni
per quello che ti chiedevo di ripostare la parte di verifica e salvataggio, in quella parte avrai qualcosa del genere
$_SESSION['nomeS']= $_POST['nomeS'];
oppure
$_SESSION['nomeS']= $nomeS; (non mi ricordo bene)
devi modificare anche quelle (es)
$_SESSION['form']['nomeS']= $_POST['nomeS'];
o come hai scritto
$_SESSION['succ']['nomeS']

Ho questo

PHP:
if(isset($_POST['invia'])) {
$_SESSION['succ']['nomeS'] = $_POST['nomeS'];
$_SESSION['succ']['cittaS'] = $_POST['cittaS']; 
$_SESSION['succ']['suoemailS'] = $_POST['suoemailS'];
$_SESSION['succ']['oggettoS'] = $_POST['oggettoS'];
$_SESSION['succ']['messaggioS'] = $_POST['messaggioS'];

$data_localeS = time(); //Stampa nel db la data numerica es. 124632437
$nomeS = htmlspecialchars(ucfirst(strtolower(trim($_POST['nomeS']))));
$cittaS = htmlspecialchars(ucwords(strtolower(trim($_POST['cittaS'])))); 
$suoemailS = htmlspecialchars(strtolower($_POST['suoemailS'])); 
$suoemailS = str_replace(" ","",$suoemailS); // Toglie gli spazi interni nella mail
$oggettoS = htmlspecialchars(ucfirst(trim($_POST['oggettoS'])));
$messaggioS = htmlspecialchars(ucfirst(trim($_POST['messaggioS']))); 
$validatorS = htmlspecialchars(trim($_POST['validatorS']));

...
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho messo così, sembra funzionare: se c'è errore la mantiene, diversamente cancella il campo

PHP:
 value="<?php if(isset($_SESSION['succ']['nomeS'])){ echo $_SESSION['succ']['nomeS'];}else{ echo "";} ?>"
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
iao
visto così sembrerebbe giusto, forse sarebbe meglio appena prima del <form......>
PHP:
<?php
$nome = (isset($_SESSION['succ']['nomeS'])) ? $_SESSION['succ']['nomeS'] : "";
//e per le altre sessioni lo stesso
?>
<form method="post" name="mioformS" id="mioFS" action="/successi.php" ......">
<......value="<?php echo $nome; ?>">
<!-- eccetera-->

p.s.
verifica, talvolta (spesso) mi confondo con l'operatore ternario, eventualmente inverti
$nome = (isset($_SESSION['succ']['nomeS'])) ? "" : $_SESSION['succ']['nomeS'];
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Il primo va bene, questo sotto da errore:
Notice: Undefined index: nomeS in /membri/gruppoalveo/successi.php on line 430

$nome = (isset($_SESSION['succ']['nomeS'])) ? "" : $_SESSION['succ']['nomeS'];
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ora qui sembra tutto a posto.

Avrei ancora una piccola cosa per il guestbook che non riesco a togliere, forse te l'avevo accennato.

Posto di là.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Se volessi mettere i decimali es. 45.7% come lo modifico?

PHP:
<?php
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q); 
$riga=mysql_fetch_assoc($risultato); 
$tot=0;//metto il totale a 0 
foreach($riga as $chiave => $valore) { 
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    } 
} 
...
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
non mi ricordo bene, ma mi sembra non li.
devi fare la modfica dove calcoli il percento

Questo è completo

PHP:
<?php
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q); 
$riga=mysql_fetch_assoc($risultato); 
$tot=0; //metto il totale a 0 
foreach($riga as $chiave => $valore) { 
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    } 
} 
if($tot >0) { 
     $giornali= (int)($giornali/$tot*100); $giornali_pos=$giornali-100; 
     $depliant= (int)($depliant/$tot*100); $depliant_pos=$depliant-100;
     $televisione= (int)($televisione/$tot*100); $televisione_pos=$televisione-100;
     $web_banner= (int)($web_banner/$tot*100); $web_banner_pos=$web_banner-100;  
     $casualmente= (int)($casualmente/$tot*100); $casualmente_pos=$casualmente-100;
     $motori_di_ricerca= (int)($motori_di_ricerca/$tot*100); $motori_di_ricerca_pos=$motori_di_ricerca-100;
     $amici_o_conoscenti= (int)($amici_o_conoscenti/$tot*100); $amici_o_conoscenti_pos=$amici_o_conoscenti-100;
}
else {
     $giornali= 0; $giornali_pos=-100;
     $depliant= 0; $depliant_pos=-100;
     $televisione= 0; $televisione_pos=-100;
     $web_banner= 0; $web_banner_pos=-100;
     $casualmente= 0; $casualmente_pos=-100;
     $motori_di_ricerca= 0; $motori_di_ricerca_pos=-100;
     $amici_o_conoscenti= 0; $amici_o_conoscenti_pos=-100;
}
...
<div class="a" st<?php echo $giornali_pos;?>px"></div><div class="percentuale"><?php echo $giornali;?>%</div>
...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova in questa maniera in modo da modificare il meno possibile lo script
ti ho fatto l'esempio solo per $giornali, il resto è uguale
PHP:
<?php
//.......
if($tot >0) { 
     $giornali= (int)($giornali/$tot*100); $giornali_pos=$giornali-100;//penso che questa riga ti convenga lascarla così, $giornali_pos deve essere un numero intero
	 //e ricalcolare la percentuale  aggiungendo questa riga
	 $giornali=number_format($giornali/$tot*100, 1, ',','');//questa risulta es. 22,5
	 //analogo discorso per le rimanenti percentuali
     $depliant= (int)($depliant/$tot*100); $depliant_pos=$depliant-100;
     $televisione= (int)($televisione/$tot*100); $televisione_pos=$televisione-100;
     $web_banner= (int)($web_banner/$tot*100); $web_banner_pos=$web_banner-100;  
     $casualmente= (int)($casualmente/$tot*100); $casualmente_pos=$casualmente-100;
     $motori_di_ricerca= (int)($motori_di_ricerca/$tot*100); $motori_di_ricerca_pos=$motori_di_ricerca-100;
}else{
//.......
?>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
prova in questa maniera in modo da modificare il meno possibile lo script
ti ho fatto l'esempio solo per $giornali, il resto è uguale
PHP:
<?php
//.......
if($tot >0) { 
     $giornali= (int)($giornali/$tot*100); $giornali_pos=$giornali-100;//penso che questa riga ti convenga lascarla così, $giornali_pos deve essere un numero intero
	 //e ricalcolare la percentuale  aggiungendo questa riga
	 $giornali=number_format($giornali/$tot*100, 1, ',','');//questa risulta es. 22,5
	 //analogo discorso per le rimanenti percentuali
     $depliant= (int)($depliant/$tot*100); $depliant_pos=$depliant-100;
     $televisione= (int)($televisione/$tot*100); $televisione_pos=$televisione-100;
     $web_banner= (int)($web_banner/$tot*100); $web_banner_pos=$web_banner-100;  
     $casualmente= (int)($casualmente/$tot*100); $casualmente_pos=$casualmente-100;
     $motori_di_ricerca= (int)($motori_di_ricerca/$tot*100); $motori_di_ricerca_pos=$motori_di_ricerca-100;
}else{
//.......
?>

Così aggiunge 2 zeri così: 250.0%
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho messo così, sembra vada bene

$giornali=number_format($giornali/$tot*10, 1, ',','');//questa risulta es. 22,5
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho fatto un errore io, non mi ero accorto di una variabile,
aspetta che correggo
non mi ero accorto che la stessa variabile veniva richiamata due volte nel calcolo
PHP:
<?php
//.......
if($tot >0) { 
     $g= $giornali/$tot*100; $giornali_pos=(int)$g-100;
     $giornali=number_format($g, 1, ',','');//questa risulta es. 22,5
     $d= $depliant/$tot*100; $depliant_pos=(int)$d-100;
	 $depliant=number_format($d, 1, ',','');
     $t= $televisione/$tot*100; $televisione_pos=(int)$t-100;
	 $televisione=number_format($t, 1, ',','');
     $w= $web_banner/$tot*100); $web_banner_pos=(int)$w-100;
	 $web_banner=number_format($w, 1, ',','');
     $c= $casualmente/$tot*100; $casualmente_pos=(int)$c-100;
	 $casualmente=number_format($c, 1, ',','');
     $m= $motori_di_ricerca/$tot*100; $motori_di_ricerca_pos=(int)$m-100;
	 $motori_di_ricerca=number_format($m, 1, ',','');
}else{
//..
?>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
ho fatto un errore io, non mi ero accorto di una variabile,
aspetta che correggo
non mi ero accorto che la stessa variabile veniva richiamata due volte nel calcolo
PHP:
<?php
//.......
if($tot >0) { 
     $g= $giornali/$tot*100; $giornali_pos=(int)$g-100;
     $giornali=number_format($g, 1, ',','');//questa risulta es. 22,5
     $d= $depliant/$tot*100; $depliant_pos=(int)$d-100;
	 $depliant=number_format($d, 1, ',','');
     $t= $televisione/$tot*100; $televisione_pos=(int)$t-100;
	 $televisione=number_format($t, 1, ',','');
     $w= $web_banner/$tot*100); $web_banner_pos=(int)$w-100;
	 $web_banner=number_format($w, 1, ',','');
     $c= $casualmente/$tot*100; $casualmente_pos=(int)$c-100;
	 $casualmente=number_format($c, 1, ',','');
     $m= $motori_di_ricerca/$tot*100; $motori_di_ricerca_pos=(int)$m-100;
	 $motori_di_ricerca=number_format($m, 1, ',','');
}else{
//..
?>

Forse c'è un errore perché non carica la pagina
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Creare un sondaggio per un sito web? HTML e CSS 3
S creare un sondaggio PHP 2
E Creare un testo trasparente dietro un div HTML e CSS 5
M Creare traccia di download file sul server HTML e CSS 2
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
L Creare ancore interne alla pagina PHP 1
I Creare un banner temporaneo JavaScript Javascript 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
U PHP creare un file excel dopo ricerca nel DB PHP 0
A Creare un cronometro PHP 5
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
F Creare elementi html con javascript Javascript 3
Shyson Modificare codice e creare link PHP 0
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Creare una forma geometrica Photoshop 1
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
S Libreria PHP per creare file dwg o dxf PHP 0
R Come creare sistema Add to homescreen PHP 3
L Creare un countdown con giorno specifico della settimana PHP 3
W Creare link di una dato Classic ASP 0
W creare file .jar Java 2
M Creare con il Vb 2010 Il Classico Notes di Windows Vista Visual Basic 1
MarcoGrazia Creare una password Snippet Javascript 0
J creare pagina php di prenotazione PHP 5
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
INTEROPERABILITY Sviluppatrice/formatrice creare APP Offerte e Richieste di Lavoro e/o Collaborazione 0
L Creare una pagina pre-home WordPress 1
G Creare side-bar non visibile da dispositivi mobile HTML e CSS 0
L creare oggetti da una classe tramite un form Javascript 0
Web93 CREARE SITO WEB COMICS CON WORDPRESS WordPress 0
maxnegri Contare sessioni aperte e creare condizione PHP 1
A Come creare pulsante donazione PayPal HTML e CSS 5
L [CERCO] Creare blog su WordPress con tema Divi Offerte e Richieste di Lavoro e/o Collaborazione 3
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
R [Photoshop] Creare Azione Photoshop 1
F [PHP] creare tabella e tasto cerca PHP 3
A Creare con Javascript un percorso all'interno di uno spazio Javascript 0
B [PHP] Creare PDF dopo inserimento dati form PHP 4
A [HTML] Creare sito web per eLearnig HTML e CSS 2
R Bootstrap 4 - creare una finestra di testo responsive sopra un Carousel jQuery 1
Spenalzo Creare tabelle multiple con Access via VBA MS Access 2
R [PHP] Creare sistema random PHP 3
D [PHP] Consigli su come creare form PHP 1
I Creare Qsl radioamatore con testo editabile Presentati al Forum 1
T [PHP] Creare Honeypot per form contatti PHP 10
S [PHP] Creare collegamento filtri di ricerca al database PHP 6
Z Creare VirtualHost Apache2 con PHP? Programmazione 0

Discussioni simili