Errore nel passare più valori tra pagine php

Lore

Nuovo Utente
4 Giu 2014
7
0
0
Ciao a tutti, ho una pagina al cui interno si trova uno script javascript che invia il contenuto di 4 variabili ad una pagina PHP, che a sua volta li dovrebbe prendere tramite il metodo GET e stamparli tramite un semplice echo.

Lo script Javascript è il seguente:

HTML:
function save() 
{ 
 var nome="Mario";
 var cognome="Rossi";
 var residenza="Torino";
 var provincia="TO";
 window.location.href = "http://localhost/php/importa.php?nome=" + nome + "&cognome=" + cognome + "&residenza=" + residenza + "&provincia=" + provincia;
}

mentre lo script contenuto nella pagina PHP è:

HTML:
<?php
 $nome=$_GET['nome']
 $cognome=$_GET['cognome'];
 $residenza=$_GET['residenza'];
 $provincia=$_GET['provincia'];
	
 echo $nome;
 echo $cognome;
 echo $residenza;
 echo $provincia;
?>

Il fatto è che la pagina PHP stampa solo la variabile $nome, mentre per le altre 3 ritorna l'errore "Notice: Undefined index".
Sono certo che il contenuto di tutte le variabili venga passato dato che l'url della pagina PHP è
http://localhost/php/importa.php?nome=Mario&cognome=rossi&residenza=Torino&provincia=TO

Cosa posso fare? Grazie a tutti!
 
Ciao grazie per la risposta, ho fatto un errore durante il copia-incolla, il codice che mi dà quell'errore ha il punto e virgola.
 
con il punto e virgola funziona, l'errore non è nel codice che hai postato
ho provato cosi
PHP:
<?php

if (isset($_GET['nome'])) {
    $nome = $_GET['nome'];
    $cognome = $_GET['cognome'];
    $residenza = $_GET['residenza'];
    $provincia = $_GET['provincia'];

    echo $nome;
    echo $cognome;
    echo $residenza;
    echo $provincia;
} else {
    ?>
    <script type="text/javascript">
      
        var nome="Mario";
        var cognome="Rossi";
        var residenza="Torino";
        var provincia="TO";
        window.location.href = "importa.php?nome=" + nome + "&cognome=" + cognome + "&residenza=" + residenza + "&provincia=" + provincia;
        
    </script>
    <?php

}
 
Ciao, grazie per la risposta. Ho provato a fare come mi hai detto, ma niente, non funziona :(

L'errore che ritorna la pagina PHP è

Notice: Undefined index: cognome in C:\xampp\htdocs\php\importa.php on line 43
Notice: Undefined index: residenza in C:\xampp\htdocs\php\importa.php on line 44
Notice: Undefined index: provincia in C:\xampp\htdocs\php\importa.php on line 45

Googlando l'errore riportato sopra, ho trovato molte guide che propongono la tua soluzione, ma anche quelle non mi sono state di aiuto

considera anche che lo script javascript si trova su C:\xampp\htdocs\javascript, mentre quello php su C:\xampp\htdocs\php.

C'è qualcos'altro che posso fare?
 
Anzi, seguendo il tuo suggerimento, la pagina ritorna "notice: undefined variable". Ho quindi provveduto a inizializzare le 4 variabili ($nome=""; $cognome=""; $residenza=""; $provincia="";) ma lo script appunto non stampa niente (ad eccezzione di $nome) perchè il valore delle variabili è vuoto (se io inizializzassi $cognome come $cognome="Rossi"; lo script stamperebbe Rossi.)
 
Hai provato solo il codice che ti ho postato ?
perchè glie errori che hai postato sono alle linee 43 44 e 45
posta la stringa che ti appare sulla barra degli indirizzi
 
La stringa che appare sulla barra degli indirizzi è la seguente:
http://localhost/php/importa.php?nome=Mario&cognome=Rossi&residenza=Torino&provincia=To

Lo script javascript si trova su http://localhost/javascript/index.html, e la cosa che non riesco a spiegarmi, è che se lo script lo inserisco all'interno di una qualsiasi pagina dentro la cartella http://localhost/php/, tutto funziona perfettamente (dato che il javascript fa una redirect su una pagina contenuta appunto in http://localhost/php/), mentre (come in questo caso) se lo script lo inserisco in un una cartella esterna ad http://localhost/php/, funziona solo parzialmente, stampa cioè, solo il valore della prima variabile inviata.
 
la stringa che hai postato non è corretta
?nome=Mario&cognome=Rossi&residenza=Torino&provincia=To
dovrebbe essere cosi
Codice:
?nome=Mario&cognome=Rossi&residenza=Torino&provincia=To
controlla meglio come la crei
 
Anch'io penso che sia un problema legato alla stringa, la quale creo usando

HTML:
nome="+nome+"&cognome="+cognome+"&residenza="+residenza+"&provincia="+ provincia

Lo script completo (che contiene le variabili da inviare e il comando per inviarle) è il seguente.

HTML:
var nome="Mario";
var cognome="Rossi";
var residenza="Torino";
var provincia="TO";
window.location.href = "http://localhost/php/importa.php?nome=" + nome + "&cognome=" + cognome + "&residenza=" + residenza + "&provincia=" + provincia;

Al fine di capire come inviare variabili tra pagine, ho seguito questa guida: http://www.claudiogarau.it/php/passaggio-di-variabili-tra-javascript-e-php.php
 
Ok ho finalmente risolto! Il fatto è che il javascript è contenuto all'interno di un post di WordPress, che di default converte gli '&' in "&#038". Ho quindi modificato il file formatting.php che si trova nella cartella wp-includes.

Sai per caso se esiste un codice php per far si che la pagina che riceve i valori converta in automatico gli "&#038" in '&', magari modificando il set di caratteri?

Grazie.
 

Discussioni simili