Passaggio di variabili da una pagina all'altra

  • Creatore Discussione Creatore Discussione temino
  • Data di inizio Data di inizio

temino

Utente Attivo
22 Gen 2011
47
0
0
Salve a tutti..
Sto realizzando un sito web in php che permette di visualizzare degli sms online.

ho creato la pagina di login, la pagina d visualizzazione in forma tabellare degli sms ecc..

Il problema che ho in questo momento è il seguente:

Nella pagina "centro_sms.php" visualizzo in forma tabellare la lista degli sms con mittente, data , ora e messaggio (troncato al 40esimo carattere).

Se volessi fare in modo che cliccando su una riga della tabella mi venga caricata una nuova pagina (messaggio.php) nella quale visualizzare solo il messaggio il cui ho cliccato (in modo esteso) come posso fare?
Pensavo di passare dei dati che mi indicassero il numero del messaggio in variabili, e di richiamarle in messaggio.php, in modo da fare poi una nuova lettura del database per prelevare i dati,ma nonostante numerosi tentativi non ne sono venuto a capo.

Mi date una mano?
 
non sono sicurissimo

meglio attendere altre risposte meglio dettagliate ma ti conviene credo fare un ciclo cosi almeno assegni una variabile ad ogni messaggio e a quel punto passi a una pagina qualsiasi la variabile in post con la querystring e visualizzi quel determinato sms cliccato.
 
e come si fa a passarla in post? il mio problema è questo.. c ho provato molte volte, ma nnt da fare.. posto il codice
PHP:
<html>
	<body>
	
	<?php 
		//CANCELLAZIONE DATABASE
		$host="localhost"; 
		$username="root";
		$password="";
		$database="mysql";
		$table="messaggi";

		$connection = mysql_connect("$host", "$username", "$password") or die ("Unable to connect to server");
		mysql_select_db("$database") or die ("Unable to select database");
		$sql = "TRUNCATE TABLE `$table`";
		mysql_query($sql);

	
		//CARICAMENTO DATI NEL DATABASE
		$a = 'DataCard.txt';
		$myhost = 'localhost';
		$myuser = 'root';$mypass = '';
		$mydb = 'mysql';
		$connessione = mysql_connect($myhost,$myuser,$mypass) or die("Connessione
		non riuscita: " . mysql_error());

		mysql_select_db($mydb) or die("Selezione del database non riuscita");

		$fp = fopen($a,"r");
		if(!$fp){ die("impossibile leggere il file"); }
		while($riga = fgets($fp,1024))		
		{
			
			$separatore=";";
			$suddivisa=explode($separatore, $riga);
			
			$query="SELECT nome FROM rubrica WHERE numero = $suddivisa[0]";
			$risultato = mysql_query($query); 
			$num = mysql_num_rows ($risultato); 
			if($num != '0'){ 
				$suddivisa[0]=mysql_result($risultato,"nome");	
				$query = "INSERT INTO messaggi VALUES('$suddivisa[0]','$suddivisa[1]','$suddivisa[2]','$suddivisa[3]')";
				$result = mysql_query($query) or die("Query fallita: " . mysql_error() );	
			}
			else{ 
				$query = "INSERT INTO messaggi VALUES('$suddivisa[0]','$suddivisa[1]','$suddivisa[2]','$suddivisa[3]')";
				$result = mysql_query($query) or die("Query fallita: " . mysql_error() );
			}						
		}
		mysql_close($connection);
		fclose($fp);
		
		
		
		if ($visualizza=false) {
		echo "ok";
		}
		
		//VISUALIZZO I MESSAGGI
		$username="root";
		$password="";
		$database="mysql";
		$host="localhost";
		mysql_connect($host,$username,$password);
		@mysql_select_db($database) or die("Impossibile selezionare il database.");
		$query="SELECT * FROM messaggi ORDER BY mittente";
		$risultati=mysql_query($query);
		 
		$num=mysql_numrows($risultati);		 
		mysql_close();
		 
		echo "<b><center>Centro sms/ <a href='rubrica.php'>Rubrica Dispositivi</a></center> </b><br><br>";
		echo "<center><table border=3 bordercolor=black cellpadding=7>";
		echo "<tr><td>MITTENTE</td><td>DATA</td><td>ORA</td><td>MESSAGGIO</td>";
		$i=0;
		while ($i < $num) {			 
			$mittente=mysql_result($risultati,$i,"mittente");
			$data=mysql_result($risultati,$i,"data");
			$ora=mysql_result($risultati,$i,"ora");
			$messaggio=mysql_result($risultati,$i,"messaggio");			
			echo "<tr>";
			echo "<td> $mittente</td>";
			echo "<td> $data</td>";
			echo "<td> $ora</td>";
			//SE MESSAGGIO è + LUNGO DI 40 CARATTERI LO TAGLIO
			$max=40;
			if(strlen($messaggio)>$max){
			$stringa_tagliata=substr($messaggio, 0,$max);
			$last_space=strrpos($stringa_tagliata," ");
			$stringa_ok=substr($stringa_tagliata, 0,$last_space);
			$messaggio = $stringa_ok."...";
			}
			
			echo "<td> <a href='centro_sms.php?$visualizza=false'>$messaggio</a></td>";
			echo "</tr>";
			$i++;
		 }
		echo "</table></center>";
 
Immagino che ad ogni messaggio corrisponda un ID, quindi potresti inserire un link a
PHP:
messaggio.php?id=<?php echo $id_messaggio;?>

Poi in messaggio PHP estrai il testo corrispondente con:

PHP:
"SELECT * FROM messaggi WHERE id_messaggio=" . $_GET['id'];
 
La soluzione in teoria mi sembra buona... ma mi rimane difficile metterla in pratica... come mi diventa quindi il mio link? che ora è:
PHP:
echo "<td> <a href='centro_sms.php?$visualizza=false'>$messaggio</a></td>";

e nell'altra pagina come richamo la variabile che contiene l'id?
 

Discussioni simili