header e session funzionano perfettamente in locale ma creano problemi in remoto

Fabrizio Fiorita

Utente Attivo
Ho provato quello che mi hai detto e - contrariamente a ogni previsione - il rinvio funziona.
A questo punto non mi resta che rispulciare il codice lettera per lettera per trovare l'inghippo.
Quello che mi ha meravigliato è che, sostituendo il rinvio HEADER con
PHP:
	echo "<script>javascript:window.location.href='accesso_direzionale.php'</script>";
veniva effettuato il cambio pagina ma non venivano trasmessi i dati di sessione.
Secondo un suggerimento trovato su php.net, si dovrebbe memorizzare nella pagina di partenza l'UID della sessione e poi inserirlo in session_id prima del session_start.
Il problema è come e dove memorizzarlo perché resti raggiungibile nella pagina d'arrivo, visto che $_SESSION sparisce.
Comunque adesso vado a controllare il codice.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
C'è una cosa che non comprendo appieno: perché imposti manualmente la cartella in cui salvare le sessioni e il nome della sessione? Ci sono motivi particolari? Penso che il problema in qualche modo possa essere legato a questo; ovviamente è solo un'ipotesi.
 

Fabrizio Fiorita

Utente Attivo
Riepilogando:
ho spulciato tutto il codice delle due pagine incriminate, che posto nuovamente in quanto ho inserito dei commenti importanti ed ho apportato alcune modifiche di semplificazione (altre ne verranno). Non ho trovato nessun motivo di quello che capita in remoto, e continuo a non capire perché le due pagine funzionano perfettamente in locale.
Ho adottato due soluzioni alternative:
La prima utilizza la funzione PHP header
PHP:
	header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/accesso_direzionale.php'); 
	exit(); */
Seguendo lo script con diversi markers ho verificato che viene tutto eseguito fino alla funzione header, dove lo script si blocca.

La seconda soluzione utilizza la funzione Javascript
PHP:
	echo "<script>javascript:window.location.href='accesso_direzionale.php'</script>";
In questo caso il passaggio di pagina viene eseguito, ma non vengono trasmessi i dati della sessione: la funzione session_start, anziché recuperare i dati della sessione aperta ne apre una nuova.

Da notare che, in locale, ambedue le funzioni si comportano perfettamente e che, in remoto, non viene mai evidenziato alcun errore.

Posto il file di partenza verifica_accesso_direzionale.php
PHP:
<!DOCTYPE html>
 <?php
/* Doveva funzionare anche qui, ma non funziona perché viene eseguita subito e non quando serve.	
		header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/accesso_direzionale.php'); 
		exit(); */
?>
<html lang="it">
  <head>
    <meta charset="utf-8">
    <meta name="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)">
    <meta name="created" content="mar, 03 lug 2012 15.02.57 GMT">
    <meta name="description" content="Verifica se chi ha chiesto l'accesso direzionale è abilitato (dati provenienti da pagina Joomla).">
    <meta name="keywords" content="">
	<link rel="stylesheet" href="/templates/ff_sipbc_j11/css/sipbcall.css" type="text/css" media="all" />
    <title>Verifica accesso direzionale</title>
    <!--[if IE]>
    		<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
			<script type="text/javascript" src="../templates/ff_sipbc_j11/js/5shiv.js"></script>
    <![endif]-->
  </head>
<body>
<?php
  error_reporting(E_ALL);  // Eliminare alla fine del debug
  require_once('costanti.inc'); // contiene la funzione che stampa la testata di pagina quando necessaria
  require_once('dbconnect.inc'); // contiene i valori per la connessione al database
/* Sanitarizzazione e lettura dell'input */
  foreach ($_POST as &$replaced)
  		  {
		  $replaced = str_replace("'", "", $replaced);
		  }
  foreach ($_POST as $escaped)
  		  {
		  $escaped = htmlentities($escaped, ENT_QUOTES, "UTF-8");
		  }
  $codice = $_POST["codice"];
  $password = $_POST["pw"];
