php-problema con eccezioni

  • Creatore Discussione Creatore Discussione tony1
  • Data di inizio Data di inizio

tony1

Utente Attivo
8 Ago 2010
32
0
0
Sto studiando le eccezioni in php.Per provarle ho buttato giù questo script:
Codice:
<?php

/**
 * @author tonino
 * @copyright 2010
 */
function ver(){
    try
    {
        if($txtnome=="")
        {
        throw new Exception("Inserire il nome");
        }
    }
    catch(Exception $e)
    {
      echo 'Messaggio: ' . $e->getMessage();  
    }
  return;
}



?>
<html>
<head>
<style type="text/css">
        
        
        #pagina {
            float: left;
        }
        #pagina ul {
            float: left;
            padding-left: 50px;
            list-style-type: none;
        }
        #pagina ul label {
            width: 130px;
            float: left;
        }
        #btn_submit{
            float: left;
            clear: both;
            margin-left: 50px;
        }
    </style>
    </head>
<body>
<form method="get" action="">
<div id="pagina">
<ul>
  <li>
     <label for="nome">Nome:</label>
      <input type="text" id="text" name="txtnome" />
  </li>
  <li>
     <label for="cognome">Cognome:</label>
     <input type="text" id="text1" name="txtcognome" />
  </li>
  <li>
     <label for="stato">Stato:</label>
     <input type="text" id="text2" name="txtstato" />
  </li>
  <li>
     <label for="prov">Provincia:</label>
     <input type="text" id="text3" name="txtprov" />
  </li>
  <li>
     <label for="citta">Città:</label>
     <input type="text" id="text4" name="txtcitta" />
  </li>
 
     <input type="button" id="btn_submit" value="Verifica" onclick="<?php ver(); ?>" />
  
</ul>
</div>
</form>
</body>

</html>

Praticamente mi dovrebbe visualizzare il messaggio di errore se premo il pulsante e la txtnome è vuota.Invece non fà nulla.Non riesco a capire perchè!
 
Sto studiando le eccezioni in php.Per provarle ho buttato giù questo script:
Codice:
<?php

/**
 * @author tonino
 * @copyright 2010
 */
function ver(){
    try
    {
        if($txtnome=="")
        {
        throw new Exception("Inserire il nome");
        }
    }
    catch(Exception $e)
    {
      echo 'Messaggio: ' . $e->getMessage();  
    }
  return;
}



?>
<html>
<head>
<style type="text/css">
        
        
        #pagina {
            float: left;
        }
        #pagina ul {
            float: left;
            padding-left: 50px;
            list-style-type: none;
        }
        #pagina ul label {
            width: 130px;
            float: left;
        }
        #btn_submit{
            float: left;
            clear: both;
            margin-left: 50px;
        }
    </style>
    </head>
<body>
<form method="get" action="">
<div id="pagina">
<ul>
  <li>
     <label for="nome">Nome:</label>
      <input type="text" id="text" name="txtnome" />
  </li>
  <li>
     <label for="cognome">Cognome:</label>
     <input type="text" id="text1" name="txtcognome" />
  </li>
  <li>
     <label for="stato">Stato:</label>
     <input type="text" id="text2" name="txtstato" />
  </li>
  <li>
     <label for="prov">Provincia:</label>
     <input type="text" id="text3" name="txtprov" />
  </li>
  <li>
     <label for="citta">Città:</label>
     <input type="text" id="text4" name="txtcitta" />
  </li>
 
     <input type="button" id="btn_submit" value="Verifica" onclick="<?php ver(); ?>" />
  
</ul>
</div>
</form>
</body>

</html>

Praticamente mi dovrebbe visualizzare il messaggio di errore se premo il pulsante e la txtnome è vuota.Invece non fà nulla.Non riesco a capire perchè!

Ciao,
non puoi richiamare la funzione così:

Codice:
<input type="button" id="btn_submit" value="Verifica" onclick="<?php ver(); ?>" />

Modifica in questo modo:

Codice:
<input type="submit" name="btn_submit" id="btn_submit" value="Verifica" />

e il codice PHP che gestisce il form diventa:

PHP:
if(isset($_GET['btn_submit'])) {
    try
    {
        if($_GET['txtnome']=="")
        {
        throw new Exception("Inserire il nome");
        }
    }
    catch(Exception $e)
    {
      echo 'Messaggio: ' . $e->getMessage();  
    }
  exit;
}

Le variabili provenienti dal form HTML, infatti, le recuperi dall'array $_GET di PHP.
Il controllo if iniziale ti serve per intercettare il submit del form.
 

Discussioni simili