Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379

    aumentare il livello di esperienza con uno script??

    ragazzi sn in panico ci ho provato come un giro ma gli esiti mai degni di essere postati quindi vi domando se è possibile attraverso ad un semplice script di risolvere il mio problema. Ho fatto un reparto per solo utenti registrati nel quale si possono accedere a mote + aree che alla home. per accedervi ogni utente deve registrarsi con come mail passw ecc. questo riporta su una tabella anche le date di registrazione di ogni utente e quella del ultimo accesso inoltre l'amministratore puo fare in modo di aumentare il livello di [esperienza] del utente, che viene classificato in una scala da 1 a 15. la domand posta sarebbe: è possibile creare uno script che dopo un determinato tempo aumenti il livello autonomamente di ogni utente??


    eccovi dei dati che possono essere utili almeno lo spero


    per vedere il nome del utente:

    Codice PHP:
    <?PHP  
            
    // print the usename retrieved from the database
            
    echo htmlspecialchars($row["username"],ENT_QUOTES); ?>

    per richiamare il livello del utente:
    Codice PHP:
    <?PHP 
        
    //echo if the user is an admin.
        
    if ($row["userlevel"] < 0) {echo "Amministratore";}
        
        if (
    $row["userlevel"] == 1) {echo "Membro";}
        if (
    $row["userlevel"] == 2) {echo "Membro Buono";}
        if (
    $row["userlevel"] == 3) {echo "Membro Rispettabile";}
        if (
    $row["userlevel"] == 4) {echo "Membro Esemplare";}
        if (
    $row["userlevel"] == 5) {echo "Ultra Member";}
        if (
    $row["userlevel"] == 6) {echo "Apirante Moderatore";}
        if (
    $row["userlevel"] == 7) {echo "Moderatore Iniziato";}
        if (
    $row["userlevel"] == 8) {echo "Moderatore";}
        if (
    $row["userlevel"] == 9) {echo "Supervisore";}
        if (
    $row["userlevel"] == 10) {echo "1° Supervisore";}
        if (
    $row["userlevel"] == 11) {echo "11";}
        if (
    $row["userlevel"] == 12) {echo "12";}
        if (
    $row["userlevel"] == 13) {echo "13";}
        if (
    $row["userlevel"] == 14) {echo "14";}
        if (
    $row["userlevel"] == 15) {echo "Responsabile Newsletter";}
        if (
    $row["userlevel"] == 16) {echo "Apritante Amministratore";}
                
    ?>
    per visualizzzare lultimo login:
    Codice PHP:
    <?PHP
        
    //echo the date of the last login
        
    echo $row["lastlogin"]; ?>
    per vedere il giorno di registrazione:
    Codice PHP:
    <?PHP 
        
    //echo the date the user signed up
        
    echo $row["signupdate"]; ?>


    non so se possono servire alre informazioni

    :master: :master:

    fatemi sapere se potete darmi una mano

  2. #2
    Prova ad interagire qualche javascript tipo countdown che al termine ti fa aumentare il grado...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    ma come dovrei fare cio se deve essere fatto per ogni singolo utente.... sorry sn un po inesperto

  4. #4
    Utente di HTML.it L'avatar di garlick
    Registrato dal
    Dec 2001
    Messaggi
    385
    Puoi inserire lo script che aggiorna il livello di esperienza in una qualsiasi pagina alla fine, basta che sia visitata da qualcuno in modo che lo script venga eseguito.

    Puoi ad esempio salvarti in una tabella o in un file di testo l'ultima volta che lo script è stato eseguito inserendo semplicemente la data e l'ora correnti, poi fai un controllo in modo che lo script per l'esperienza venga eseguito solo se è passato un certo tempo dall'ultima volta

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    dirlo sembra facile molto ma sai è da pocho come mi sn incimentato con il php non credo di esserne al altezza se qualcuno di voi mi potrebbe dare una mano ne sarei molto ma molto grato perche non saprei da dv iniziare

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    credo sia di rilevante importanza magari mostrarvi anche lo script che fa in modo di cambiare il livello cosi dovrebbe essere forse un attimo + facile
    Codice PHP:
    <?PHP 
              
    // and pint the actions avaible again. just like in the admin page (admin.php)
              
    echo "<a href=\"user.php?action=delete&username=$username2\">Delete User</a> ";
              if (
    $row["userlevel"]>=0){echo "<a href=\"user.php?action=makeadmin&username=$username2\">Make Admin</A> ";
                if (
    $row["actnum"]=="0"){
                    echo 
    "<a href=\"user.php?action=levelincrease&username=$username2\">Increase level</a> 
                          <a href=\"user.php?action=abschangelevel&username=
    $username2\">Set the userslevel</a> ";
                    if (
    $row["userlevel"] > 1) {echo "<a href=\"user.php?action=leveldecrease&username=$username2\">Decrease level</a> ";}
                }
            }
            else {echo 
    "<a href=\"user.php?action=stopadmin&username=$username2\">Dismiss Admin</A> ";}
            if (
    $row["actnum"]!="0"){echo "<a href=\"user.php?action=activate&username=$username2\">Activate account</a> ";}
            
    ?>


    la parte che ci interessa è il set user level e quindi lo script prosegue in questa maniera


    Codice PHP:
    case "abschangelevel":
    htmlwrite("To what level would you like to set $username2's level (below zero will cause the account to become an admin account)

    <form action=\"user.php?action=abschangelevelconfirmed&username=
    $username2\" method=\"post\">
    <input type=\"text\" value=\"\" name=\"newlevel\">
    <input type=\"submit\" value=\"SET\"> 
    <a href=\"admin.php\">Cancel</a>"
    "Change level");
    break;

    case 
    "abschangelevelconfirmed":
    $query "UPDATE ".$DBprefix."signup Set userlevel=$newlevel where username='$username1'";  
    $result mysql_query($query); 
    htmlwrite("$username2's accesslevel was set to $newlevel.

    <a href=\"admin.php\">return to overview</a>

    <a href=\"user.php?action=more&username=
    $username2\">more information about $username2</a>""Change level");
    break; 
    spero possa esservi di aiuto io ci ho provato con un countdown in java ma nn ci sn riuscito

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se il livello è solo proporzionale al tempo di registrazione potresti fare una query così

    codice:
    update tabella set
    esperienza = if(
    ceil(  (to_days(curdate()) - to_days(data_registrazione)) / 30 ) > 15,15,ceil(  (to_days(curdate()) - to_days(data_registrazione)) / 30 )
    )
    where esperienza != 0
    dove esperienza è il campo numerico che vale da 0 a 15 con 0 amministratore.
    La query calcola la differenza tra la data corrente e quella di registrazione. Nel mio esempio divido per 30 giorni e arrotondo per eccesso. Puoi mettere un valore diverso che fa scattare il cambio di esperienza.
    Se il livello risultasse superiore a 15 lo setterebbe a 15 comunque per non eccedere.
    Vengono aggiornati tutti i record tranne quelli che setti tu manualmente a 0 che sono gli amministratori.

    Se hai mysql almeno 4.1 puoi usare datediff al posto di to_days.
    Spero ti sia utile.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    sei un grande da come mi hai spiegato sembra tutto fattibile ora provo poi faccio sapere ok !!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    $row["signupdate"];

    in pratica cio che ho inserito è


    Codice PHP:
    $user_current_Rank = if(
    ceil(  (to_days(curdate()) - to_days($row["signupdate"];)) / 30 ) > 15,15,ceil(  (to_days(curdate()) - to_days($row["signupdate"];)) / 30 )
    )
    where esperienza != 
    potrebbe essere corretto??

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    non mi va uffi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.