/* Fine sanitarizzazione e lettura dell'input */
/* Connessione al database */
  $conn = @new mysqli($db_server, $db_user_name, $db_password, $db_name);
  if (mysqli_connect_errno() != 0)
	{
	  $errno = mysqli_connect_errno();
	  $errmsg = mysqli_connect_error();
      echo '<article id="modiscriz1">', TESTATA;
	  echo 'Errore connessione: ', ($errno),' ',$message, '<input type="button" value="Torna indietro" onClick="javascript:history.go(-1)" />';
	  echo '</article>';
	  exit();
	}
/* Fine connessione al database */
/* Ricerca sul database del codice immesso nel form.
   Non necessaria la verifica di codice o password vuoti perché dichiarati REQUIRED nel form di origine. */
	$conn->query("SET NAMES 'utf8'");
	$query_str = "SELECT * FROM accesso WHERE codice='$codice'";
  	$result = $conn->query($query_str);
  	if ($result === FALSE)
  	   {
    	$errno = $conn->errno;
    	$errmsg = $conn->error;
        echo '<article id="modiscriz1">', TESTATA;
    	echo 'Errore dati: ($errno) $errmsg<br/>','<input type="button" value="Torna indietro" onClick="javascript:history.go(-1)" />';
    	$conn->close();
	    echo '</article>';
		exit();
	   }
/* Fine ricerca sul database del codice immesso nel form. */
/* Codifica e verifica della password. */
	$row_data = @$result->fetch_array();
	$sha2=hash('sha256', $password);
	if ($sha2 != $row_data['password'])
	   {
        echo '<article id="modiscriz1">', TESTATA;
		echo '<span style="color:red; font-weight:bold;">Codice e/o password non validi</span><br />';
		echo '<input type="button" value="Torna indietro" onClick="javascript:history.go(-1)" />';
		$result->close();
		$conn->close();
	    echo '</article>';
		exit();
	   }
/* Fine codifica e verifica della password. */
/* A questo punto sono disponibili tutti i dati per creare lo USER. */
    require_once('userinfo.inc'); // contiene la classe UserInfo per i soli utenti di questa procedura di accesso
	$tipo = $row_data['tipo'];
	$sezione = $row_data['sezione'];
	$delegazione = $row_data['delegazione'];
	$user = new UserInfo($codice, $password, $tipo, $sezione, $delegazione);
/* La sessione viene iniziata solo ora, per evitare apertura di sessioni inutili. */
  	ini_set('session.save_path', '../iscrizione/tmp/');
  	session_name('ACCESSODIREZIONALE');
  	session_start();
	$_SESSION['current_user'] = $user;
/* Eliminazione dei dati non più necessari */
	if (isset($result)): $result->close(); endif;
	if (isset($conn)): $conn->close(); endif;
/* Soluzione con HEADER */
/* IN REMOTO ARRIVA FIN QUI E POI SI BLOCCA
	header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/accesso_direzionale.php'); 
	exit(); */
/* Soluzione alternativa a HEADER */
/* IN REMOTO QUESTA SOLUZIONE VA ALLA PAGINA RICHIESTA MA NON TRASMETTE LA SESSIONE */
	echo "<script>javascript:window.location.href='accesso_direzionale.php'</script>";
/* Tutte le righe fino alla chiusura del tag PHP possono essere cancellate se funziona HEADER. 
    echo '<article id="modiscriz1">', TESTATA;
	echo '<br /><h3>Credenziali corrette per ';
	switch ($tipo) 
	    { 
	 		case "1": echo "l'Amministratore del Sistema e la Segreteria Nazionale</h3>"; break;
			case "2": echo 'il Presidente ed il Segretario Generale</h3>'; break;
			case "3": echo 'la ', $sezione, '</h3>'; break;
			case "4": echo 'la ', $delegazione, '</h3>'; break;
		}
	echo '<form method="post" name="avvio" action="accesso_direzionale.php">',
	 	  '<button type="submit" />Accedi</button>',
	      '</form>'; */
?>
</body>
</html>

ed il file di arrivo, accesso_direzionale.php
PHP:
<!DOCTYPE html>
<html lang="it">
  <head>
    <meta charset="utf-8">
    <meta name="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)">
    <meta name="created" content="mar, 03 lug 2012 15.02.57 GMT">
    <meta name="description" content="Riceve OK da verifica_accesso.php e seleziona il tipo di autorizzazione per l'utente">
    <meta name="keywords" content="">
	<link rel="stylesheet" href="/templates/ff_sipbc_j11/css/sipbcall.css" type="text/css" media="all" />
    <title>Accesso direzionale</title>
    <!--[if IE]>
    		<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
			<script type="text/javascript" src="../templates/ff_sipbc_j11/js/5shiv.js"></script>
    <![endif]-->
  </head>
<body>
<?php
error_reporting(E_ALL);  // Eliminare alla fine del debug
  require_once('costanti.inc'); // contiene la funzione che stampa la testata di pagina quando necessaria
  require_once('dbconnect.inc'); // contiene i valori per la connessione al database
  require_once('userinfo.inc'); // contiene la classe UserInfo per i soli utenti di questa procedura di accesso
  ini_set('session.save_path', '../iscrizione/tmp/');
/* Riapertura della sessione */
  session_name('ACCESSODIREZIONALE');
  session_start();
/* Recupero dei dati di sessione relativi all'utente.*/ 
  $user = $_SESSION['current_user'];
  $codice = $user->get_codice();  // Mi sembra che non serva, vedere ed eventualmente togliere
  $tipo = $user->get_tipo();
  $pwu = $user->get_pwu();  // Mi sembra che non serva, vedere ed eventualmente togliere
  if ($tipo == 3): $sezione = $user->get_sezione(); endif;
  if ($tipo == 4): $delegazione = $user->get_delegazione(); endif;
/* Apertura della pagina grafica contenente il menu di accesso alle funzioni del pacchetto. */
  echo '<article id="modiscriz1">';
  echo TESTATA;
/* Gli input HIDDEN nei menu che seguono potrebbero non essere necessari perché i dati vengono forniti dalla sessione. */
  switch ($tipo)
   {
	case "1": // accesso pieno
?>
		  	<table class="direzione">
			  <tr>
			  	  <td colspan="5"><p style="font-weight:bold; text-align:center;">Accesso consentito con privilegi dell'Amministratore di sistema.</p></td>
				  </tr>
			  <tr>
	 	  	   <td><form method="post" name="avvio" action="../phpmyadmin" target="_blank">
	 		   		 <button type="submit" />Database</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="abilita.php">
	 		   		 <button type="submit" />Abilita accesso</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_abilitati.php">
	 		   		 <button type="submit" />Elenco abilitati</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni_collettive.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. collettive</button>
			   </form></td>
			  </tr>
			  <tr>
	 	  	   <td><form method="post" name="avvio" action="nuovo_onore.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Ins. Membri On.</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_onore.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Membri d'Onore</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_soci.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_collettivi.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci collettivi</button>
			   </form></td>
<?php
    break;
	case "2": // accesso pieno in sola lettura
?>
		  	<table class="direzione">
			  <tr>
			  	  <td colspan="3"><p style="font-weight:bold; text-align:center;">Accesso consentito con privilegi della Direzione Nazionale.</p></td>
				  </tr>
				  <tr>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni_collettive.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. collettive</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_onore.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Membri d'Onore</button>
			   </form></td>
			   </tr>
			   <tr>
	 	  	   <td><form method="post" name="avvio" action="lista_soci.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_collettivi.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci collettivi</button>
			   </form></td>
<?php
    break;
	case "3": // accesso ai soli dati della Sezione regionale in sola lettura
?>
		  	<table class="direzione">
			  <tr>
			  	  <td colspan="5"><p style="font-weight:bold; text-align:center;">Accesso consentito con privilegi della <?php echo $sezione; ?>.</p></td>
				  </tr>
				  <tr>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="sezione" value="<?php echo $sezione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni_collettive.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="sezione" value="<?php echo $sezione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. collettive</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_soci.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="sezione" value="<?php echo $sezione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_collettivi.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="sezione" value="<?php echo $sezione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci collettivi</button>
			   </form></td>
<?php
    break;
	case "4": // accesso ai soli dati della Delegazione autonoma in sola lettura
?>
		  	<table class="direzione">
			  <tr>
			  	  <td colspan="5"><p style="font-weight:bold; text-align:center;">Accesso consentito con privilegi della <?php echo $delegazione; ?>.</p></td>
				  </tr>
				  <tr>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="delegazione" value="<?php echo $delegazione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_iscrizioni_collettive.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="delegazione" value="<?php echo $delegazione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Iscr. collettive</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_soci.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="delegazione" value="<?php echo $delegazione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci individuali</button>
			   </form></td>
	 	  	   <td><form method="post" name="avvio" action="lista_collettivi.php">
		  			 <input type="hidden" name="tipo" value="<?php echo $tipo; ?>" hidden="TRUE" />
		  			 <input type="hidden" name="delegazione" value="<?php echo $delegazione; ?>" hidden="TRUE" />
	 		   		 <button type="submit" />Soci collettivi</button>
			   </form></td>
<?php
    break;
   }
