• User Attivo

    Continua far scrivere anche chi è bannato

    [PHP]

    <?php
    //Apro la sessione e...
    session_start();
    // Sessione impostata a 10 min
    ini_set('session.gc_maxlifetime', '1800');

    include "config.php"; // file di connessione al Db

    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1)

    //se si... mostra il form per linvio dei messaggi
    echo "<form action="index.php" name="chat" method="POST">
    <textarea rows="2" name="text" cols="36"></textarea>
    <input type="submit" value="Invia"><br>
    <img src="bold.gif" OnClick="document.chat.text.value+='****'">
    <img src="italic.gif" OnClick="document.chat.text.value+='**'">
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">"

    ;

    elseif(mysql_num_rows(mysql_query("SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION['nickname'] ."'.")) > 0)
    die('Sei bannato');
    //altrimenti fai questo...
    else
    echo 'Mi dispiace ma per partecipare alla <br>chat devi prima iscriverti';
    //mi collego alla tabelle che contiene i nick bannati
    $sql_select="SELECT id_user,bannato FROM minichat";?>

    [/PHP]


  • ModSenior

    Cao,
    Vedo un punto nella query, quindi credo che la query ti dia errore.
    Prova a stamparla, e ad eseguirla dal phpmyadmin, per vedere se la query va bene o il problema è la query.


  • User Attivo

    Ok,
    allora sono andato su phpmyadmin e ho digitato questa query
    [PHP]
    "SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'."
    [/PHP]
    </span></span>
    mi da questo errore..
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSI

    stranamente però lanciando lo script da remoto non mi da nessun errore..
    ho provato anche questa query
    [PHP]
    "SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'"[/PHP]</span></span>
    stesso errore di prima...
    questi errori però me li da sul phpmyadmin mentre se lancio lo script non mi da nessun errore


  • ModSenior

    Devi fare un echo, e usare far eseguire quello in phpmyadmin.
    Phpmyadmin non può prenderti la variabile di sessione.


  • User Attivo

    Ok..
    ho fatto l echo
    [PHP]
    echo "SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'";
    [/PHP]
    mi stampa a video
    SELECT id_user,bannato FROM minichat WHERE id_user = 'carlitos'

    carlitos sarebbe il nick recuperato tramite sessione di variabile..quindi pare che funge


  • ModSenior

    Teoricamente, dovrebbe andare.


  • User Attivo

    :mmm:
    Non va...l utente anche se presento nel campo "bannato" continua lo stesso a
    scrivere invere di dare il messaggio Sei bannato:x
    Ti spiego meglio forse c'è stata un po confusione...
    Allora nella tabella minichat ho un campo bannato su cui inserisco i nick che voglio bannare,poi ci stanno altri vari campi e poi c'è il campo id_user che contiene i nick di chi scrive...il confronto quindi dovrebbe avvenire fra il campo id_user e bannato giusto..?
    [PHP]
    <?php
    //Apro la sessione e...
    session_start();
    // Sessione impostata a 10 min
    ini_set('session.gc_maxlifetime', '1800');

    include "config.php"; // file di connessione al Db

    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1)

    //se si... mostra il form per linvio dei messaggi
    echo "
    <img src="bold.gif" OnClick="document.chat.text.value+='****'">
    <img src="italic.gif" OnClick="document.chat.text.value+='**'">
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">
    <a href="javascript:Popup('faccine.htm')">Apri la popup</a>
    <form action="index.php" name="chat" method="POST">
    <textarea rows="2" id="text" name="text" cols="25"></textarea>
    <input type="submit" value="Invia"><br>"

    ;

    elseif

    (mysql_num_rows(mysql_query("SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'" )) > 0)
    die('Sei bannato');
    //altrimenti fai questo...

    else
    echo 'Mi dispiace ma per partecipare alla <br>chat devi prima iscriverti';
    //mi collego alla tabelle che contiene i nick bannati
    echo "SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'";
    $sql_select="SELECT id_user,bannato FROM minichat";?>
    [/PHP]


  • User Attivo

    Ho notato una cosa...effettuando il logout e provando ad entrare in cha mi da
    "Sei bannato"
    Strano...:?


  • User Attivo

    Succede che quando provo ad entrare in chat da utente non loggato e con il campo bannato della tabella minichat con dei nick voglio bannare dentro mi da
    "Sei bannato" mentre se cancello i nick dal campo bannato mi dice che per scrivere nella chat devo essere registrato..quindi loggato.
    Se invece effettuo il login e il nick di chi effettua il login e presente nel campo bannato fa comunque scrivere nel form anche se non dovrebbe....come mai?

    [PHP]
    <?php
    //Apro la sessione e...
    session_start();
    // Sessione impostata a 10 min
    ini_set('session.gc_maxlifetime', '1800');

    include "config.php"; // file di connessione al Db

    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1)

    //se si... mostra il form per linvio dei messaggi
    echo "
    <img src="bold.gif" OnClick="document.chat.text.value+='****'">
    <img src="italic.gif" OnClick="document.chat.text.value+='**'">
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">
    <a href="javascript:Popup('faccine.htm')">Apri la popup</a>
    <form action="index.php" name="chat" method="POST">
    <textarea rows="2" id="text" name="text" cols="25"></textarea>
    <input type="submit" value="Invia"><br>"

    ;

    elseif

    (mysql_num_rows(mysql_query("SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'" )) > 0)
    die('Sei bannato');
    //altrimenti fai questo...

    else
    echo 'Mi dispiace ma per partecipare alla <br>chat devi prima iscriverti';
    //mi collego alla tabelle che contiene i nick bannati
    echo "SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'";
    $sql_select="SELECT id_user,bannato FROM minichat";?>
    [/PHP]


  • ModSenior

    L'ordine era sbaglaito, non ci ho fatto caso prima, prova cosi:
    [php]
    include "config.php"; // file di connessione al Db

    if($_SESSION['logged'] == 1 && mysql_num_rows(mysql_query("SELECT id_user,bannato FROM minichat WHERE id_user = '".$_SESSION[ 'nickname']. "'" )) > 0)
    die('Sei bannato');

    //verifico che dopo il login io abbia la chiave di sessione ad 1
    elseif($_SESSION['logged'] == 1)

    //se si... mostra il form per linvio dei messaggi
    echo "
    <img src="bold.gif" OnClick="document.chat.text.value+='****'">
    <img src="italic.gif" OnClick="document.chat.text.value+='**'">
    <img src="faccine/smile.gif" OnClick="document.chat.text.value+=':-)'">
    <img src="faccine/faccia.gif" OnClick="document.chat.text.value+=':-+'">
    <a href="javascript:Popup('faccine.htm')">Apri la popup</a>
    <form action="index.php" name="chat" method="POST">
    <textarea rows="2" id="text" name="text" cols="25"></textarea>
    <input type="submit" value="Invia"><br>"

    ;
    else
    echo 'Mi dispiace ma per partecipare alla <br>chat devi prima iscriverti';
    [/php]


  • User Attivo

    Ciao,
    allora facendo cosi' mi dice 'Sei bannato' anche se nel campo "bannato"non risulta affatto il nome di quel nick...:?


  • User Attivo

    Ok,
    risolto cambiando la query in cosi':)
    [PHP]
    if($_SESSION['logged'] == 1 && mysql_num_rows(mysql_query("SELECT bannato FROM minichat WHERE bannato = '".$_SESSION[ 'nickname']. "'" )) > 0)
    die('Sei bannato');
    [/PHP]


  • ModSenior

    Sbagliavi il campo? 😄
    Buon proseguimento. 😉


  • User Attivo

    Si,era il campo sbagliato:sbav:
    Ora funziona tutto alla perfezione....
    Grazie;)


  • ModSenior

    Figurati. 😉