Da una pagina php ad un'altra

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao a tutti!

Ho fatto una pagina .html con campi da compilare che mi riporta ad una pagina .php. In questa c'è una voce linkabile e vorrei che mi portasse ad un'altra pagina .php.

Cerco di spiegarmi meglio...:o Inserisco tutti i dati di una persona nella pagina html e all'invio mi riporta in una tabella tutti i dati da me inseriti.

Vorrei però fare, per avere più chiarezza quando hai più persone, una registrazione di lista persone con solo 1)Nome; 2)Cognome; 3)Data di nascita.

Quindi una pagina con tutti i dati dettagliati della persona (e qui lo fatta grazie all'aiuto di borgo italia :D ) e poi una pagina con nome, cognome e data di nascita (sempre della stessa persona ovviamente).

C'è un modo per farlo?

Grazie anticipatamente!!! :)

Ciao!!! :byebye:
 
Hai due possibilità:
1) ti raccogli i dati inviati dal primo form e li metti nel secondo sotto forma di campo hidden
2) metti tutti i dati raccolti col primo form in sessione in modo da averli sempre disponibili
 
Grazie Eliox per la risposta, puoi mica spiegarmi la via più semplice? che passi devo fare? ho le idee un pò confuse...:(:hammer:

Grazie in ogni caso!
 
ciao
puoi mica spiegarmi
forse non è eliox che non si è spiegato bene, ma tu che non si capisce molto quello che vuoi.
intendi questo?

pagina form inserisci
pinco
rossi
10/01/46
firenze
occhi verdi
capelli castani, ma pochi
barba fluente

al "invia" inserisci i dati nel db e vieni reindirizzato ad una

pagina elenco

pinco rossi 10/01/46
pallo verdi 31/02/99
sempronio bianchi 33/13/00
ecc......

cliccando su (es rossi) vai ad una pagina dettagli (di rossi) che ti presenta

pagina dettagli
nome: pinco
cognome: rossi
data nascita: 10/01/46
luogo nascita: firenze
colore occhi: occhi verdi
capelli: capelli castani, ma pochi
altro: barba fluente

o sbaglio?
 
Ciao!!! Bravissimo, hai le idee più chiare di me...è perfettamente questo che vorrei fare...:fonzie:
 
Ok Borgo, mi impegnerò al massimo, grazie moltissime!!! Tu però guidami eh? :D
Ciao!!!:beer:
 
ciao
eccoti lo schema
1. fatti la tabella (se non l'hai di gia) con il solito id auto_increment primary_key e tutti i campi che ti servono
e con le caratteristiche che ti servono
2. fai la pagina del form inserimento dati, fai attenzione a come
inserisci la data di nascita perchè
(secondo me) ti conviene poi trasformarla in time_stamp.
per la data io farei tre select una con gg(01-31)
una con mm(01-12) ed
una con aaaa(1000-3000 valuta un range che ti fa comodo),
poi la trasformerai
$nascita=$_POST['aaaa']."/".$_POST['mm']."/".$_POST['gg'];
*attento metti la verifica che non salti fuori 31 febbraio 19.. o simile
$nascita_time_stamp=strtotime ( $nascita);
3. pagina inserimento ed elenco, io farei una pagina unica es. vedi_iscritti.php e nel form di prima
darei action="vedi_iscritti.php"
la pagina si divide in due parti inserimento e vedi elenco

4. inserimento
PHP:
<?php
//qui i dati di connessione (prima dell'if perche ti servono anche in seguito)
//*************inserisce i dati**************************************************************
if(isset($_POST['submit']) && $_POST['submit']=="invia{
//si attiva solo se post OK
//qui all'interno tutti i controlli sui vari POST e l'inserimento

}//fine if inserimento
//**************fine inserisce i dati**************************************************
//**************visualizza elenco************************************************
//avendo messo l'if puoi accedere a questa pagina anche da un'altra che non sia il form
//fai la la select sulla tabella solo per i dati che vuoi visualizzare + l'id (importante id)
//es.
$query=mysql_query("SELECT id, nome, cognome, data FROM mia_tabella ORDER BY cognome");
//valuta l'order by che più ti aggrada
//ed inizi a visualizzare se ci sono dati
$esistono=mysql_num_rows($query);
if($esistono > 0){ //i dati esistono
echo "<table><tr><td>nome</td><td>cognome</td><td>data nascita</td><td>-------</td><tr>;//intestazione tabella
while($riga=mysql_fetch_array($query)){//inizio ciclo lettura record/campi
$id=$riga['id'];//id dell iscritto
$nome=$riga['nome'];//metti i vari controlli stripslashes.....
//eccetera....................................
//************************la riga sotto ti serve per il link
$link="<a href=\"pagina_dettagli.php?id=$id\" target=\"_blank\">dettagli</a>";
echo= "<tr><td>$nome</td><td>$cognome</td><td>$data_nascita</td><td>$link</td><tr>";
}//fine while
echo "</table>";
}else{//i dati non esistono
//messaggio e link di ritorno a dove vuoi
}//fine visualizza dati
?>

5 faccio la pagina_dettagli.php
PHP:
<?php
$id=(int)htmlspecialchars($_GET['id']);//leggo l'id proveniente dalla pgina vedi_iscritti.php e lo forzo ad intero

if(is_nan($id)){//verifico che sia un numero, vedi nota sotto
//faccio la solita query qui per tutti i dati
$query=mysql_query("SELEC * FROM mia_tabella WHERE id='$id'");
$riga=mysql_fetch_array($query);
//con tutti i controlli..........
$nome=$riga['nome'];
//..................................................
$data=(int)$riga['data'];
$data_nascita=date("d.m.Y",$data);//trasformo da time stamp a gg.mm.aaaa
//tutti gli altri dati
echo "<table>";
echo "<tr><td>nome: </td><td> $nome </td></tr>";
// tutte le altre caselle
echo "</table>";
}//fine dell if
?>
<!-- link di ritorno a dove vuoi -->
NOTA: con get è imprtante la verifica per impedire che qualcuno scriva nella riga di comando del bw

httt://www.mio_sito.it/pagina_dettagli.php?id= istruzione per cancellare tutto il db

prova al massimo non funzia

p.s.
fai attenzione a fare copia incolla dell script perche fatto in word, e quindi talvolta gli apici e virgolette vanno in pallino
 
Grazie Borgo!
Avevo fatto un form per inserimento clienti, mi posso basare su questo che ho già fatto dato che non è stato facile? se possibile...:(

PHP:
<?php  

// avvio la sessione 
session_start(); 

// Dati connessione al database 
$db_host = 'localhost';        // Host - solitamente localhost 
$db_utente = 'root';        // Nome utente del Database 
$db_password = '';        // Password del Database 
$db_nomedb = '';     // Nome del Database 

// Effettua la connessione al database 
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error()); 
mysql_select_db($db_nomedb); 



//inserimento dei nuovi dati  
$query="INSERT INTO elenco_clienti (    
cognome,  
nome,  
sesso,  
data_di_nascita,  
citta_di_nascita, 
residenza, 
stato_civile, 
figli, 
telefono_abitazione, 
telefono_cellulare, 
utente_da_contattare, 
telefono_abitazione2, 
telefono_cellulare2,
istruzione,
professione,
religione,
data_registrazione)  
VALUES('" .   
addslashes ( $_POST['cognome'] ) . "', '" .   
addslashes ( $_POST['nome'] ) . "', '" .      
addslashes ( $_POST['sesso'] ) . "', '" .     
addslashes ( $_POST['data_di_nascita'] ) . "', '" .  
addslashes ( $_POST['citta_di_nascita'] ) . "', '" .  
addslashes ( $_POST['residenza'] ) . "', '" .  
addslashes ( $_POST['stato_civile'] ) . "', '" .  
addslashes ( $_POST['figli'] ) . "', '" .    
addslashes ( $_POST['telefono_abitazione'] ) . "', '" .      
addslashes ( $_POST['telefono_cellulare'] ) . "', '" . 
addslashes ( $_POST['utente_da_contattare'] ) . "', '" .   
addslashes ( $_POST['telefono_abitazione2'] ) . "', '" .      
addslashes ( $_POST['telefono_cellulare2'] ) . "', '" .     
addslashes ( $_POST['istruzione'] ) . "', '" .  
addslashes ( $_POST['professione'] ) . "', '" .  
addslashes ( $_POST['religione'] ) . "', '" .  
time() . "')";  


$risultato =  mysql_query( $query ) or die ( "query '$query' fallita::::" . mysql_error() );  

//prendo i parametri e li mostro per ordine di data registrazione  

$query=mysql_query("SELECT id, nome, cognome, data FROM elenco_clienti ORDER BY cognome"); 


$query = "SELECT * FROM elenco_clienti ORDER BY data_registrazione";  
$risultato = mysql_query( $query ) or die ( "Query '$query' fallita:::::" . mysql_error() );  

while ( $elenco_clienti = mysql_fetch_array( $risultato ) )  

{  




echo "<table> 


<head>
<style>
table { 
border: solid 2px #000000; 
text-align: center; 
} 
td { 
solid 1px #000000; 
color: Black; 
background: #F1EBAD; 
}
</style> 
</head>


           <tr> 

           <td><a href=\"http://www.tuosito.it\">COGNOME " . stripslashes($elenco_clienti['cognome']) . "</a></td></tr>
                <td><a href=\"http://www.tuosito.it\">NOME " . stripslashes($elenco_clienti['nome']) . "</a></td></tr> 
                <td><b>SESSO:</b>  " . stripslashes($elenco_clienti['sesso']) . "</td></tr> 
                <td><b>DATA DI NASCITA:</b>  " . stripslashes($elenco_clienti['data_di_nascita']) . "</td></tr> 
                <td><b>CITTA' DI NASCITA:</b>  " . stripslashes($elenco_clienti['citta_di_nascita']) . "</td></tr> 
                <td><b>RESIDENZA:</b>  " . stripslashes($elenco_clienti['residenza']) . "</td></tr>
                <td><b>STATO CIVILE:</b>  " . stripslashes($elenco_clienti['stato_civile']) . "</td></tr> 
                <td><b>FIGLI:</b>  " . stripslashes($elenco_clienti['figli']) . "</td></tr> 
                <td><b>TELEFONO ABITAZIONE:</b>  " . stripslashes($elenco_clienti['telefono_abitazione']) . "</td></tr> 
                <td><b>TELEFONO CELLULARE:</b>  " . stripslashes($elenco_clienti['telefono_cellulare']) . "</td></tr> 
                <td><b>UTENTE DA CONTATTARE:</b>  " . stripslashes($elenco_clienti['utente_da_contattare']) . "</td></tr> 
                <td><b>TELEFONO ABITAZIONE:</b>  " . stripslashes($elenco_clienti['telefono_abitazione2']) . "</td></tr> 
                <td><b>TELEFONO CELLULARE:</b>  " . stripslashes($elenco_clienti['telefono_cellulare2']) . "</td></tr> 
                <td><b>ISTRUZIONE:</b>  " . stripslashes($elenco_clienti['istruzione']) . "</td></tr> 
                <td><b>PROFESSIONE:</b>  " . stripslashes($elenco_clienti['professione']) . "</td></tr> 
                <td><b>RELIGIONE:</b>  " . stripslashes($elenco_clienti['religione']) . "</td></tr> 
                
             </table><br />";


   echo "<table>
       <td>accettato il " . date( "d/m/Y", $elenco_clienti['data_registrazione'] ) .
       "alle " . date( "H:i" , $elenco_clienti['data_registrazione'] ) . "</td></tr>  
        </tr> 
           </table><br />"; 


} 

?>

Questo mi funziona...posso procedere lo stesso?

Praticamente ho un grossa TABELLA con scritto INSERIMENTO CLIENTE dove clicco e compilo il form e mi manda a pagina.php con tutti i dati che ho messo e poi sempre nella grossa TABELLA ho ELENCO CLIENTI dove mi piacerebbe mi comparisse solo nome, cognome e data di nascita.
Posso provare lo stesso a fare con il post precedente? iscritti.php

Grazie!!! :fonzie:
 
ciao
prima di procedere
1. porta fuori dal while
<head>
<style>
table {
border: solid 2px #000000;
text-align: center;
}
td {
solid 1px #000000;
color: Black;
background: #F1EBAD;
}
</style>
</head>
per ogni record stampi innumerevoli volte la stessa cosa
lo puoi mettere subito dopo sessino start

2. tutti i cognomi e nomi cliccati portano sempre allo stesso sito.
se volevi che ad ogni cognome/nome corrispondesse un sito devi renderlo dinamico aggiungendo un campo al record (es. sito) e una casella di input al form

3. dato che è un elenco perche per ogni nome fai una tabella?
4. verifica apertura <tr> e sua chiusura </tr>, ci sono un po' troppe chiusure ed una apertura sola
 
Grazie borgo per le dritte, accidenti in questo periodo trovare il tempo di stare al pc è difficile...speriamo di averne al più presto...ho fatto adesso una prova con gli occhi chiusi prima di andare a letto.
Utilizzando quindi l'elenco clienti che ho fatto, ho messo questo codice

PHP:
<?php 

// avvio la sessione 
session_start(); 


// Dati connessione al database 
$db_host = 'localhost';        // Host - solitamente localhost 
$db_utente = 'root';        // Nome utente del Database 
$db_password = '';        // Password del Database 
$db_nomedb = '';     // Nome del Database 

// Effettua la connessione al database 
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error()); 
mysql_select_db($db_nomedb); 


$id=(int)htmlspecialchars($_GET['id']);//leggo l'id proveniente dalla pagina vedi_iscritti.php e lo forzo ad intero 

if(is_nan($id)){//verifico che sia un numero, vedi nota sotto 
//faccio la solita query qui per tutti i dati 
$query=mysql_query("SELEC * FROM elenco_clienti WHERE id='$id'"); 
$riga=mysql_fetch_array($query); 
//con tutti i controlli.......... 
$nome=$riga['nome']; 
//.................................................. 
$data=(int)$riga['data']; 
$data_nascita=date("d.m.Y",$data);//trasformo da time stamp a gg.mm.aaaa 
//tutti gli altri dati 
echo "<table>"; 
echo "<tr><td>nome: </td><td> $nome </td></tr>"; 
// tutte le altre caselle 
echo "</table>"; 
}//fine dell if 
?>

Mi dice: Notice: Undefined index: id in c:\programmi\easyphp1-8\www\ccc.php on line 18

In che senso non ho la variabile id definita? come dovrei definirla?

Ho fatto la tabella nel database sull'elenco clienti (quella minuziosa) e mi funziona, ma ne devo fare mica un'altra anche per l'elenco clienti dove vorrei solo il nome cognome e data di nascita?

Grazie!!!
Notte!
 
ciao
la riga 18 è if(is_nan($id)){?
no non devi fare una seconda tabella, ma selezionare solo quello che ti serve

es.
SELECT nome, cognome, data_nascita FROM .....
 
Grazie borgo! Sai mica dove posso andarmi a studiare la funzione "if(is_nan($id))"? o dove posso trovare un link? perchè a dire il vero non la conosco...
Grazie di nuovo! :fonzie:
 
credo di si, se non mi ricordo male le differenze sono
$a="a"; //non è un numero
is_nan($a);//ritorna TRUE
is_numeric($a);//ritorna FALSE
$a=1;//è un numero
is_nan($a);//ritorna FALSE
is_numeric($a);//ritorna TRUE
$a="1";//non è un numero, ma una stringa (numerica)
is_nan($a);//ritorna TRUE
is_numeric($a);//ritorna TRUE
quindi la decisione dipende dal contesto in cui vuoi usare le due funzioni

dimenticavo
sui link che ti ho segnalato traovi tuttle ledelicidazioni su is_nan e is_numeric
 
Ultima modifica:
Ciao! Brutte notizie, penso di aver trovato la giusta sintassi per la funzione is_nan ma...ti posto codice ed errori :hammer:

PHP:
<?php 

// avvio la sessione 
session_start(); 


// Dati connessione al database 
$db_host = 'localhost';        // Host - solitamente localhost 
$db_utente = 'root';        // Nome utente del Database 
$db_password = '';        // Password del Database 
$db_nomedb = '';     // Nome del Database 

// Effettua la connessione al database 
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error()); 
mysql_select_db($db_nomedb); 


$id=(int)htmlspecialchars($_GET['id']);//leggo l'id proveniente dalla pagina vedi_iscritti.php e lo forzo ad intero 


$a = "1-2-3-4-5-6-7-8-9-0";
$b = "a";
 
if ( is_nan($a) ) echo "Non è un numero <br />";
else echo "E' un numero <br />";
 
if ( is_nan($b) ) echo "Non è un numero <br />";
else echo "E' un numero <br />";  


$query=mysql_query("SELEC * FROM elenco_clienti WHERE id='$id'");  
$riga=mysql_fetch_array($query);  
//con tutti i controlli..........  
$nome=$riga['nome'];  
//..................................................  
$data=(int)$riga['data'];  
$data_nascita=date("d.m.Y",$data);//trasformo da time stamp a gg.mm.aaaa  
//tutti gli altri dati  
echo "<table>";  
echo "<tr><td>nome: </td><td> $nome </td></tr>";  
// tutte le altre caselle  
echo "</table>"; 
?>

Notice: Undefined index: id in c:\programmi\easyphp1-8\www\ccc.php on line 18

Warning: is_nan() expects parameter 1 to be double, string given in c:\programmi\easyphp1-8\www\ccc.php on line 24
E' un numero

Warning: is_nan() expects parameter 1 to be double, string given in c:\programmi\easyphp1-8\www\ccc.php on line 27
E' un numero

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\ccc.php on line 32
nome:

Le righe incriminate sono:

$id=(int)htmlspecialchars($_GET['id']);

if ( is_nan($a) ) echo "Non è un numero <br />";

if ( is_nan($b) ) echo "Non è un numero <br />";

$riga=mysql_fetch_array($query);

Grazie!
 

Discussioni simili