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

    Problema con il costrutto if

    Questa è la pagina php incriminata:
    codice:
    <html>
    	<head>
    		<title>Multipurpose Form</title>
    		<style type="text/css">
    			<!--
    			td
    			{
    				vertical-align: top;
    			}
    			-->
    		</style>
    	</head>
    	<body>
    		<?php
    			echo $_POST['type'];
    			if ($_POST['type'] == 'movie')
    			{
    				echo '<h1>New ' . ucfirst($_POST['movie_type']) . ': ';
    				echo 'Prova';
    			}
    			else
    			{
    				echo '<h1>New ' . ucfirst($_POST['type']) . ': ';
    			}
    			echo $_POST['name'] . '</h1>';
    			
    			echo '<table>';
    			if ($_POST['type'] == 'movie')
    			{
    			 echo '<tr>';
    			 echo '<td>Year</td>';
    			 echo '<td>' . $_POST['year'] . '</td>';
    			 echo '</tr><tr>';
    			 echo '<td>Movie Description</td>';
    			}
    			else
    			{
    				echo '<tr><td>Biography</td>';
    			}
    			echo '<td>' . n12br($_POST['extra']) . '</td>';
    			echo '</tr>';
    			echo '</table>';
    			
    			if (isset($_POST['debug']))
    			{
    				echo '<pre>';
    				print_r($_POST);				
    				echo '</pre>';
    			}
    		?>
    	</body>
    </html>
    Eseguendola nel browser, ottengo questo risultato:

    Dato che stampa movie, il valore della variabile $_POST['type'] è movie, dunque dovrebbe eseguire le istruzione contenute all'interno di
    if ($_POST['type'] == 'movie')
    ma non lo fa, non stampa Prova (messo apposta per vedere se quel blocco veniva eseguito).

    Come mai succede questo? Dov'è che sbaglio?

  2. #2
    in php è sempre consigliato comunque strcmp($a,$b) per uguglianze fra stringhe invece del classico '==' in questo modo:
    codice:
    if (strcmp($_POST['type'],'movie')==0) {
    ....
    }
    poi sei sicuro che movie non ha per caso qualche spazio finale?? In quanto se lo stampi non viene visualizzato. Potresti provare con la funzione trim() in questo modo:

    codice:
    if (strcmp(trim($_POST['type']),'movie')==0) {
    ....
    }
    se cosi non va oppure sfugge qualche piccola cosa anche a me :-)
    http://www.simplesoft.it

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.