Non vorrei tediarvi postando un' infinità di codice, provo a riassumerlo sperando di non tralasciare proprio quello che provoca il problema.
Innanzitutto siamo in un' area riservata e quindi in cima alla pagina c'è il codice che fa partire la sessione
Codice PHP:
<?php
session_start();
//se non c'è la sessione registrata
if (!session_is_registered('autorizzato')) {
echo "<h1>Area riservata, accesso negato.</h1>";
echo "Per effettuare il login clicca [url='login.php']<font color='blue'>qui</font>[/url]";
die;
}
//Altrimenti Prelevo il codice identificatico dell'utente loggato
session_start();
$cod = $_SESSION['cod']; //id cod recuperato nel file di verifica
?>
<?php
header('Content-type: text/html; charset=utf-8');
?>
Poi inizia la pagina HTML con del codice javascript nella HEAD e poi il corpo della pagina con:
Codice PHP:
if($_POST) {
inserisci_record();
}
else {
mostra_form();
}
quindi la funzione mostra form fa vedere il form ma inizia con queste righe che dovrebbero permettere di visualizzare il messaggio passato via GET:
Codice PHP:
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '[b]'.htmlentities($_GET['msg']).'[/b]
';
e la funzione inserisci record che posto tutta e che fino all' header(Location : funziona egregiamente
Codice PHP:
function inserisci_record()
{
// richiamo il file di configurazione
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connessione_db.php';
// scelgo il database dopo la connessione
mysql_select_db("$dbnome") or die(mysql_error());
// recupero i campi di tipo "stringa"
$regione = trim($_POST['region']);
$provincia = trim($_POST['province']);
$comune = trim($_POST['city']);
$istituto = trim($_POST['istituto']);
$indirizzo = trim($_POST['indirizzo']);
$email = trim($_POST['email']);
$referente = trim($_POST['referente']);
// verifico se devo eliminare gli slash inseriti automaticamente da PHP
if(get_magic_quotes_gpc())
{
$regione = stripslashes($regione);
$provincia = stripslashes($provincia);
$comune = stripslashes($comune);
$istituto = stripslashes($istituto);
$indirizzo = stripslashes($indirizzo);
$email = stripslashes($email);
$referente = stripslashes($referente);
}
$regione = mysql_real_escape_string($regione);
$provincia = mysql_real_escape_string($provincia);
$comune = mysql_real_escape_string($comune);
$istituto = mysql_real_escape_string($istituto);
$indirizzo = mysql_real_escape_string($indirizzo);
$email = mysql_real_escape_string($email);
$referente = mysql_real_escape_string($referente);
// recupero gli altri campi del form
$tipo = intval($_POST['tipo']);
$studenti = intval($_POST['studenti']);
$pacchetto = intval($_POST['pacchetto']);
$stampa = intval($_POST['stampa']);
$telefono = $_POST['telefono'];
// genero la chiave scuola univoca
mt_srand((double)microtime() * 1000000);
$geo = $regione.'-'.$provincia.'-'.$comune;
$t = $tipo;
$nomesc = substr($istituto, -5, 3);
$nomesc = strtoupper($nomesc);
$nomesc = str_replace(" ", "", $nomesc);
$number = mt_rand(111111, 999999);
$codesc = $geo.'-'.$t.'-'.$number.'-'.$nomesc;
// verifico la presenza dei campi obbligatori
if((!$regione)||(!$provincia)||(!$comune)||(!$istituto)||(!$indirizzo)||(!$email))
{
$messaggio = urlencode("Non hai completato tutti i campi");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}
// preparo la query
$query = "INSERT INTO scuole (ID,regione,provincia,comune,istituto,tipo,indirizzo,telefono,email,referente,studenti,data,pacchetto,stampa,chiave_scuola,pdf_url,invio) VALUES ('','$regione','$provincia','$comune','$istituto','$tipo','$indirizzo','$telefono','$email','$referente','$studenti',NOW(),'$pacchetto','$stampa','$codesc','','0')";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// recupero l'id autoincrement generato da MySQL per il nuovorecord inserito
$id_inserito = mysql_insert_id();
// chiudo la connessione a MySQL
mysql_close();
$messaggio = urlencode("Inserimento effettuato con successo (Istituto $istituto)");
$url = "http://www.miosito.it/directory/directory/directory/".$_SERVER['PHP_SELF']."?msg=$messaggio";
header("Location: " .$url);
}
dimenticavo: il form ha la seguente action
codice:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
quindi il form rimanda alla pagina che lo contiene e siccome esiste l'array $_POST viene eseguita la funzione inserisci_record() che arrivata a chiudere la connessione con il database dovrebbe visualizzare un messaggio di conferma...
Lo so che è domenica d'agosto, ma lunedì devo consegnare questo coso che in locale mi funziona benissimo... E' una questione di register_global
ff che invece in locale sono on?
grazie a tutti