php+mysql对话框 可以用于网页实时反馈

PHP+MySQL 实时聊天框

php+mysql对话框 可以用于网页实时反馈

 可以折叠打开或者隐藏

数据库

 SQL Code

  1. CREATE TABLE IF NOT EXISTS `shout_box` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,  
  3.   `uservarchar(60) NOT NULL,  
  4.   `message` varchar(100) NOT NULL,  
  5.   `date_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  
  6.   `ip_address` varchar(40) NOT NULL,  
  7.   PRIMARY KEY (`id`)  
  8. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;  

 

 

php+mysql对话框 可以用于网页实时反馈

 

 

XML/HTML Code
  1. <div class="shout_box">  
  2. <div class="header">php+mysql对话框 <div class="close_btn"> </div></div>  
  3.   <div class="toggle_chat">  
  4.   <div class="message_box">  
  5.     </div>  
  6.     <div class="user_info">  
  7.     <input name="shout_username" id="shout_username" type="text" placeholder="Your Name" maxlength="15" />  
  8.    <input name="shout_message" id="shout_message" type="text" placeholder="Type Message Hit Enter" maxlength="100" />   
  9.     </div>  
  10.     </div>  

 

JavaScript Code
  1. <script type="text/javascript">  
  2. $(document).ready(function() {  
  3.   
  4.     // load messages every 1000 milliseconds from server.  
  5.     load_data = {'fetch':1};  
  6.     window.setInterval(function(){  
  7.      $.post('shout.php', load_data,  function(data) {  
  8.         $('.message_box').html(data);  
  9.         var scrolltoh = $('.message_box')[0].scrollHeight;  
  10.         $('.message_box').scrollTop(scrolltoh);  
  11.      });  
  12.     }, 1000);  
  13.       
  14.     //method to trigger when user hits enter key  
  15.     $("#shout_message").keypress(function(evt) {  
  16.         if(evt.which == 13) {  
  17.                 var iusername = $('#shout_username').val();  
  18.                 var imessage = $('#shout_message').val();  
  19.                 post_data = {'username':iusername, 'message':imessage};  
  20.                   
  21.                 //send data to "shout.php" using jQuery $.post()  
  22.                 $.post('shout.php', post_data, function(data) {  
  23.                       
  24.                     //append data into messagebox with jQuery fade effect!  
  25.                     $(data).hide().appendTo('.message_box').fadeIn();  
  26.       
  27.                     //keep scrolled to bottom of chat!  
  28.                     var scrolltoh = $('.message_box')[0].scrollHeight;  
  29.                     $('.message_box').scrollTop(scrolltoh);  
  30.                       
  31.                     //reset value of message box  
  32.                     $('#shout_message').val('');  
  33.                       
  34.                 }).fail(function(err) {   
  35.                   
  36.                 //alert HTTP server error  
  37.                 alert(err.statusText);   
  38.                 });  
  39.             }  
  40.     });  
  41.       
  42.     //toggle hide/show shout box  
  43.     $(".close_btn").click(function (e) {  
  44.         //get CSS display state of .toggle_chat element  
  45.         var toggleState = $('.toggle_chat').css('display');  
  46.           
  47.         //toggle show/hide chat box  
  48.         $('.toggle_chat').slideToggle();  
  49.           
  50.         //use toggleState var to change close/open icon image  
  51.         if(toggleState == 'block')  
  52.         {  
  53.             $(".header div").attr('class''open_btn');  
  54.         }else{  
  55.             $(".header div").attr('class''close_btn');  
  56.         }  
  57.            
  58.            
  59.     });  
  60. });  
  61.   
  62. </script>  

 shut.php

 

PHP Code
  1. <?php  
  2. require "../../conn.php";  
  3.   
  4. if($_POST)  
  5. {  
  6.       
  7.       
  8.     //check if its an ajax request, exit if not  
  9.     if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {  
  10.         die();  
  11.     }   
  12.       
  13.     if(isset($_POST["message"]) &&  strlen($_POST["message"])>0)  
  14.     {  
  15.         //sanitize user name and message received from chat box  
  16.         //You can replace username with registerd username, if only registered users are allowed.  
  17.         $username = filter_var(trim($_POST["username"]),FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);  
  18.         $message = filter_var(trim($_POST["message"]),FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);  
  19.         $user_ip = $_SERVER['REMOTE_ADDR'];  
  20.           
  21.   
  22.         //insert new message in db  
  23.         if(mysql_query("INSERT INTO shout_box(user, message, ip_address) value('$username','$message','$user_ip')"))  
  24.         {  
  25.             $msg_time = date('h:i A M d',time()); // current time  
  26.             echo '<div class="shout_msg"><time>'.$msg_time.'</time><span class="username">'.$username.'</span><span class="message">'.$message.'</span></div>';  
  27.         }  
  28.           
  29.         // delete all records except last 10, if you don't want to grow your db size!  
  30.         mysql_query("DELETE FROM shout_box WHERE id NOT IN (SELECT * FROM (SELECT id FROM shout_box ORDER BY id DESC LIMIT 0, 10) as sb)");  
  31.     }  
  32.     elseif($_POST["fetch"]==1)  
  33.     {  
  34.         $results = mysql_query("SELECT user, message, date_time FROM (select * from shout_box ORDER BY id DESC LIMIT 10) shout_box ORDER BY shout_box.id ASC");  
  35.         while($row = mysql_fetch_array($results))  
  36.         {  
  37.             $msg_time = date('h:i A M d',strtotime($row["date_time"])); //message posted time 
  38.             echo '<div class="shout_msg"><time>'.$msg_time.'</time><span class="username">'.$row["user"].'</span> <span class="message">'.$row["message"].'</span></div>'; 
  39.         } 
  40.     } 
  41.     else 
  42.     { 
  43.         header('HTTP/1.1 500 Are you kiddin me?');  
  44.         exit();  
  45.     }  
  46. }  

 


