disabilitare tasto dopo submit

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao, ho questo semplice form che incrementa un numero, cosa devo aggiungere per far si che il tasto submit per incrementare il numero funzioni una volta sola?
insomma, o disabilitarlo dopo essere stato premuto, o con un if che riporti un messaggio "puoi premere una sola volta"
Invece cosi si puo premere di continuo e si incrementa anche ad ogni refresh di pagina:
PHP:
<?php 
$varl = fopen("numero.txt", "r"); 
$num = fread($varl, filesize("numero.txt")); 
fclose($varl); 

echo "<font color=red><b> $num </b></font>"; 

if(isset($_POST['pulsante'])){ 
$var = fopen("numero.txt", "r"); 

$var = fopen("numero.txt", "r"); 
$contenuto = fread($var, filesize("numero.txt")); 

$somma=$contenuto+1; 
fclose($var); 

$var2 = fopen("numero.txt", "w+"); 
fwrite($var2, $somma); 
fclose($var2); 
} 
?> 

<html>
<head> 

<form method="post" action=" <?php echo $_SERVER['PHP_SELF'];?> "> 
<input name="pulsante" type="submit" value="Positivo">

</head> 
</input> 
 </script> </body> </html> 
</form>

Ho provato in javascript e mi disabilitava si il tasto, ma non incrementava nulla.

Grazie 1000
 
Sicuramente ti daranno risposte migliori una cosa del genere la feci ad intuito

mettendo il disabled in una variabile

PHP:
<input name="pulsante" type="submit" value="Positivo" <?php echo $disabled;?>>

poi nella verifica gli aggiungi

PHP:
<?php 
............bla bla

if(isset($_POST['pulsante'])){ 
$disabled="disabled";
.............bla bla
} 
?>

un pò maccheronico ma funge
 
Sicuramente ti daranno risposte migliori una cosa del genere la feci ad intuito

mettendo il disabled in una variabile

PHP:
<input name="pulsante" type="submit" value="Positivo" <?php echo $disabled;?>>

poi nella verifica gli aggiungi

PHP:
<?php 
............bla bla

if(isset($_POST['pulsante'])){ 
$disabled="disabled";
.............bla bla
} 
?>

un pò maccheronico ma funge



CIAO E GRAZIE,
ho provato ad aggiungere le parti che mi hai indicato, appare di fianco al pulsante la scritta disable dopo il click, ma il numero si incrementa sempre, il pulsante non viene disabilitato.
Credo di aver sbagliato l inserimento:

PHP:
<?php 

$varl = fopen("numero.txt", "r"); 
$num = fread($varl, filesize("numero.txt")); 
fclose($varl); 

echo "<font color=red><b> $num </b></font>"; 



if(isset($_POST['pulsante'])){ 
[COLOR="#B22222"][/COLOR][COLOR="#B22222"]$disabled="disabled";[/COLOR]$var = fopen("numero.txt", "r"); 

$var = fopen("numero.txt", "r"); 
$contenuto = fread($var, filesize("numero.txt")); 

$somma=$contenuto+1; 
fclose($var); 

$var2 = fopen("numero.txt", "w+"); 
fwrite($var2, $somma); 
fclose($var2); 
} 
?> 


<html>
<head> 

<form method="post" action=" <?php echo $_SERVER['PHP_SELF'];?> "> 
<input name="pulsante" type="submit" value="Positivo">[COLOR="#B22222"] <?php echo $disabled;?>[/COLOR]
</head> 
</input> 
 </script> </body> </html> 
</form>
 
PHP:
 <?php echo $disabled;?>

lo devi mettere all'interno del tag input


PHP:
<input name="pulsante" type="submit" value="Positivo" <?php echo $disabled;?>>
 
PHP:
 <?php echo $disabled;?>

lo devi mettere all'interno del tag input


PHP:
<input name="pulsante" type="submit" value="Positivo" <?php echo $disabled;?>>




ok ho provato a inserirlo nell input, ma non va ugualmente, si incrementa di continuo ad ogni click e refresh pagina.
Grazie
 
ciao vorrei che il tasto possa essere premuto una volta sola, è come un voto, lo uso per questo, un utente lo deve poter premere una sola volta, altrimenti se un utente ci clicca sopra 40 volte questo causa dei valori a suo vantaggio o svantaggio.

è come se avessi un mi "piace", se clicco 10 volte il tasto è come se 10 utenti lo han visto ma in realta era solo uno.

grazie, credo di dover spostare solo quel"disable".
 
ciao vorrei che il tasto possa essere premuto una volta sola, è come un voto, lo uso per questo, un utente lo deve poter premere una sola volta, altrimenti se un utente ci clicca sopra 40 volte questo causa dei valori a suo vantaggio o svantaggio.

è come se avessi un mi "piace", se clicco 10 volte il tasto è come se 10 utenti lo han visto ma in realta era solo uno.

grazie, credo di dover spostare solo quel"disable".

Serve un riscontro sul server identificando l'utente, i blocchi sul client sono sempre bypassabili
 
Si serve lato server il riscontro. Spero si debbano registrare altrimenti ti devi fidare di cookie e indirizzi ip.
 
Si lato server ti devi assicurare che ogni utente ha votato solo 1 volta. Lo fai come preferisci ma devi comunque salvarti gli utenti che hanno già votato.
Non so se utilizzi un db ma basterebbe anche un txt.
 

Discussioni simili