• User Attivo

    Forse intendi un quarto caso in cui memorizzi le informazioni su DB (o su file) e le rivisualizzi nel form?


  • User Attivo

    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?


  • User Attivo

    credo si tratti di gestire il problema della concorrenza

    ma non ho idea


  • User Attivo

    @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...


  • User Attivo

    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.


  • User Attivo

    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?


  • User Attivo

    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! 🙂


  • User Attivo

    ciao e grazie per l'iteressamento.
    ora ti spiego che ho capito

    faccio la query e trasformo il risultato della query in timestamp e lo metto nel db creando un nuovo campo?


  • User Attivo

    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>";
    ?>


  • User Attivo

    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...