- Home
- Categorie
- Coding e Sistemistica
- Coding
- Aggiornare Pagina
-
Forse intendi un quarto caso in cui memorizzi le informazioni su DB (o su file) e le rivisualizzi nel form?
-
si era cosi e ho risolto sistemando bene le query.
ora il problema è questo:se un utente A si collega e con invio modifica la pagina, come faccio afare in modo che se un utente B sta guardando la stessa pagina gli venga si aggiorni automaticamente?
-
credo si tratti di gestire il problema della concorrenza
ma non ho idea
-
@matti said:
se un utente A si collega e con invio modifica la pagina, come faccio afare in modo che se un utente B sta guardando la stessa pagina gli venga si aggiorni automaticamente?
ehm... che significa?
se A e B non accedono dallo stesso pc, perché mai dovrebbero vedere uno la pagina dell'altro?
tu vuoi che A modifichi il contenuto e B possa vedere la pagina modificata da A? in questo caso credo tu possa fare in modo che il contenuto della pagina venga preso da un Database. In questo modo, se A apporta delle modifiche, queste vengono salvate nel DB, ma non ho idea di come si possa aggiornare la pagina ogni volta che le informazioni salvate nel DB cambiano...
-
ciao è proprio questo il concetto.in parte l'ho risolto perchè uso un db, ma non so' come mettere un refresh automatico della pagina.
non conosco bene la sintassi.
-
ciao ho messo
<META HTTP-EQUIV="refresh" content=";URL=http://127.0.0.1/tutoronline/visualizzaesercizi.php">ma è troppo vistoso il refresh della pagina non mi sembra buono.
cio sn alternative?
-
http://codewalkers.com/tutorials/87/2.html
mi sembra che qui se ne parli, prova un po' a guardare...
la logica è: ti salvi il timestamp dell'ultimo aggiornamento e lo confronti con il timestamp dell'ultimo aggiornamento inserito nel db. Quando il timestamp del db è maggiore di quello dell'ultimo aggiornamento caricato sul sito, aggiorni la pagina!
-
ciao e grazie per l'iteressamento.
ora ti spiego che ho capitofaccio la query e trasformo il risultato della query in timestamp e lo metto nel db creando un nuovo campo?
-
questo è il codice che uso:
<?php
//testare la sessione
echo @$login_err;
if(IsSet($_SESSION['tutor'])){
echo "<p>Benvenuto tutor: "[EMAIL=".@$_SESSION"].@$_SESSION[/EMAIL]['tutor'][0];}else{
echo "<p>Non sei autenticato !";
echo "<br><a href='login.php'>Effettua Login</a>";
}
$usernamen=$_SESSION['tutor'][0];
//Effettuo il controllo dei dati
//$strSQL = "SELECT titoloesercizio FROM esercizio";$query = "SELECT * FROM esercizio";
$ris=mysql_query($query) or die("Errore nella query:".mysql_error());$numrows = mysql_num_rows($ris);
for($x=0; $x<$numrows; $x++){
//Recupero il contenuto di ogni record rovato
$resrow = mysql_fetch_row($ris);
$idesercizio=$resrow[0];
$titoloesercizio = $resrow[1];
$argomentoesercizio= $resrow[2];
$testo= $resrow[3];
$inviosoluzione= $resrow[4];
$stato= $resrow[5];
?>
<tr>
<td width="7%"> <? echo $titoloesercizio ; ?></td>
<td width="8%">
<? echo $argomentoesercizio ?></td>
<td width="10%">
<? echo $testo ?></td>
<!--<td width="20%"> <a href=./esercizi/<?php echo $titoloesercizio; ?> > leggi esercizio </a></td>-->
<td width="8%"><? echo $inviosoluzione ?></td>
<td width="5%">
</td>
<td width="6%"> </td>
<td width="6%"> </td>
<td width="10%"> </td>
<td width="7%"> </td>
<td width="6%"> </td>
<td width="9%"><a href="./esercizi/<?php echo $titoloesercizio; ?>">leggi esercizio</a></td>
<td width="7%">
<form $_POST['action']="<?php print $_SERVER["PHP_SELF"]; ?>" name="form<? echo $x ?>" method="POST">
<input name="statoesercizio" type="hidden" value="<?php echo $stato; ?>">
<input name="idesercizio" type="hidden" value="<?php echo $idesercizio; ?>">
<input type="button" name="n" value="Invia" onclick="invia(form<? echo $x ?>,form<? echo $x ?>.statoesercizio.value)">
<?php
$idesercizio = @$_POST['idesercizio'];
$strSQL = "UPDATE esercizio SET statoesercizio='occupato' WHERE idesercizio='$idesercizio'"; //echo $strSQL;
mysql_query($strSQL)OR die("Errore nella query1:".mysql_error());
?>
</form> <BR>
<td width="10%"><?php echo $stato; ?> </td> <td width="1%"></td>
</tr>
<?php
}
?>
</table>
<?php
echo "<br><a href='homepage.php'>Vai all' homepage </a>";
?>
-
per recuperare i dati, non ti conviene fare
while ($resrow = mysql_fetch_row($ris)){
.....
}
?
rispiego il senso: quando fai l'update, ti prendi un timestamp e lo inserisci nel db. Quando crei la pagina, ti memorizzi il timestamp dell'ultimo esercizio caricato($oraUltimoCaricato). Poi confronti ogni tot secondi $oraUltimoCaricato con il timestamp che ti memorizzi nel db (naturalmente prendi questo dato facendo una query che ti estragga l'ora dell'ultimo esercizio aggiunto!). Quando i due dati sono diversi, allora ricarichi la pagina...