Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Problemi con 5.3.6

  1. #1

    Problemi con 5.3.6

    Con il passaggio a PHP 5.3.6 alcuni miei due script non mi funzionano piu..

    Ecco le porzioni di codice interessate

    codice:
    echo "<form action=\"index.php\" method=\"POST\" name=\"form-select-anno\">\n";
    echo "<select name=\"year\" onchange=\"submit()\">\n";
    echo "<option value=\"\">Scegli un anno</option>\n";
    while ($anno_select > 2007) {
    	echo "<option value=\"$anno_select\">$anno_select</option>\n";
    	$anno_select--;
    }
    
    echo "</select>\n";
    echo "</form>";
    In questa la variabile year non si va a popolare e lo switch successivo ovviamente termina uscendo alla condizione is_null($year)

    Il secondo invece è il seguente

    Codice PHP:
    <div id="content">
        <form name="frm" action="">
        <select onchange="window.location = 'http://www.onemorething.it/alias/' + document.frm.slct.options[document.frm.slct.selectedIndex].value;" name="slct">
        <option>Scegli una Stagione</option>
    <?    
            
    for($i=0;$i<$c;$i++) {
                   
    $ID=mysql_result($result,$i,"ID");
                   
    $testostag=mysql_result($result,$i,"testostag");

                   echo 
    "    <option value=\"episodi.php?stagione=$ID\">$testostag</option>\n";
            }
    ?>
        </select>
        </form>

    Mi potreste dare una mano, grazie

  2. #2
    Ho visto nel primo form, e forse questo vale anche per il secondo che ti riferisci a delle date ( anno ), ma il codice postato e tutto, ad esempio io nel primo form non vedo dove inizializzi la variabile $anno_select.

    Se per caso nel resto del codice utilizzi la funzione date() ti avverto che la versione del php che stai utilizzando non ha impostato il timezone nel file php.ini, cosa che devi impostare manualmente, cmq, ora mi sfugge come fare, sto cercando però di trovare un tutorial su internet, ti farò sapere.

    Altrimenti, se non si tratta di questo, ti vengono stampati degli errori a video, se si queli?

  3. #3
    La pagina non da errori ne output (con errori strani)
    se abbasso la versione del PHP il codice funziona alla grande

    Quelle variabili non le vedi, perche sono definite prima (nelal porzione di codice che non ho integrato)

  4. #4
    non ho capito qual'è il problema anche perchè parli di una variabile $year che non è utilizzata nel codice...

    ma l'html che stampa è sbagliato?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Se alla precedente versione del php andava allora il codice non centra, almeno credo, è il file php.ini.

    Sicuro di averlo configurato bene?

    Prova ad inserire, all'inizio del codice, prima di ogni riga, questo:

    Codice PHP:
    error_reporting(E_ALL); 
    La funzione definisci quali tipo di errori, di php, mostrare a video, E_ALL, sta per tutti gli errori, qualunque tipo di errori, vedi cosa ti stampa dopo l'aggiunta di questa riga, all'inizio del codice.

  6. #6
    Originariamente inviato da Santino83_02
    non ho capito qual'è il problema anche perchè parli di una variabile $year che non è utilizzata nel codice...

    ma l'html che stampa è sbagliato?
    la variabile year è utilizzata dopo...
    cmq mi posto il codice completo...

    riportando il php alla versione 4.x va, con la 5.3.6 non funziona

    codice:
    <?
    $anno_select = $anno_corrente = date('Y');  // es. 2009
    $mese = date('n');  // es. 4
    
    //Adeguamento per numeri di bolletino a mesi
    switch ($mese) 
    {
    case ( ($mese == 1) or ($mese == 2) ):
    	$bollettino = '1';  //bollettino 1 da mostrare
    	break;
    case ( ($mese == 3) or ($mese == 4) ):
    	$bollettino = '2';  //bollettino 2 da mostrare
    	break;
    case ( ($mese == 5) or ($mese == 6) ):
    	$bollettino = '3';  //bollettino 3 da mostrare
    	break;
    case ( ($mese == 7) or ($mese == 8) or ($mese == 9) or ($mese == 10) ):
    	$bollettino = '4';  //bollettino 4 da mostrare
    	break;
    case ( ($mese == 11) or ($mese == 12) ):
    	$bollettino = '5';  //bollettino 5 da mostrare
    	break;
    default:
    	echo "ERRORE CONTROLLARE LE CONDIZIONI DELLO SWITCH !!";
    }
    
    
    // ---- Inizio creazione Select
    echo "
    
    <h3>Bollettino</h3></p>";
    echo "
    \nBenvenuto. In questa sezione del nostro sito puoi visionare, scaricare e conservare i bollettini parrocchiali degli ultimi anni.
    \n
    		I bollettini sono in formato PDF e per la lettura è necessario il programma Adobe Acrobat Reader, o equivalente.
    
    \n
    		Scegli l'anno dal menu sottostante.
    
    \n";
    echo "<form action=\"index.php\" method=\"POST\" name=\"form-select-anno\">\n";
    echo "<select name=\"year\" onchange=\"submit()\">\n";
    echo "<option value=\"\">Scegli un anno</option>\n";
    while ($anno_select > 2007) {
    	echo "<option value=\"$anno_select\">$anno_select</option>\n";
    	$anno_select--;
    }
    
    echo "</select>\n";
    echo "</form>";
    // --- Fine creazione Select
    
    		echo "
    \n";
    		//echo "
    \n";
    		echo "
    \n";
    						
    // -- Inizio Creazione Array						
    $bollettino_mese = array ('Gennaio-Febbraio', 'Marzo-Aprile', 'Maggio-Giugno', 'Luglio-Agosto-Settembre-Ottobre','Novembre-Dicembre');
    // -- Fine Creazione Array
    
    // ---- Inizio OUTPUT
    switch ($anno_corrente)
    {
    case ($year == $anno_corrente):   //controllo se l'anno è quello corrente
    
    			echo "Per l'anno scelto sono disponibili i seguenti numeri:
    
    \n";
    
    				$var = 0;
    					while ($var < $bollettino) { 
    					$id = $var;
    					echo "$bollettino_mese[$id] $year";
    					
    					$bollettino_numero = $id+1;
    					$nome_file = "0".$bollettino_numero."-".$year.".pdf";
    					$path = "/web/htdocs/www.server.it/home/bollettino/download/";  //echo $_SERVER['SCRIPT_FILENAME'];
    					$path_completa = $path.$year."/".$nome_file;
    					
    					if ( file_exists ($path_completa) ) {
    					echo " - <a href=\"download/$year/$nome_file\">Scarica</a>";
    					}
    					else {
    					echo " - bollettino non ancora presente";
    					}
    					
    					
    					echo "
    \n";
    					$var++;
    					}
    
    break;	
    
    case (is_null($year)):			//lo year passato allo switch è nullo o non mi interessa
    	//echo "VUOTO";
    break;
    
    case ($anno_corrente > $year):  //l'anno non è quello corrente, ma uno precedente
    
    	echo "Per l'anno scelto sono disponibili i seguenti numeri:
    
    \n";
    
    	$var = 0;
    		while ($var < 5) { //5 perche i bollettini in un anno sono 5 e non 6
    		$id = $var;
    		echo "$bollettino_mese[$id] $year";
    		
    		$bollettino_numero = $id+1;
    		$nome_file = "0".$bollettino_numero."-".$year.".pdf";
    		$path = "/web/htdocs/www.server.it/home/bollettino/download/";  //echo $_SERVER['SCRIPT_FILENAME'];
    		$path_completa = $path.$year."/".$nome_file;
    					
    		if ( file_exists ($path_completa) ) {
    		echo " - <a href=\"download/$year/$nome_file\">Scarica</a>";
    		}
    		else {
    		echo " - bollettino non ancora presente";
    		}
    		
    		echo "
    \n";
    		$var++;
    		};
    break;
    
    default:
    	echo "condizione di defalut";
    }

  7. #7
    Originariamente inviato da davidestagni

    // ---- Inizio OUTPUT
    switch ($anno_corrente)
    {
    case ($year == $anno_corrente): //controllo se l'anno è quello corrente
    ma sto $year dove viene valorizzato? è valorizzato? ma l'errore qual'è? non stampa a video correttamente? hai messo l'error_reporting come diceva dragon?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    year viene valorizzato qui:

    codice:
    echo "<option value=\"$anno_select\">$anno_select</option>\n";
    purtoppo non posso fare quella modifica, sono su aruba e il file e' blindato (se ho visto bene)

    la cosa assurda e' che con PHP 4.4 lo script che vi ho postato va alla grande !!

  9. #9
    io proverei a mettere all'inizio dello script

    Codice PHP:

    $year 
    null;

    if(isset(
    $_POST) && $_POST['year'])
    $year $_POST['year']; 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    Probabilmente nella vecchia versione di php avevi settato il register_globals On

    Il che è assolutamente sconsigliato (dalla 5.3.0 è deprecato), in quanto se non correttamente utlizzato offre grosse vulnerabilità al sito!!

    Ergo: non andare a settare register_globals On, ma fai piuttosto come dice santino!!!
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

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.