原文地址:http://www.freejs.net/article_biaodan_277.html

<?php define('IN_SITE', true); require(dirname(__FILE__) . '/includes/init.php'); if(trim($_GET['ac']) == 'del') { deletetable('bug', "id='$_GET[bug_id]'"); goto($_SESSION['php_self']); } $_SESSION['php_self'] = geturl(); //echo $_SESSION['php_self']; $pro_id = empty($_GET['pro_id'])?'':intval($_GET['pro_id']); $bug_id = empty($_GET['bug_id'])?'':intval($_GET['bug_id']); $types = set_supetype($_SESSION['supe_type']); $sql = "SELECT * FROM ".tname('project')." WHERE `father` = '$pro_id'"; $pro_list = $db->getAll($sql); $sql = "SELECT pro_name, father, pro_id FROM ".tname('project')." WHERE `pro_id` = '$pro_id'"; $pro_info = $db->getRow($sql); if(!($_SESSION['supe_username'] and (($_SESSION['supe_project']!=$pro_info['pro_id'] ? $_SESSION['supe_project']==$pro_info['father'] : 1) or $_SESSION['supe_type']==-1))) { goto("login.php?pro_id=$pro_id"); } $sql = "SELECT pro_name FROM ".tname('project')." WHERE `pro_id` = '$pro_id'"; $pro_name = $db->getOne($sql); if($bug_id) { $sql = "select * from ".tname('bug')." where id='$bug_id'"; $bug = $db->getRow($sql); } if($_POST['submit']) { if($_POST['bug_id']) { if($_POST['pro_id']) { $pro_id = $_POST['pro_id']; } $sqlarr = array( 'pro_id' => $pro_id, 'title' => $_POST['title'], 'quick' => $_POST['quick'], 'bug' => $_POST['bug'] ); updatetable('bug', $sqlarr, "id='$_POST[bug_id]'"); } else { if($_POST['pro_id']) { $pro_id = $_POST['pro_id']; } $sqlarr = array( 'pro_id' => $pro_id, 'name' => $_SESSION['supe_username'], 'title' => $_POST['title'], 'quick' => $_POST['quick'], 'bug' => $_POST['bug'], 'dateline' => NOW ); inserttable('bug', $sqlarr); } goto("bug_list.php?pro_id=$pro_id"); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?=SITE_CHARSET?>" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <title><?=$_CFG['site_name']?></title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" charset="utf-8" src="includes/editer/kindeditor.js"></script> <script language="javascript"> KE.show({ id : 'bug', cssPath : './css/editer.css', items : [ 'undo', 'redo', 'fontname', 'fontsize', 'textcolor', 'bgcolor', 'bold', 'italic', 'underline', 'removeformat', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist', 'insertunorderedlist', 'image', 'source'] }); function checkuser(frm) { with(frm) { if (title.value.length < 1) { alert('标题不能为空'); title.focus(); return false; } } } </script> </head> <body> <div class="block"> <div class="header"> <div style="height:50px; padding:3px 10px; background:#006CC5; color:#ffffff;"> <div><?=$_SESSION["supe_username"]?>,欢迎您! 用户组:<span class="org"><?=$types['name_type']?></span> <a href="index.php?ac=loginout">退出</a></div> <div class="pro_name"><?=$pro_name?></div> </div> <div class="line_gray white"> <a href="index.php">首页</a> >> <a href="bug_list.php?pro_id=<?=$_GET['pro_id']?>"><?=$pro_name?></a> >> 发布问题 </div> </div> <form name="reg" action="bug.php?pro_id=<?=$pro_id?>" method="post" onsubmit="return checkuser(this);"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td width="80" height="30" align="right">发布人:</td> <td><?php if($bug_id) {echo $bug['name'];} else { echo $_SESSION['supe_username'];}?></td> </tr> <?php if($pro_list) {?> <tr> <td height="30" align="right">项目选择:</td> <td> <select name="pro_id"> <option value="<?=$pro_info['pro_id']?>" <?php if($pro_info['pro_id']==$bug['pro_id']) { echo "selected";}?>><?=$pro_info['pro_name']?></option> <?php if(is_array($pro_list)) { foreach($pro_list as $value) { ?> <option value="<?=$value['pro_id']?>" <?php if($value['pro_id']==$bug['pro_id']) { echo "selected";}?>><?=$value['pro_name']?></option> <?php }}?> </select> </td> </tr> <?php }?> <tr> <td height="30" align="right">标题:</td> <td><input type="text" name="title" id="title" class="mid_input" value="<?=$bug['title']?>"/></td> </tr> <tr> <td height="30" align="right">迫切度:</td> <td> <select name="quick"> <option value="严重" <?php if($bug['quick']=='严重') echo "selected";?>>严重</option> <option value="较急" <?php if($bug['quick']=='较急') echo "selected";?>>较急</option> <option value="一般" <?php if($bug['quick']=='一般') echo "selected";?>>一般</option> </select> </td> </tr> <tr> <td align="right">问题:</td> <td><textarea name="bug" id="bug" style="width:500px; height:230px;"><?=$bug['bug']?></textarea></td> </tr> <tr> <td height="30" height="30"></td> <td> <input type="hidden" name="bug_id" value="<?=$bug_id?>"/> <input type="submit" name="submit" class="submit" value="提交"/> </td> </tr> </table> </form> </div> </body> </html>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值