Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Attivare una variabile senza darle un valore

    Salve. Vorrei sapere se è possibile attivare una variabile senza assegnarle un valore. Mi spiego con un esempio.

    Ho alcuni form nei quali alcuni campi si ripetono. Invece di scrivere in ogni funzione

    Il campo nome deve essere riempito

    Avevo pensato di creare un sistema interno di gesione degli errori.
    Per farlo avevo pensato di fare così:

    errore 1 = Il campo nome deve essere riempito
    errore 2 = il campo mail deve essere riempito ecc.

    Nel form, poi, ho inserito un if in corrispondenza di ogni campo:
    se un determinato errore è attivo inserisce l'errore corrispondente. Il mio problema è:

    come faccio a farlo senza scrivere ogni volta il messaggio?

    Vi posto i codici per una maggiore chiarezza:

    codice:
    Pagina con il form
    
    <form name="materiale" method="post" action="">
    <table width="100%"  border="0" cellspacing="2" cellpadding="0">
      <tr>
      	<td colspan=3><div align="center">Inserisci materiale</div></td>
      </tr>
      <?PHP
      if (isset($err_noname))
        {
           echo "<tr>
                   <td width=\"49%\" valign=top colspan=3><div align=\"center\">$err_noname</div></td>
                 </tr>";
        }
      ?>
      <tr>
        <td width="49%" valign=top><div align="right">Nome:</div></td>
        <td width="2%"></td>
        <td width="49%" valign=top><div align="left"><input type="text" name="materiale_nome"></div></td>
      </tr>
    </table>
    </form>
    
    
    Pagina con la funzione
    
    // 1) Controllo se la variabile del nome proveniente da l form è stata settata
    if (isset($PHP_POST_VARS["materiale_nome"]))
      {
        // 2) La variabile del nome proveniente dal form è stata settata.
    	//    Alla variabile assegno un altro nome più breve.
    	$materiale_nome = "$PHP_POST_VARS["materiale_nome"]";
        
    	// Comincio a definire la funzione utilizzando il nuovo nome
    	function materiale_insert ($materiale_nome)
    	        {
    			   //La funzione fa automaticamente altri controlli
    			   
    			}
      }
      else // 1) se la variabile proveniente dal form non è settata dà errore
      {
         $err_noname = "Deve essere inserito un nome";
      }
    Il codice della funzione è incompleto perchè prima devo risolvere questo problema!
    Grazie mille! Ciao ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    io farei

    foreach($PHP_POST_VARS as $key => $value)
    if (!$value) $err_noname = "Il campo $key deve essere riempito";

    (sei sicuro che non sia HTTP_POST_VARS?)
    cmq non va benissimo visto che se uno passa i valori da un suo form dove tralascia dei campi li accetta lo stesso... oppure se passa solo alcuni valori tramite GET
    visitate http://camicio.altervista.org per caxxate varie :d

  3. #3
    Veramente no, non ho ancora ben capito come funzionano queste variabili!
    Ho un libro sul php dove nell indice le chiama HTTP_POST_VARS.
    Quando vado al capitolo corrispondente nel titolo pure le chiama così mentre nel testo le chiama col suffisso PHP invece di HTTP.
    Visto che una volta ho provato ad usare HTTP ma mi dava errore ora provo con PHP!

    Per ciò che riguarda il form secondo te come dovrei fare?

    PS
    Con foreach poi però non posso inserire l'errore in corrispondenza del campo relativo nel form!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Più che al libro ti dovresti riferire alla versione di php.

    C'è una pillola in proposito.


  5. #5
    Ok. Grazie.
    Cmq credo di aver risolto il problema.
    Appena ho finito posto i codici con le spiegazioni.
    Ciao e grazie!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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.