?>
<!-- Per tutti, l'ultima voce rinvia alla pagina di accesso iniziale. -->
			   <td>
	   		   <form method="post" name="avvio" action="../index.php?option=com_content&view=article&id=719&Itemid=898&lang=it">
	   	 			 <button type="submit" />Cambio accesso</button>
	   		   </form></td>
	  </tr>
  </table>
  </article>
  </body>
</html>

Al vostro buon cuore...
Ma io non mi arrendo!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho provato lo script accesso_direzionale.php, commentando i vari require perchè non ho i relatvi file e avuto una serie di errori di cui i primi tre

Warning: session_start() [function.session-start]: open(../iscrizione/tmp/\sess_f03bf775034e61c8d893974627fa5509, O_RDWR) failed: No such file or directory (2) in C:\AppServ\www\corso\0_protezione\000000.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\corso\0_protezione\000000.php:9) in C:\AppServ\www\corso\0_protezione\000000.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\corso\0_protezione\000000.php:9) in C:\AppServ\www\corso\0_protezione\000000.php on line 25

e una serie di altri dovuti probabilmente alla mancanza dei file requirati

commetati
PHP:
  //ini_set('session.save_path', '../iscrizione/tmp/');

  //session_name('ACCESSODIREZIONALE');
e spostato session start così

PHP:
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="it">
  <head>
    <meta charset="utf-8">
<!-- eccetera eccetera -->

i tre warning relativi alla session sono spariti
prova a salvarlo/caricarlo in questo modo
 

Fabrizio Fiorita

Utente Attivo
Ovvio che spariscano: ini_set fa riferimento ad un mio path che tu non hai, da qui l'errore. Se togli l'ini_set viene utilizzata la cartella standard.
Ho provato a mettere l'apertura di sessione dovunque, anche prima del DOCTYPE, ma senza esiti.
Resta il fatto che il tutto in locale funziona perfettamente, per cui ho smesso di cercare il problema nel codice e sto continuando ad analizzare il php.ini e l'htaccess per trovare qualche differenza fra il mio PHP e quello del server remoto.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
no non intendevo i warning all'ini_set.
i warning sono riferiti a session_start() che se messa in quel punto (riga 25) da errore in quanto viene dopo un otput html (almeno con la mia versione di php).
se messa prima il varning spariscono.
cioé:
prima prova da il varning alla 25
PHP:
<!DOCTYPE html>
<html lang="it">
  <head>
  <!-- ....  -->
