Visualizzazione risultati 1 fino 5 di 5

Discussione: checkbox form

  1. #1
    Guest

    Predefinito checkbox form

    ciao a tutti qualcuno può dirmi che cosa non va in questo script???
    Codice PHP:
    <? session_start();$file="divieti/$nick_msg.txt"
    $ms = $_POST['sms'];$invit= $_POST['invito'];
    if(!
    $ms==FALSE){
    if(isset(
    $ms)){$var=fopen($file,"w");fwrite($var, "ok");fclose($var);}} else { if(file_exists($file))unlink($file);}
    ?>
    <form action="divieti.php" method="post">

    <input type="checkbox" name="sms" value="yes" <? if(file_exists($file)){echo"checked";}?>/> blocca questa funzione

    <input type="submit" value="OK" />
    </form>
    in pratica se il checkbox è barrato creo il file text altrimenti lo cancello
    pero se torno su questo form dopo un pò mi fa il contrario di ciò che è mia intenzione :(
    dovè che sbaglio???

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Codice PHP:
    <?php
    $file
    ="divieti/$nick_msg.txt";

    if(isset(
    $_POST['sms'])) //se è settato, deve esserci il file
    {
    if(!
    file_exists($file))
    {
    $var=fopen($file,"w");
    fwrite($var, "ok");
    fclose($var);
    }
    }
    else
    //altrimenti...
    if(file_exists($file))
    unlink($file);

    ?>
    <form action="divieti.php" method="post">
    <input type="checkbox" name="sms" value="yes" <?php if(file_exists($file)) echo 'checked'; ?> /> blocca questa funzione
    <input type="submit" value="OK" />
    </form>
    Non ho capito:
    -a cosa serve la session_start(); (forse, per del codice prima?, però dovrebbe stare più in alto).
    -da dove ricavi $nick_msg (forse, dal codice prima?).
    -da dove ricavi $_POST['invito']

    Poi, ti consiglio di usare la file_put_contents() per scrivere/creare un file: è solo una riga, a differenza della fopen() e altre, che occorrono 3 istruzioni (occhio però che richiede PHP5).

    Ciao!
    Ultima modifica di alemoppo : 05-02-2012 alle ore 12.12.37

  3. #3
    Guest

    Predefinito

    ciao alemoppo ho sintetizzato lo script all essenziale :) in pratica co la sessione apro il file text col nome dell utente ($nick_msg.txt dove $nick= è la sessione dell utente)
    mentre il $_POST['invito'] era un altro checkbox che non ho menzionato qui...

    cmq in pratica va bene se barro la casella e dopo faccio ok ma se provo a ricaricare la pagina si sbarra nuovamente!! non capisco dove sta l errore :(
    Ultima modifica di xspacemasterx : 05-02-2012 alle ore 12.30.31

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Citazione Originalmente inviato da xspacemasterx Visualizza messaggio
    cmq in pratica va bene se barro la casella e dopo faccio ok ma se provo a ricaricare la pagina si sbarra nuovamente!! non capisco dove sta l errore :(
    Non c'é l'errore, perché se carichi la pagina la prima volta, $_POST['sms'] non è settato, quindi procede eliminando il file (se esiste).
    Potresti risolvere via GET (aprendo la pagina con il parametro per non eliminare il file), oppure, meglio, specificare dal form se eliminare il file, o se crearlo. In questo modo, se non passi alcun parametro, lo script sarà inerte.

    Ciao!
    Ultima modifica di alemoppo : 05-02-2012 alle ore 15.06.53

  5. #5
    Guest

    Predefinito

    ok grazie alemoppo............

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •