Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2012-02-28 16:45:24.0 alle 2012-02-28 16:45:24.0
    Seccatura PHP con XAMPP
    Ho una pagina che include due script, uno dei quali contiene

    if ($_GET['c'] != 'no') ...

    e l'altro

    if ($_GET['r'] == 'net') $r = '.net'; else $r = '.com';

    e XAMPP dà i messaggi d'errore

    Notice: Undefined index: c in C:\... on line 29

    Notice: Undefined index: r in C:\... on line 10


    quando la pagina non viene chiamata appendendo ?c=... e ?r=... (anche ?c= senza specificare alcun valore va bene).

    Inoltre

    Notice: Undefined index: HTTP_REFERER in C:\... on line 14

    in corrispondenza di un'istruzione contenente

    $_SERVER['HTTP_REFERER']

    Sembra che se ?c= qualcosa, anche stringa vuota viene appeso all'URL della pagina $_GET['c'] è definito, mentre se non viene appeso nulla non risulta vuoto ma indefinito.
    Online non succede. In cosa il PHP di XAMPP differisce dal PHP online su byethost? È cambiata qualche specifica?
    • Avatar
      ☺
      Scritto da
      il 2012-02-28 17:18:20.0 alle 2012-02-28 17:18:20.0
      Trollate totali: 42885
      Re: Seccatura PHP con XAMPP
      Scritto da:

      > Notice: Undefined index: c in C:\... on line 29
      >
      > Notice: Undefined index: r in C:\... on line 10

      >
      > quando la pagina non viene chiamata appendendo ?c=... e ?r=... (anche ?c= senza specificare alcun valore va bene).

      Prima dell'if, dichiara le variabili aventi valore nullo. Qualcosa del tipo:

      $r = null;
      if ($_GET['r'] == 'net') {
          $r = '.net';
      } else {
          $r = '.com';
      }
      


      Inoltre, molto importante, usa sempre "{" e "}" Occhiolino

      > Notice: Undefined index: HTTP_REFERER in C:\... on line 14
      >
      > in corrispondenza di un'istruzione contenente
      >
      > $_SERVER['HTTP_REFERER']

      Si vede che il valore non e' definito. Fai un check:
      if (isset($_SERVER['HTTP_REFERER'])) {
          ...
      }
      


      > Online non succede. In cosa il PHP di XAMPP differisce dal PHP online su byethost? È cambiata qualche specifica?

      Forse certi errori vengono mostrati nel log, prima finivano nel Nirvana.
      `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
      • Avatar
        Scritto da
        Non Autenticato
        il 2012-02-28 19:17:10.0 alle 2012-02-28 19:17:10.0
        Re: Seccatura PHP con XAMPP
        > > Notice: Undefined index: c in C:\... on line 29
        > >
        > > Notice: Undefined index: r in C:\... on line 10

        > >
        > > quando la pagina non viene chiamata appendendo ?c=... e ?r=... (anche ?c= senza specificare alcun valore va bene).
        >
        > Prima dell'if, dichiara le variabili aventi valore nullo. Qualcosa del tipo:
        >
        >
        > $r = null;
        > if ($_GET['r'] == 'net') {
        >     $r = '.net';
        > } else {
        >     $r = '.com';
        > }
        > 


        Perché? 'r' è un indice e $r una variabile che viene definita in base al valore di $_GET['r']. Il PHP in funzione sui server si comporta come se $_GET['r'] fosse vuoto per r non definito, quello di XAMPP come se fosse non definito. Dovrei probabilmente modificare il controllo in

        if (isset($_GET['r'])) {
            if ($_GET['r'] == 'net') {
                $r = '.net';
            } else {
                $r = '.com';
            }
        } else {
            $r = '.com';
        }
        


        però è una seccatura modificare tutti gli script.
        Con PHP 3 ricordo che controllavo sempre le variabili con isset(), poi dev'essermi parso ridondante. Si leggeva anche sul manuale che PHP per Windows era diverso in certe cose, ma se continua ad esserlo in minuzie come queste è un ostacolo alla portabilità.

        > Inoltre, molto importante, usa sempre "{" e "}" Occhiolino

        Nell'if? La notazione breve dell'if, quando sta tutto su una riga, è citata sul manuale e non dovrebbe essere scorretta.

        > Forse certi errori vengono mostrati nel log, prima finivano nel Nirvana.

        Potrebbe essere una differenza con PHP per Windows?
        • Avatar
          ☺
          Scritto da
          il 2012-02-29 08:07:41.0 alle 2012-02-29 08:07:41.0
          Trollate totali: 42885
          Re: Seccatura PHP con XAMPP
          Scritto da:

          > Perché? 'r' è un indice e $r una variabile che viene definita in base al valore di $_GET['r'].

          Mi pare di aver capito che $r viene definita solo se $_GET['r'] esiste.
          Piu' avanti, quando cerchi di accedere a $r, PHP potrebbe risponderti "ecchecazzo e' $r Newbie, inesperto ?"

          > però è una seccatura modificare tutti gli script.

          Se tu avessi fatto Alla Maniera Giusta™ sin dall'inizio, non avresti avuto questo problema Anonimo

          > > Inoltre, molto importante, usa sempre "{" e "}" Occhiolino
          >
          > Nell'if? La notazione breve dell'if, quando sta tutto su una riga, è citata sul manuale e non dovrebbe essere scorretta.

          Quando ero ancora un giovane programmatore implume, ho ricevuto l'importantissimo compito di correggere un bug di una classe scritta da $occhiPallati. Dopo ore e ore e ore e tanta frustrazione, ho scoperto che qualcuno ha aggiunto una seconda riga in un if breve:

          if (giamboFigo)
              faiQualcosa;
              faiQualcosaltro;
          


          Ai tempi non esistevano IDE in ordine, e con solo UltraEdit era difficile trovare l'errore. Per un giovane Giambo, poi ...
          Da quel giorno sono diventato un talebano Ficoso

          > > Forse certi errori vengono mostrati nel log, prima finivano nel Nirvana.
          >
          > Potrebbe essere una differenza con PHP per Windows?

          Penso piu' a una differenza di configurazione ... Ma non sono esperto in questo campo !
          `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
          • Avatar
            Scritto da
            Non Autenticato
            il 2012-02-29 11:54:24.0 alle 2012-02-29 11:54:24.0
            Re: Seccatura PHP con XAMPP
            > > Perché? 'r' è un indice e $r una variabile che viene definita in base al valore di $_GET['r'].
            >
            > Mi pare di aver capito che $r viene definita solo se $_GET['r'] esiste.
            > Piu' avanti, quando cerchi di accedere a $r, PHP potrebbe risponderti "ecchecazzo e' $r Newbie, inesperto ?"
            >
            > > però è una seccatura modificare tutti gli script.
            >
            > Se tu avessi fatto Alla Maniera Giusta™ sin dall'inizio, non avresti avuto questo problema Anonimo

            Stavo pensando, per il futuro, di scrivere tutte le parti di codice usate da più script sotto forma di funzioni definite dentro script da includere. A bocca storta
            Solo che potrebbe dare rogne quando una funzione viene definita due volte, devo soppesare vantaggi e svantaggi.

            > > > Inoltre, molto importante, usa sempre "{" e "}" Occhiolino
            > >
            > > Nell'if? La notazione breve dell'if, quando sta tutto su una riga, è citata sul manuale e non dovrebbe essere scorretta.
            >
            > Quando ero ancora un giovane programmatore implume, ho ricevuto l'importantissimo compito di correggere un bug di una classe scritta da $occhiPallati. Dopo ore e ore e ore e tanta frustrazione, ho scoperto che qualcuno ha aggiunto una seconda riga in un if breve:
            >
            >
            > if (giamboFigo)
            >     faiQualcosa;
            >     faiQualcosaltro;
            > 

            >
            > Ai tempi non esistevano IDE in ordine, e con solo UltraEdit era difficile trovare l'errore. Per un giovane Giambo, poi ...
            > Da quel giorno sono diventato un talebano Ficoso
            >
            > > > Forse certi errori vengono mostrati nel log, prima finivano nel Nirvana.
            > >
            > > Potrebbe essere una differenza con PHP per Windows?
            >
            > Penso piu' a una differenza di configurazione ... Ma non sono esperto in questo campo !
            • Avatar
              ☺
              Scritto da
              il 2012-02-29 12:27:43.0 alle 2012-02-29 12:27:43.0
              Trollate totali: 42885
              Re: Seccatura PHP con XAMPP
              Scritto da:

              > Stavo pensando, per il futuro, di scrivere tutte le parti di codice usate da più script sotto forma di funzioni definite dentro script da includere. A bocca storta
              > Solo che potrebbe dare rogne quando una funzione viene definita due volte, devo soppesare vantaggi e svantaggi.

              Ci fosse una chiara separazione in classi e "packages", come Java ...
              `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
              • Avatar
                Scritto da
                Non Autenticato
                il 2012-02-29 12:30:52.0 alle 2012-02-29 12:30:52.0
                Re: Seccatura PHP con XAMPP
                > > Stavo pensando, per il futuro, di scrivere tutte le parti di codice usate da più script sotto forma di funzioni definite dentro script da includere. A bocca storta
                > > Solo che potrebbe dare rogne quando una funzione viene definita due volte, devo soppesare vantaggi e svantaggi.
                >
                > Ci fosse una chiara separazione in classi e "packages", come Java ...

                Se faccio come ho detto potrebbe però anche succedere che quando aggiorno la funzione, ad uno specifico script va bene la vecchia versione, e me ne accorgo solo quando scopro il baco.
<softv>

Pagina generata in 52 millisecondi

Utenti attivi: 13 nell'ultimo minuto, 34 negli ultimi cinque minuti, 62 negli ultimi 15 minuti