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


  • ModSenior

    Stampa la query:
    [php]
    echo "SELECT id_user,bannato FROM minichat WHERE id_user = '$nick' ";
    [/php]


  • User Attivo

    aggiungendo quest query mi da un errore else

    [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";

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

    else {
    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+=':-+'">"
    ;}?>
    </form>
    </div>[/PHP]

    syntax error, unexpected T_ELSE in /membri/italiawebchat/minichat.php


  • ModSenior

    Ciao,

    L'else che usi, viene usato per qualche if? Vedo un solo if, a cui mancano le parentesi e di conseguenza considera solo la riga successiva.


  • User Attivo

    Ok...ho riordinato un po lo script...e ora non mi da nessun errore...

    [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+=':-+'">"

    ;
    //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";

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

    ?>[/php]counque con la stringa
    [php]

    echo "SELECT id_user,bannato FROM minichat WHERE id_user = '$nick' ";

    [/php]mi stampa a video SELECT id_user,bannato FROM minichat WHERE id_user = 'id_user'
    </form>
    </div>
    quindi mi sa che la variabile nick non mi recupera nulla


  • ModSenior

    Quindi la query è giusta.
    Il controllo se è bannato non devi farlo prima di mostrare il modulo?


  • User Attivo

    si...ma io dovrei mostare il modulo per l invio dei messaggi ai solo loggati...:?


  • ModSenior

    [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 = '$nick' ")) > 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]

    $nick deve avere come valore l'id/nick dell'utente che visita la pagina altrimenti come fai a stabilire se è bannato? Mi sono accorto solo ora che dai una costante fissa alla query, visto che la variabile assume un solo valore indipendentemente dall'utente che visualizza la pagina.


  • User Attivo

    quindi per dare il nome utente alla variabile $nick devo per forza fare un ciclo che controlli il record "id_user" che contiene il nick di chi scrive e ricavarmi il nome del nick stesso...giusto?


  • ModSenior

    Il nick non è salvato in una variabile di sessione/cookie?


  • User Attivo

    No.
    Questa è la pagina minichat2 su cui io poi mostro a video i dati provenienti da minichat 1 che contiene il form per l inviod ei messaggi

    [PHP]
    <?
    include "config.php"; // file di connessione al Db

    $sql_select="SELECT id_user, testo,tempo FROM minichat ORDER BY id DESC LIMIT 10";
    $query_select= @mysql_query($sql_select) or die (mysql_error());

    while($row=mysql_fetch_array($query_select))
    {
    $row['testo'] = str_replace(":-)", "<img_src='/faccine/smile.gif'>", $row['testo']);

    $row['testo'] = str_replace(":-+", "<img_src='/faccine/faccia.gif'>", $row['testo']);

    $row['testo'] =str_replace("**","<strong>",$row['testo']);

    $row['testo'] = str_replace("**","</strong>",$row['testo']);

    $row['testo'] = str_replace("*","<em>",$row['testo']);

    $row['testo'] = str_replace("*","</em>",$row['testo']);

    $stringa=$row['testo'];

    $nuova_stringa = wordwrap($stringa, 48, "<br />\n");
    

    $nuova_stringa = str_replace("<img_src", "<img src", $row['testo']);

    echo"<table>

    <th colspan="2">Messaggi</th>

    </table>

    </div></td>
    </tr>
    </table>
    </div>
    ".$row['id_user'].": </td><td>".$nuova_stringa."</td><td>".$row['tempo']."</tr>";

    }
    ?>
    [/PHP]
    il tutto è recuperato da un ciclo while..pure il nick