• ModSenior

    Beh se ti fai un modulo dove inserisci il nick, e il nick ti va a finire direttamente nella tabella bannati non è la stessa cosa?


  • User Attivo

    Si:)
    ed è anche piu' sbrigativo:D
    Ovviamente anche questa pagina deve esser protetta....e su ciò vorrei chidere una cosa....come faccio a rendere accessibile la pagina solo a me...e non a tutti gli iscritti..?


  • ModSenior

    Un form di login, oppure la proteggi con un file htaccess.


  • User Attivo

    Ok,opto per la prima soluzione:)
    Ora che ho le idee piu' chiare comincio col progettare il tutto..:wink3:


  • User Attivo

    Ok...ho creato tutto ciò che riguarda il modulo riguardante i nick da banner e fatto in modo che il tutto sia accessibile solo da me...

    Ora velocemente sono passato alla pagina minichat.php che contiene ilform per l invio dei messaggi inserendo il controllo che mi hai detto..

    [php]
    <?php
    //Apro la sessione e...
    session_start();
    // Sessione impostata a 10 min
    ini_set('session.gc_maxlifetime', '1800');
    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1)

    //se si...
    include "config.php"; // file di connessione al Db
    //mi collego alla tabelle che contiene i nick bannati
    $sql_select="SELECT bannati FROM utenti ";
    $query_select= @mysql_query($sql_select) or die (mysql_error());

    while($row=mysql_fetch_array($query_select))
    //recupero i nomi dei nick bannati
    $stringa=$row['bannati'];
    //controllo se il nickname di chi scrive e uguale al nick presente nella variabile$stringa
    if($_SESSION[nickname]=='$stringa')
    echo "sei stato bannato";
    else {
    echo "<form action="index.php" name="chat" method="POST">
    <textarea rows="2" name="text" cols="26"></textarea>
    <div id="invia"><input type="submit" value="Invia"></div><br>
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">"
    ;
    }?>
    </div></form>
    [/php]Non mi funziona...il nick che ho provato a bannare continua a scrivere...quindi che il controllo che ho impostato non funziona..


  • ModSenior

    Ciao,
    Credo che hai fatto la cosa più complessa di quanto lo sia realmente.
    Tu hai aggiunto un campo alla tabella utenti.
    Sopra parlavamo di crearne una con i soldi bannati, e controlla che l'utente sia bannato.
    Che mi sembra più semplice e che consumi meno risorse.


  • User Attivo

    Si,infatti quella tabella utenti che ho creato contiene solo il campo bannati,cioè sarebbe a tabella in cui vanno vanno a finire gli utenti che voglio bannare.
    Poi ho recuperato il nickname e fatto un confronto con il campo recuperato tramite query...ma non mi funziona:?


  • ModSenior

    Allora non è più semplice fare:
    [php]
    if(mysql_num_rows(mysql_query("SELECT bannati FROM utenti WHERE nickname = '$_SESSION[nickname]'")) > 0)
    die('Sei bannato');
    [/php]


  • User Attivo

    Nulla da fare continua a non funzionare...anche se il nick è bannato continua a scrivere
    [PHP]
    <?php
    //Apro la sessione e...
    session_start();
    // Sessione impostata a 10 min
    ini_set('session.gc_maxlifetime', '1800');
    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1)

    //se si...
    include "config.php"; // file di connessione al Db
    //mi collego alla tabelle che contiene i nick bannati
    $sql_select="SELECT bannati FROM utenti ";

    $query_select= @mysql_query($sql_select) or die (mysql_error());

    if(mysql_num_rows(mysql_query("SELECT bannati FROM utenti WHERE nickname = '$_SESSION[nickname]'")) > 0)
    die('Sei bannato');

    else {
    echo "<form action="index.php" name="chat" method="POST">
    <textarea rows="2" name="text" cols="26"></textarea>
    <div id="invia"><input type="submit" value="Invia"></div><br>
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">"
    ;
    }?>
    </div></form>[/PHP]


  • ModSenior

    Se fai:
    [php]
    echo mysql_num_rows(mysql_query("SELECT bannati FROM utenti WHERE nickname = '$_SESSION[nickname]'"));
    [/php]
    Dovrebbe dare 0, quindi o la varaibile di sessione non ha valore, oppure non c'è un record che indichi che quel nick è bannato.


  • User Attivo

    Ho inserito la stringa che mi hai dato te.. ma non mi da nessun 0:?


  • User Attivo

    Allora,ho pensato di fare un altra cosa...per la minichat ho una taballa in cui ho già un recordi che mi recupera il nickname di chi scrive,in questa stessa tabella potrei inserire il record bannati e fare il controllo frail record 'id_user' che mi contiene il nick di chi scrive e quello 'bannati' ...si..?


  • ModSenior

    Cosa ti stampa quell'echo?
    Deve stampare il numero di record che trova, qundi dire se è bannato o no.


  • User Attivo

    Non mi stampa nulla...non mi esce nessun numero..esce la pagina normale come è esempre uscita...:bho:


  • User Attivo

    Ok,ho risolto facendo cosi'
    [php]
    <?php
    //Apro la sessione e...
    session_start();
    // Sessione impostata a 10 min
    ini_set('session.gc_maxlifetime', '1800');
    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1)

    //se si...
    include "config.php"; // file di connessione al Db
    else "Devo loggarti";
    //mi collego alla tabella minichat che contiene i due campi che mi interessano
    $sql_select="SELECT id_user,bannato FROM minichat";

    $query_select= @mysql_query($sql_select) or die (mysql_error());
    while($row=mysql_fetch_array($query_select))
    //recupero i nomi dei nick
    $stringa=$row['id_user'];
    //qui' avviene il confronto
    if(mysql_num_rows(mysql_query("SELECT bannato FROM minichat WHERE bannato = '$stringa'")) > 0)
    die('Sei bannato');

    else {
    echo "<form action="index.php" name="chat" method="POST">
    <textarea rows="2" name="text" cols="26"></textarea>
    <div id="invia"><input type="submit" value="Invia"></div><br>
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">"
    ;
    }?>
    </div></form>
    [/php]Ora non mi resta che creare un altro piccolo form che mi consenta non solo di aggiungere i nick che voglio bannarea ma anche di cancellarli dal ban;)

    Grazie Thedarkita:)

    un ultima cosa..questa parte di codice qui'
    [PHP]
    die('Sei bannato');
    [/PHP]
    può essere ancora modificabile??nel senso posso implentarci dentro del codice html o un immagine..?


  • ModSenior

    Si, puoi mandare codice html in output.
    Continuo a non capire perchè fai un ciclo che ti controlli tutti i nick, consumi risorse del server preziose senza motivo.
    Il ciclo è inutile, tu non devi scorrere tutta la tabella, ma controllare solo che ci sia un record che identifichi che l'utente che sta scrivendo un messaggio sia bannato.


  • User Attivo

    Sto provando nel togliere il while come dici te.. ma non mi funziona..non fa il controllo..fa cmq scrivere anche se si è bannati
    [php]
    <?php
    //Apro la sessione e...
    session_start();
    // Sessione impostata a 10 min
    ini_set('session.gc_maxlifetime', '1800');
    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1)

    //se si...
    include "config.php"; // file di connessione al Db
    //mi collego alla tabelle che contiene i nick bannati

    $sql_select="SELECT id_user,bannato FROM minichat";

    if(mysql_num_rows(mysql_query("SELECT id_user,bannato FROM minichat WHERE id_user = 'bannato' ")) > 0)
    die('Sei bannato');

    else {
    echo "<form action="index.php" name="chat" method="POST">
    <textarea rows="2" name="text" cols="26"></textarea>
    <div id="invia"><input type="submit" value="Invia"></div><br>
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">"
    ;
    }?>[/php]


  • ModSenior

    Ciao,

    [php]
    id_user = 'bannato'
    [/php]

    Credo che dovevi mettere una variabile avente come valore, il nick dell'utente.


  • User Attivo

    ok provo ad inserire il nick una variabile..:)


  • User Attivo

    Continua a non funzionare...il nick anche se bannato continua scrivere

    [php]
    $sql_select="SELECT id_user,bannato FROM minichat";

    $nick='id_user';
    if(mysql_num_rows(mysql_query("SELECT id_user,bannato FROM minichat WHERE id_user = '$nick' ")) > 0)
    die('Sei bannato');

    [/php]

    sto facendo un casino di prove....

    [php]
    $sql_select="SELECT id_user,bannato FROM minichat";

    $nick='id_user';
    if(mysql_num_rows(mysql_query("SELECT bannato FROM minichat WHERE id_user = '$nick' ")) > 0)
    die('Sei bannato');

    [/php]

    manco va...

    [php]
    $sql_select="SELECT id_user,bannato FROM minichat";

    $nick='id_user';
    if(mysql_num_rows(mysql_query("SELECT bannato FROM minichat WHERE bannato = '$nick' ")) > 0)
    die('Sei bannato');

    [/php]