Passare il valore di una variabile da uno script php ad un altro

Buongiorno...

premetto che è poco che mi cimento con php, quindi abbiate pietà, mi scuso se non riuscirò ad essere abbastanza chiaro ma ci proverò.

Per un uso molto personale ho realizzato un database di mysql dove poter registrare i propri dati.

Successivamente ho realizzato un form html dove l'utente inserisce i dati richiesti per effettuare la registrazione con l'aggiunta di un pulsante "invia" che manda i dati al database, effettua vari controlli e registra l'utente nel database. Fino a qui nulla questio.

Lo stesso utente, però, deve avere la possibilità di modificare i dati precedentemente inseriti, quindi ho realizzato un piccolo script di php che, effettuando il login, permette all'utente di recuperare in un form i dati di registrazione.

Una volta recuperati i dati ed effettuate le modifiche che l'utente ritiene necessarie, tipo cambiare indirizzo, devo reinviare quanto scritto nelle varie input e memorizzarle nel database e qui nasce il problema.

Non riesco a far leggere allo script cosa c'è scritto nelle input, o le vede vuote oppure visualizza quello che recupera dal database senza leggere le eventuali modifiche.

Sotto aggiungo il codice utilizzato per visualizzare i dati di registrazione:

<html>
<title>Modifica dai dati</title>
<p align="center"><font size="5" font color="blue">Modifica dei dati di registrazione</font></p>
<?php
$connessione = mysql_connect('localhost', 'root', 'testpass') or die ("Connessione non riuscita");
mysql_select_db('clienti', $connessione);
$userid = $_POST['userid'];
$password = $_POST['password'];
$conn = mysql_query("SELECT * FROM anagrafica WHERE email = '$userid' AND password = '$password'");
$risultati = mysql_fetch_array($conn);

   $cognome = ($risultati['cognome']);
   $nome = ($risultati['nome']);
   $indirizzo = ($risultati['indirizzo']);
   $civico = ($risultati['civico']);
   $cap = ($risultati['cap']);
   $citta = ($risultati['citta']);
   $prov = ($risultati['prov']);
   $email = ($risultati['email']);
   $telefono = ($risultati['telefono']);
   $password = ($risultati['password']);

?>

<form id="form1 name="form1 method="post" action="visualizza.php">   
      Cognome:<br>
      <input name="cognome" type="text" id="cognome" value="<?php echo $risultati['cognome']; ?>" />
      <br>
      Nome:<br>
      <input name="nome" type="text" id="nome" value="<?php echo $risultati['nome']; ?>" />
      <br>
      Indirizzo:<br>
      <input name="indirizzo" type="text" id="indirizzo" value="<?php echo $risultati['indirizzo']; ?>" />
      <br>
      Numero Civico:<br>
      <input name="civico" type="text" id="civico" value="<?php echo $risultati['civico']; ?>" />
      <br>
      C.A.P.:<br>
      <input name="cap" type="text" id="cap" value="<?php echo $risultati['cap']; ?>" />
      <br>
      Città:<br>
      <input name="citta" type="text" id="citta" value="<?php echo $risultati['citta']; ?>" />
      <br>
      Prov.:<br>
      <input name="prov" type="text" id="prov" value="<?php echo $risultati['prov']; ?>" />
      <br>
      E-mail:<br>
      <input name="email" type="text" id="email" value="<?php echo $risultati['email']; ?>" />
      <br>
      Telefono:<br>
      <input name="telefono" type="text" id="telefono" value="<?php echo $risultati['telefono']; ?>" />
      <br>
      Password:<br>
      <input name="password" type="text" id="password" value="<?php echo $risultati['password']; ?>" />
</p>
</form>

Come dicevo prima quello che non riesco a fare è far leggere a un nuovo script di php il contenuto delle varie form, cognome...nome etc etc, e memorizzarle nel database.

Qualcuno è in grado di darmi qualche lume?

Ringrazio anticipatamente.

P.S. il passaggio col metodo POST che ho tentato non funziona perchè non riesco a far leggere la variabile.

inviato 5 anni fa
mindhunter
modificato 5 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

L'altro script è per caso la pagina visualizza.php o è un'altro script proprio?

Prova a scrivere var_dump($_POST, $_GET); nello script che dovrebbe ricevere i dati, per vedere se a monte l'array $_POST viene valorizzato con i dati del form, come ti aspetti, e incolla qui sul forum il testo che ti stampa var_dump.

Dai anche una lettura veloce al capitolo sui Form e l'array $_POST del corso base di PHP di Gianni per vedere se ti sei fatto sfuggire niente o se il problema dipende da qualche lacuna.

:bye:

- Tom.

risposto 5 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ciao Tom...innanzitutto grazie per la cortese risposta...

Lo script a cui deve passare i dati è un altro, nella circostanza visulizza1.php

Ora ti incollo qui quello che stampa il var_dump...

array(1) { ["cognome"]=> string(5) "ROSSI" } array(0) { }

che di per se è giusto, nel senso che il valore di cognome registrato sul database è proprio ROSSI, il problema sorge quando l'utente deve modificare il valore di cognome, per esempio, perchè magari si è sbagliato e correggerlo per esempio in BIANCHI, a quel punto lo script visualizza.php non prende il nuovo valore che ha nella input cognome ma trasmette sempre a visualizza1.php il valore originale ossia ROSSI.

Dove sbaglio?

Grazie...

risposto 5 anni fa
mindhunter
X 0 X

Attenzione perché l'attributo action del form da cui provengono i dati dovrebbe avere "visualizza1.php" come valore, non "visualizza.php", cioè se deve esserci l'URL dello script che ha bisogno dell'input dei dati provenienti dal form.

Che differenza c'è tra "visualizza.php" e "visualizza1.php"?

- Tom.

risposto 5 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Buongiorno Tom...

In questa frazione di codice <form id="form1 name="form1 method="post" action="visualizza.php">, che hai potuto leggere nel primo post, l'action è appunto visualizza.php e serve per visualizzare in delle form una serie di dati anagrafici che l'utente ha inserito al momento della registrazione e renderli editabili per poter apportare delle modifiche. L'action visualizza1.php è uno script che dovrebbe mostare tutti i dati che compaiono nelle form di visualizza.php comprese eventuali modifiche apportate, invere riesco a mostrare a video solo i valori originali e non eventuali modifiche che faccio sui campi.

Spero davvero di essere riuscito a spiegarmi...scusami

Grazie ancora Tom e non ti nascondo che aspetto un'illuminazione  :)

risposto 5 anni fa
mindhunter
X 0 X

RISOLTO!!!! Grazie TOM!!!

Se poi serve a qualcuno posto il codice e spiego.

risposto 5 anni fa
mindhunter
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda