• User Attivo

    io vorrei che quella pagina modificata rimanesse modificata.
    cioè se modifico il campo esercizio deve rimanere sempre cosi anche dopo che un utente si colegga di nuovo.
    uffa sto incasinato!


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