- Home
- Categorie
- Coding e Sistemistica
- Coding
- Creare un sistema di ban su minichat
-
Teoricamente, dovrebbe andare.
-
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]
-
Ho notato una cosa...effettuando il logout e provando ad entrare in cha mi da
"Sei bannato"
Strano...:?
-
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]
-
L'ordine era sbaglaito, non ci ho fatto caso prima, prova cosi:
[php]
include "config.php"; // file di connessione al Dbif($_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]
-
Ciao,
allora facendo cosi' mi dice 'Sei bannato' anche se nel campo "bannato"non risulta affatto il nome di quel nick...:?
-
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]
-
Sbagliavi il campo?
Buon proseguimento.
-
Si,era il campo sbagliato
Ora funziona tutto alla perfezione....
Grazie;)
-
Figurati.