Visualizzazione risultati 1 fino 12 di 12

Discussione: script che individua utenti bannati [php]

  1. #1
    Guest

    Predefinito script che individua utenti bannati [php]

    Salve gente ho appena creato questo script però ci sono errori in alcune stringhe,ma non capisco questi errori.
    Codice:
     
    <?
    $login = mysql_real_escape_string($_POST ["login"]);
    $password = mysql_real_escape_string($_POST ["password"]); 
    require ("connect_mysql.php"); 
    $risultati_mysql = mysql_query( "SELECT * FROM utenti_bannati WHERE login='$login' ")
    $num_righe=@mysql_num_rows($risultati_mysql); 
    if ( $num_righe != 0 ) { 
         $result = mysql_fetch_array($risultati_mysql); 
         if($result['login']==true) { 
               echo require ("utentimenu.php");  
         }else { 
               echo 'sei stato bannato'  
         } 
    } else { 
    print "hai sbagliato a digitare!"; 
    } 
    mysql_close() 
    ?>
    Praticamente io voglio che quando un utente logga nella mia chat,questo script deve verificare se è o non è bannato.
    Se è bannato gli devi dire "sei stato bannato"
    se non è bannato deve andare in "login.php.

    Ho creato un tabella di db dove verrano inseriti tutti i login che verrano bannati.
    Codice:
    ID   login   motivo   tempo
    Mi potete aiutare?

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Al posto di:
    Codice PHP:
    echo require ("utentimenu.php");
    Metti:
    Codice PHP:
    require("utentimenu.php");
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Guest

    Predefinito

    mi da questo errore Parse error: syntax error, unexpected T_VARIABLE in /membri/thebestchat/chat/controlloutente.php on line 6
    c'è qualche varibile sbagliata.

    Cmq ho sistemato anche "require(login.php)"

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Manca il punto e virgola dopo la riga della query.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    Codice:
     <?
    $login = mysql_real_escape_string($_POST ["login"]);
    $password = mysql_real_escape_string($_POST ["password"]); 
    require ("connect_mysql.php"); 
    $risultati_mysql = mysql_query( "SELECT * FROM utenti_bannati WHERE login='$login'");
         $result = mysql_fetch_array($risultati_mysql);
         if($result['login']==false) { 
               require("login.php");  
         }else { 
               echo 'sei stato bannato';
         }  
    mysql_close() 
    ?>
    Alla fine sono riuscito a correggere lo script,
    però adesso ho bisogno un piccolo aiuto
    se avete notato nel db ho messo tempo,
    vorrei che questa tabella sia dinamica cioè
    inserendo un numero,questo numero deve scendere fino ad arrivare a 0 quando questo numero è 0 l intera riga nel db deve essere cancellata.Esempio

    Codice:
    ID        login       motivo     tempo 
    
    1          Raziel       Prova        60
    voglio che questa riga verrà cancellata dopo 60secondi.
    Mi potete aiutare???

  6. #6
    Guest

    Predefinito

    eh.. mica va bene così.
    Devi aggiungere una nuova colonna che chiami time_stamp, li ci metti il valore della funzione time() (che inserisci quando l'utente viene bannato)
    Dopo di che, al lancio della pagina di login mandi una query del tipo
    Codice:
    $query = "DELETE FROM utenti WHERE time_stamp+tempo<=".time();
    Questa query cancella tutti i record della tabella se la somma del timestamp di quando è stato bannato + i secondi contenuti nella tabella tempo superano il il timestamp del momento in cui viene lanciato lo script..

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da stoner Visualizza messaggio
    eh.. mica va bene così.
    Devi aggiungere una nuova colonna che chiami time_stamp, li ci metti il valore della funzione time() (che inserisci quando l'utente viene bannato)
    Dopo di che, al lancio della pagina di login mandi una query del tipo
    Codice:
    $query = "DELETE FROM utenti WHERE time_stamp+tempo<=".time();
    Questa query cancella tutti i record della tabella se la somma del timestamp di quando è stato bannato + i secondi contenuti nella tabella tempo superano il il timestamp del momento in cui viene lanciato lo script..



    Allora ho fatto uno script del genere però ci sono dei errori
    Codice PHP:
    <?
    #inserisco i dati
    $login = "Raziel";
    $tempo = 1;
    $bannato_da = "Mod";
    $time_stamp = "MINUTE";
    #mi connetto sul database
    require ("connect_mysql.php");
    #inserisco sulla tabella i dati
    $result = mysql_query("INSERT INTO prova
    VALUES(
    $login, '$bannato_da', $tempo, '$time_stamp')") or die(mysql_error());
    #inserisco id
    $ultimo_id = mysql_insert_id();
    #inserisco evento
    $result = mysql_query("DELETE FROM prova WHERE time_stamp+tempo<=").time(MINUTE);
    mysql_close();
    #chiudo php
    ?>
    Dimmi k errore ho fatto???

  8. #8
    Guest

    Predefinito

    invece di $time_stamp = "MINUTE";
    Codice:
    $time_stamp = time();
    invece di
    Codice:
    $result = mysql_query("DELETE FROM prova WHERE time_stamp+tempo<=").time(MINUTE)
    invece
    Codice:
    $result = mysql_query("DELETE FROM prova WHERE time_stamp+tempo<=".time());
    Il tempo deve essere indicato in secondi.

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da stoner Visualizza messaggio
    invece di $time_stamp = "MINUTE";
    Codice:
    $time_stamp = time();
    invece di
    Codice:
    $result = mysql_query("DELETE FROM prova WHERE time_stamp+tempo<=").time(MINUTE)
    invece
    Codice:
    $result = mysql_query("DELETE FROM prova WHERE time_stamp+tempo<=".time());
    Il tempo deve essere indicato in secondi.

    Codice PHP:
    <?
    #inserisco i dati
    $login = "Raziel";
    $tempo = 30;
    $bannato_da = "Mod";
    $time_stamp = time();
    #mi connetto sul database
    require ("connect_mysql.php");
    #inserisco sulla tabella i dati
    $result = mysql_query("INSERT INTO prova
    VALUES(
    $login, '$bannato_da', $tempo, '$time_stamp')") or die(mysql_error());
    #inserisco id
    $ultimo_id = mysql_insert_id();
    #inserisco evento
    $result = mysql_query("DELETE FROM prova WHERE time_stamp+tempo<=".time());
    mysql_close();
    #chiudo php
    ?>
    Ho provato cosi ma non mi funziona,spiegami bene dove devo scrivere i secondi.
    non mi stampa neanche i dati sul db
    Ultima modifica di thebestchat : 05-01-2009 alle ore 19.32.45

  10. #10
    Guest

    Predefinito

    Scusa ma quel codice dove l'hai scritto?
    Poi.. tu devi cancellare dal database gli utenti che hanno scontalo la loro pena (in termini di ban) per fare quello ti basta una query
    Codice:
    mysql_query("DELETE FROM prova WHERE time_stamp+tempo<=".time());
    questa.

    Dove setti il ban sono fatti tuoi. Di certo non ha senso settare il ban sopra a questa query (anche se è per fare una prova), perchè di fatto il record che inserisci non lo cancellerà mai, se non al secondo lancio dello script (se sono passati i '$tempo' secondi), ma, sempre al secondo lancio, il record viene nuovamente inserito... e questo sempre.

  11. #11
    Guest

    Predefinito

    potrei metterla sullo script per loggare come ad esempio lo script che ho messo all inizio xo già fixata?
    questo record mi ha confuso nn so piu dv mettere le mani.

  12. #12
    Guest

    Predefinito

    Te lo ripeto di nuovo, quella query va nel primo file prima della 'SELECT', dove fai il ban poi sono fatti tuoi, di certo non puoi bannare gli utenti mentre si loggano :)

    Comunque dovresti essere un po più preciso e meno vago quando spieghi qualcosa, cerca di non usare abbreviazioni. Ciao.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •