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

    Ennesimo header(Location :" ");

    credo che tra tutte questa è il comando PHP che da più problemi in assoluto:

    Possibile che in locale funzioni ed in remoto invece non funziona mai?

    ho provato con

    Codice PHP:
    $messaggio urlencode("Inserimento effettuato con successo (Istituto $istituto)");
        
    $url $_SERVER['PHP_SELF']. "?msg=$messaggio";
        
    header("Location: " .$url); 
    e niente, ho provato con
    Codice PHP:
    $messaggio urlencode("Inserimento effettuato con successo (Istituto $istituto)");
    header("Location: " .$_SERVER['PHP_SELF']. "?msg=$messaggio"); 
    e niente, ho provato con
    Codice PHP:
    $messaggio urlencode("Inserimento effettuato con successo (Istituto $istituto)");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); 
    con il doppio apice finale, con le virgolette e gli apici, con il nome della pagina invece si $_SERVER['PHP_SELF'] ed in altre centinaia di modi....

    IN TUTTI I CASI rimanda alla pagina SENZA $msg e quindi non posso visualizzarlo (tutto quello che deve fare lo fa eh intendiamoci, prima di header inserisce dati nel database ecc.)

    Come è possibile? non vi posto il codice perchè infinito, qualcuno mi aiuti vi prego!
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova con
    Codice PHP:
    $url "http://www.sito.it/".$_SERVER['PHP_SELF']."?msg=$messaggio"

  3. #3
    Macchè... non funziona ridà la pagina senza la variabile, anche nella riga del browser...

    ma com' è possibile?
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se scrivi
    Codice PHP:
    <?php
    $url 
    "http://www.sito.it/".$_SERVER['PHP_SELF']."?msg=$messaggio"
    ?>
    [url='<?php echo $url ?>']link[/url]
    Il link risulta giusto?

  5. #5
    Il fatto che non ti funzioni è strano.

    Dal codice postato non è possibile risalire all'errore che dipende da altro.

    La butto lì... non è che c'è un redirect precedente a questo o stampi a video qualcosa prima del comando header?

    Posta tutto il codice php che gli si dà uno sguardo veloce.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  6. #6
    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, -53);
        
    $nomesc strtoupper($nomesc);
        
    $nomesc str_replace(" """$nomesc);
        
    $number mt_rand(111111999999);
        
    $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_globalff che invece in locale sono on?
    grazie a tutti
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  7. #7
    diciamo che l'header che si posta dietro una variabile non è per nulla corretto... basta un echo come condizione else dell' invio della query...

    La chiamata alla pagina da parte del form è già un reindirizzamento e quindi il successivo non si può fare.

    Chissà perchè in locale funziona.

    Grazie lo stesso per gli aiuti ed il supporto, fa sempre piacere trovare qualcuno che si interessa anche ad agosto.
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.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.