<?php
error_reporting(E_ALL);  // Eliminare alla fine del debug
  //require_once('costanti.inc'); // contiene la funzione che stampa la testata di pagina quando necessaria
  //require_once('dbconnect.inc'); // contiene i valori per la connessione al database
  //require_once('userinfo.inc'); // contiene la classe UserInfo per i soli utenti di questa procedura di accesso
  //ini_set('session.save_path', '../iscrizione/tmp/');
/* Riapertura della sessione */
  //session_name('ACCESSODIREZIONALE');
  session_start(); /* questa è la riga 25*/
/* Recupero dei dati di sessione relativi all'utente.*/ 
//eccetera......
?>

seconda prova non da il varning
PHP:
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="it">
  <head>
  <!-- ....  -->
 <?php
error_reporting(E_ALL);  // Eliminare alla fine del debug
  //require_once('costanti.inc'); // contiene la funzione che stampa la testata di pagina quando necessaria
  //require_once('dbconnect.inc'); // contiene i valori per la connessione al database
  //require_once('userinfo.inc'); // contiene la classe UserInfo per i soli utenti di questa procedura di accesso
  //ini_set('session.save_path', '../iscrizione/tmp/');
/* Riapertura della sessione */
  //session_name('ACCESSODIREZIONALE');
  //session_start(); /* questa è la riga 25*/
/* Recupero dei dati di sessione relativi all'utente.*/ 
//eccetera......
?>
come vedi avevo commentato ini_set() e session_name() in entrambe le prove quindi l'errore non viene da quelle
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
una cosa che mi ero dimenticato:
nello switch per case 1,2 3 (ma non al 4) il mio editor (dream) mi da errore alle righe
<table style="width:1000px; border:black 5px ridge; color:blue; margin:auto; text-align:center;">
 
Ultima modifica:

Fabrizio Fiorita

Utente Attivo
Se metto session_start prima di DOCTYPE in locale mi dà errore quando va a leggere $_SESSION perché non ne trova il contenuto. In remoto non ci arriva proprio, si ferma prima.
Circa gli errori a table, intanto ho spostato la formattazione nel css, poi verifica quali versioni di HTML e CSS sono accettate dal tuo editor. Io uso CoffeeCup, che è aggiornatissimo a HTML5 e CSS3. I valori di stile che ho messo a table sono perfettamente corretti.
Adesso sto vedendo di fare sulla pagina di verifica uno switch basato sul nome-server: se è LOCALHOST faccio la procedura HEADER altrimenti passo per il form intermedio. Se va bene almeno riesco ad andare avanti con il debug, visto che i dati di SESSION mi servono in tutte le 22 pagine PHP che costituiscono il pacchetto di gestione del database.
 

Fabrizio Fiorita

Utente Attivo
Ho provato a mettere il SID in una voce hidden del form e a recuperarlo alla pagina successiva:funziona, ma solo nella prima pagina, poi i dati di sessione non vanno avanti sulle pagine successive. Quindi devo seguire qualche altra pista.
Fortunatamente ho memorizzato le due pagine standard, altrimenti, con tutti gli esperimenti che ho fatto, mi sarebbe difficile ripartire da zero.
Ho visto in rete che i problemi di SESSION ed HEADER sono piuttosto diffusi, e i suggerimenti per eliminarli sono i più disparati: adesso mi studio bene la situazione e poi vedremo.
Fortunatamente non avrò bisogno delle nuove procedure almeno fino all'anno prossimo, perché dovrà prima essere approvata la variante al Regolamento che impone la trattazione telematica e poi dovrà essere costituito l'organismo che ne sarà responsabile. Però anche dal punto di vista mio personale non sono disposto ad accettare una sconfitta!
 

Fabrizio Fiorita

