mdweb Dio maturo


Registrato: 18/12/07 16:59 Messaggi: 4412
|
Inviato: 20 Feb 2008 18:15 Oggetto: Turorial] creare chat in php |
|
|
Creiamo un file config.inc.php e inseriamo i dati del database.
Codice: | <?php
$server = $_SERVER["SERVER_NAME"];
if($server == "127.0.0.1"){
$user = "";
$pwd = "";
$host = "";
$db = "";
}
else{
$user = "";
$pwd = "";
$host = "";
$db = "";
}
?>
|
Ora creiamo un file chat.php che servirà per chattare:
Codice: |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Messaggia</title>
<script language="javascript">
<!--
function controllaform(ff) {
for (var i=0; i<ff.length; i++) {
if (ff.elements[i].value == "") {
alert("Il form non è completo, completate tutti i campi.");
return false;
}
}
return true;
}
-->
</script>
</head>
<body bgcolor="#fff">
<br/><center>
<?php
include("config.inc.php");
if(isset($_GET['cat'])){
$idc = $_GET['cat'];
}
if(!isset($_POST['send']) && !isset($_GET['inchat'])){
?>
<form action="chat.php" method="post" onSubmit="return controllaform(this);">
<font class="testo3"> Username </font>
<input type="text" name="usern" mexlength="19" /><br/>
<input type="submit" name="send" value="Entra in chat"/>
</form>
<?php
}
else if(isset($_POST['send']) && !isset($_GET['inchat'])){
$usern = $_POST['usern'];
$usern = str_replace(" ", "", $usern);
$usern = str_replace("<", "<", $usern);
$usern = str_replace(">", ">", $usern);
echo "<font class=\"testo3\"> Individuazione username ....";
$cn2 = @mysql_connect($host,$user,$pwd);
@mysql_select_db($db,$cn2);
$formatodb = date("YmdHis");
$delold = "SELECT * FROM msgonchat WHERE ($formatodb-datains)>350";
$_delold = mysql_query($delold,$cn2);
$ndelold = @mysql_num_rows($_delold);
if($ndelold>0){
while($oldes = @mysql_fetch_array($_delold)){
$idold = $oldes['iduser'];
$queryel = "DELETE FROM useronchat WHERE id='$idold'";
$_queryel = @mysql_query($queryel,$cn2);
$queryel2 = "DELETE FROM msgonchat WHERE iduser='$idold'";
$_queryel2 = @mysql_query($queryel2,$cn2);
}
}
else{
echo "User non eliminati...";
}
$peren = "DELETE FROM useronchat WHERE ($formatodb-dataentrata)>350";
$peren_= @mysql_query($peren,$cn2);
// controllo username
$ip2 = $_SERVER['REMOTE_ADDR'];
$controlloesistenza = "SELECT * FROM useronchat WHERE username='$usern' OR ip='$ip2' OR (ip='$ip2' AND username='$usern')";
$_controlloesistenza = mysql_query($controlloesistenza,$cn2);
$ncontrolloesistenza = @mysql_num_rows($_controlloesistenza);
if($ncontrolloesistenza==0){
echo "Username libero...";
$ip = $_SERVER['REMOTE_ADDR'];
$no = date("Y-m-d H:i:s");
$insuser = "INSERT INTO useronchat(id,username,ip,dataentrata) VALUES('','$usern','$ip','$no')";
$_insuser = mysql_query($insuser,$cn2);
if($_insuser){
echo "username pronto per entrare in chat...";
header("Location:chat.php?&inchat=yes");
echo "<meta http-equiv=\"Refresh\" content=\"2;URL=chat.php\" />";
}
}
else{
echo "username occupato e/o ip gia' connesso in chat";
header("Location:chat.php");
echo "<meta http-equiv=\"Refresh\" content=\"2;URL=chat.php\" />";
}
}
else if(isset($_GET['inchat'])){
echo "<font class=\"title\"> Chat! </font><br/><br/><br/>
<iframe width=\"100%\" height=\"200\" style=\"border:1px solid #000;\" src=\"msgchat.php\" frameborder=\"0\">
</iframe><br/>
<iframe width=\"100%\" height=\"60\" style=\"border:1px solid #000;\" src=\"givemsg.php\" frameborder=\"0\">
</iframe>
";
}
?>
</center>
</body>
</html>
|
Ora creiamo il file givemsg.php che serve per inviare i messaggi
Codice: |
<html>
<head>
<title>Messaggia</title>
<script language="javascript">
<!--
function controllaform(ff) {
for (var i=0; i<ff.length; i++) {
if (ff.elements[i].value == "") {
alert("Il form non è completo, completate tutti i campi.");
return false;
}
}
return true;
}
-->
</script>
</head>
<body bgcolor="#000">
<?php
include("config.inc.php");
$cn = @mysql_connect($host,$user,$pwd);
@mysql_select_db($db,$cn);
$ip = $_SERVER['REMOTE_ADDR'];
$selid = "SELECT id FROM useronchat WHERE ip='$ip'";
$_selid= @mysql_query($selid,$cn);
$nselid= @mysql_num_rows($_selid);
if($nselid!=0){
$selus = @mysql_fetch_array($_selid);
$idu = $selus['id'];
}
?>
<form action="givemsg.php" method="post" onSubmit="return controllaform(this);">
<input type="hidden" name="iduse" value="<?php echo $idu; ?>"/>
<input type="text" name="testo" maxlength="249"/><input type="submit" name="send" value="Invia msg"/>
</form>
<?php
if(isset($_POST['send'])){
$testo = $_POST['testo'];
$iduse = $_POST['iduse'];
$seln = "SELECT username FROM useronchat WHERE id='$iduse'";
$_seln= @mysql_query($seln,$cn);
$nseln= @mysql_num_rows($_seln);
if($nseln==1){
$seln_ = @mysql_fetch_array($_seln);
$nome = $seln_['username'];
}
$temp =$testo;
$testo = "[USERNAME][B] $nome >>> [/B][/USERNAME] ". $temp . "[/B]";
$datai = date("YmdHis");
$insm = "INSERT INTO msgonchat(id,iduser,messaggio,datains) VALUES('','$iduse','$testo','$datai')";
$_insm = @mysql_query($insm,$cn);
$nao = date("YmdHis");
$upde = "UPDATE useronchat SET dataentrata='$nao'";
$_upde= @mysql_query($upde,$cn);
}
?>
</body>
</html>
|
Infine creiamo il file msgchat.php dove vengono visualizzati i messaggi:
Codice: |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Chat PHP by Keratox</title>
<style type="text/css">
<!--
@import url('style.inc.php');
-->
</style>
<meta http-equiv="Refresh" content="3;URL=msgchat.php">
</head>
<body bgcolor="#000">
<?php
include("config.inc.php");
$cn = @mysql_connect($host,$user,$pwd);
@mysql_select_db($db,$cn);
$selmsg = "SELECT * FROM msgonchat ORDER BY datains DESC LIMIT 0,100";
$_selmsg = @mysql_query($selmsg,$cn);
$nselmsg = @mysql_num_rows($_selmsg);
if($nselmsg>0){
$i=0;
while($msg=@mysql_fetch_array($_selmsg)){
$iduser = $msg['iduser'];
$mess = $msg['messaggio'];
$mess = str_replace("<","<",$mess);
$mess = str_replace(">",">",$mess);
$mess = str_replace("[B]","<b>",$mess);
$mess = str_replace("[/B]","</b>",$mess);
$mess = str_replace("[USERNAME]","<font class=\"testo3\">",$mess);
$mess = str_replace("[/USERNAME]","</font>",$mess);
$sus = "SELECT username FROM useronchat WHERE id='$iduser'";
$_sus=mysql_query($sus,$cn);
$sus_=@mysql_fetch_array($_sus);
$nome = $sus_['username'];
if($i%2==0){
$color = "#FF0000";
}
else{
$color = "#00FF00";
}
echo " <font color=\"color:$color;\">$mess</font><br/>";
$i++;
}
}
?>
</body>
</html> |
Finito.  |
|