Visualizzazione dei risultati da 1 a 10 su 10

Discussione: errore notice

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272

    errore notice

    Chi mi spiega questa segnalazione notice?

    Notice: Undefined index: opzioni in d:\test\crimisos 2.0\contenuti\ultime.php on line 67

    Questa la linea 67

    Codice PHP:
      if ($_POST['opzioni'] == "AGGIUNGI")  { 
    Lo script comunque funziona perfettamente

  2. #2

    Re: errore notice

    Originariamente inviato da usecram
    Lo script comunque funziona perfettamente
    "Perfettamente" sara' un eufemismo...

    non esiste $_POST['opzioni'].

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Codice PHP:
      function visualizzaFormOpzioni ()  {
      
          echo 
    "
    <h3>Opzioni amministratore</h3>
    <form method=\"post\">



      <input type=\"radio\" id=\"AGGIUNGI\" name=\"opzioni\" value=\"AGGIUNGI\" />
      <label for=\"AGGIUNGI\">Aggiungi notizia / [b]Crea archivio di dati[/b]</label>

      <input type=\"radio\" id=\"MODIFICA\" name=\"opzioni\" value=\"MODIFICA\" />
      <label for=\"MODIFICA\">Modifica notizia</label>

      <input type=\"radio\" id=\"ELIMINA\" name=\"opzioni\" value=\"ELIMINA\" />
      <label for=\"ELIMINA\">Elimina notizia / Elimina archivio di dati</label>

      <input type=\"radio\" id=\"CONFIGURA\" name=\"opzioni\" value=\"CONFIGURA\" />
      <label for=\"CONFIGURA\">Configura i dati d'accesso</label>
    </p>
    ... 
    Ora so che significa che non esiste, grazie però come vedi esiste.
    Si trova dentro una funzione, sono sempre più convinto che si tratta di un problema di "visibilità".
    Non è un eufemismo funziona alla grandissima.

  4. #4
    Sicuramente sara' una cosa piu' complessa... non credo tu faccia una funzione per stampare un form con echo.

    se fosse solo per stampare un form usa la sintassi HEREDOC invece di una funzione.

    prova ad inizio pagina a stampare l'array POST cosi' vedi che contiene.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    :master:


    ma il form ... lo chiudi???

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Sì il form lo chiudo dai so' scarso, o meglio principiante, ma non esageriamo!
    Il problema l'ho capito ma non è semplice da spiegare. Ci provo.
    'sto programmino funziona così:
    • Appena accedi alla pagina legge da un file di testo e pubblica le notizie che trova
    • se digiti ?amministrazione sulla barra dell'indirizzo mostra il form per il login nella stessa pagina
    • effettuato il login ti mostra le opzioni di amministrazione (sempre nella stessa pagina) e così via...


    Ora all'inizio del listato ci sono un if (quello che ho postato all'inizio)e una decina di elseif.
    Quindi gli chiedo di controllare se $_POST['opzioni'] esiste quando il form non è stato ancora stampato perché la funzione non è stata chiamata in causa.
    Per questo motivo probabilmente php mi chiede: ma dove ca22o è sto form di cui parli?
    Cambiando l'ordine degli if infatti il Notice non mi si presenta ma ovviamente altri problemi sì perché lo script è stato pensato in un modo e a cambiare gli if a lavoro ultimato si fa un bel casino.
    Secondo te/voi a lasciarlo com'è (ripeto funzionantissimo), con questo piccolo errore di logica è peccato mortale?

  7. #7
    certo che si. deve essere corretto...

    in pratica basta far precedere il controllo dell'esistenza di _POST prima di iniziare i controlli....

    codice:
    if(isset($_POST['opzioni'] { 
    
    allora esegui il listato che controlla le opzioni
    
    }  else { stampi il form  }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    L'altro mio problema è che sono d'accordo con te e stavo già provvedendo: il perfezionismo è un pregio che spinge a migliorarti ma soprattutto una gran rottura di oo che all'una di notte , tutto contento di aver trovato l'inghippo , ti spinge a risolvere un Notice di uno script che funziona lo stesso. Mah

  9. #9
    Originariamente inviato da usecram
    L'altro mio problema è che sono d'accordo con te e stavo già provvedendo: il perfezionismo è un pregio che spinge a migliorarti ma soprattutto una gran rottura di oo che all'una di notte , tutto contento di aver trovato l'inghippo , ti spinge a risolvere un Notice di uno script che funziona lo stesso. Mah
    Un NOTICE puo' aprire la porta ad un BUG. potrebbe limitarsi ad un fastidioso avviso ma e' un errore di programmazione. Un domani se gli sviluppatori di php decidessero di elevarlo ad errore il tuo script terminerebbe e saresti costretto a riprendere in mano cose di cui non hai manco piu' la memoria.

    Si "deve" programmare NOTICE FREE....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Non pensavo che un Notice potesse avere questa importanza cmq l'ho risolto sto sistemando i dettagli.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.