Utente Attivo
Da "vecchio" analista programmatore non dovevo commettere un errore del genere, ma già... ogni tanto la "vecchiaia" fa brutti scherzi.
Però non se ne era accorto nessun altro, vero?
La pagina intermedia, che riceveva i dati dal form, li controllava e poi li passava alla pagina definitiva, era stata da me codificata come pagina HTML5, mentre doveva essere codificata esclusivamente come pagina PHP.
Tolto ogni richiamo HTML si è messo tutto a funzionare perfettamente.
L'unica cosa che ancora non mi è chiara è come mai in locale funzionasse ugualmente: probabilmente la versione più recente di PHP accetta l'inclusione di una pagina PHP in un contesto HTML. Però non ho nessuna voglia né intenzione di approfondirlo. Ho ancora molto lavoro da fare per completare il pacchetto e sicuramente avrò ancora qualcosa da chiedere.
Grazie a borgo italia ed alessandro1997, anche grazie a voi ho insistito nei tentativi e qualche vostro hint mi ha portato sulla strada giusta.
 
Discussioni simili
Autore Titolo Forum Risposte Data
G header , nav e flex HTML e CSS 3
A Logo si sovrappone all'header HTML e CSS 1
I $header HTML e CSS 0
J Header location PHP 3
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
M [PHP] header (location..) non funzionante dopo login PHP 3
M [HTML] Picture Tag non funziona in header-Element HTML e CSS 0
M [WordPress] Header responsive WordPress 5
M Header responsive Presentati al Forum 0
P [WordPress] header-post-title-class WordPress 7
R [HTML] sfondo header HTML e CSS 0
L [HTML] Flusso contenuti sotto la header HTML e CSS 9
Kolop [WordPress] [HTML] Problema header su mobile WordPress 4
W [XAMPP] File "header.php" non si vede su XAMPP PHP 0
giuseppe_123 [Magento] Creazione modulo statico sotto header Magento 0
G [PHP] Warning: Cannot modify header information - headers already sent by PHP 3
giancadeejay [PHP] Nome utente e Logout nell'header PHP 0
S [PHP] Non mi effettua header PHP 7
E [PHP] No 'Access-Control-Allow-Origin' header is present PHP 1
G php redirect header location pagina bianca PHP 0
gandalf1959 problema con header in area riservata PHP 4
alankanz Header(Location: mailto.... PHP 1
X Problema con header() include() e i siti di hosting PHP 1
enzonero problema immagini header WordPress 1
borgo italia header e meta non più funzionanti PHP 7
M Errore di header se metto include al posto delle istruzioni PHP 2
M Mettere un'immagine come header HTML e CSS 1
N Header fisso HTML e CSS 8
P header fisso HTML e CSS 3
K inserimento immagini tra header e pagine WordPress 4
L problema con la funzione header!!! AIUTO! PHP 24
P problema con header(Location....) PHP 11
F Effetto comparsa header Javascript 2
J Inserimento di un header, nav, footer php PHP 0
R Vertex Template (jommla2.5): cambiare colore dell'header Joomla 12
G [VENDO] Banner 125x125 Zona Alta Header - advhits.com (3000 Unici/Giorno) Vendere e Acquistare pubblicita' online 0
R banner in header wordpress WordPress 1
G html problema table scrollable con header fisso HTML e CSS 2
D Help per header in flash Flash 6
lara:) Header sito WordPress 2
S php problemi di funzione header usando la fuzione di jquery post PHP 4
blips Stampare header tabella in funzione di un campo db PHP 4
F Header location $_GET PHP 1
Emix Problema Header location... PHP 15
U distribuire elementi verticalmente tra header e footer HTML e CSS 7
N Header che scorre onclick... forse nulla di nuovo, ma... jQuery 6
H Warning: Cannot modify header information... PHP 6
F PrestaShop header.tpl CMS (Content Management System) 0
V Header PHP 6
A Errore con header ( Location...) PHP 4

Discussioni simili