基本功能:能登陆,聊天,记录在线人数IP事件,能控制聊天的字体颜色,自动把转化聊天中网址为链接地址,能定制聊天室标题、广告信息等等。使用文本作为存储媒体,又兴趣可以参考代码,并且进行扩展。
其实PHP作为快速开发的脚本语言是很棒的!
===代码===
以下为引用的内容: /** * 黑夜路人简易聊天室 * 作者: heiyeluren * 创建: 2005-8-10 22:42 * 修改: 2005-8-11 23:25 */ error_reporting(7); session_start(); header("ContentType:text/html;charset=gb2312"); define("SCRIPT", $_SERVER['SCRIPT_NAME']); define("CHAT_NOTE", "./chat.txt"); define("ONLINE_LIST", "./online.txt"); define("REF_TIME", 5); define("CHAT_NAME", "黑夜路人聊天室"); define("AD_MSG", "今天是中国情人节, 祝大家情人节快乐!!"); //获取值 if (isset($_GET['action']) && !empty($_GET['action'])) { $action = $_GET['action']; } //如果已经登陆那么直接跳到聊天界面 if (!isset($_GET['action']) && isset($_SESSION['username'])) { header("location:".SCRIPT."?action=chat"); } //登陆提示 if (!isset($_GET['action'])) { if (!session_is_registered('username')) { echo " [ ".CHAT_NAME." ] © 2005
"; exit; } } //校验登陆 if ($action=='login') { if (isset($_POST['login_user']) && !empty($_POST['login_user'])) { $username = $_POST['login_user']; } else { $username = "游客"; } session_register('username'); save_online($username, get_client_ip()); header("location:".SCRIPT."?action=chat"); } //开始聊天www.knowsky.com if ($action=="chat") { $online_sum = get_online_sum(); echo " name=show_win width=800 height=450 scrolling=auto frameborder=0> [当前在线:$online_sum] height=60 scrolling=no frameborder=0> "; } //说话界面 if ($action=="say") { echo " onSubmit='return check()'> [".$_SESSION['username']."]说:maxlength=500 name=chatmsg style=' background-color:#99CC99; width:550px; height:22px; border:1px solid:#000000'> target=_top onclick='return confirm("你确定要退出聊天室吗?")'>退出 <script>function check(){if(document.chat.chatmsg.value=='')<br />{;alert('请输入聊天信息!');return false;}return true;}</script> "; } //保存说话 if ($action=="save") { if ($_POST['chatmsg']!="") { save_chat($_POST['chatmsg'], $_SESSION['username'], $_POST['usercolor']); } header("location:".SCRIPT."?action=say"); } //显示聊天记录 if ($action=="show") { echo ""; echo "CONTENT='".REF_TIME.";URL=".SCRIPT."?action=show'>"; if (file_exists(CHAT_NOTE)) { $chat_msg = @file_get_contents(CHAT_NOTE); echo $chat_msg; } else { echo "目前没有人说话"; } } //退出聊天室 if ($action=="logoff") { unset($_SESSION['username']); session_destroy(); header("location:".SCRIPT); } /* 基本函数 */ //保存聊天记录函数 function save_chat($msg, $user, $color) { if (!$fp = fopen(CHAT_NOTE, "a+")) { die('创建聊天记录文件失败, 请检查是否有权限.'); } $msg = htmlspecialchars($msg); $msg = preg_replace('/([http|ftp:\/\/])*([a-zA-]) +\.([a-zA-Z0-9_-])+\.([a-zA-Z0-9_-])+(a-zA-Z0-9_)*/', ' \0', $msg); $msg = preg_replace('/([a-zA-Z0-9_\.])+@([a-zA-Z0-9-]) +\.([a-zA-Z0-9-]{2,4})+/', '\0', $msg); $msg = date('H:i:s')." [".$user."]说: ".$msg." \r\n"; if (!fwrite($fp, $msg)) { die('写入聊天记录失败.'); } fclose($fp); } //写在线人信息 function save_online($user, $ip) { if (!$fp = fopen(ONLINE_LIST, "a+")) { die("创建在线列表文件失败, 请检查是否有权限."); } $user = str_replace("|", "", $user); $line = $user."|".$ip."|".time()."\r\n"; if (!fwrite($fp, $line)) { die("写入在线列表失败."); } fclose($fp); } //获取在线人数 function get_online_sum() { if (file_exists(ONLINE_LIST)) { $online_msg = file(ONLINE_LIST); return count($online_msg); } else { return 0; } } //获取当前登陆用户IP function get_client_ip() { if ($_SERVER['REMOTE_ADDR']) { $cip = $_SERVER['REMOTE_ADDR']; } elseif (getenv("REMOTE_ADDR")) { $cip = getenv("REMOTE_ADDR"); } elseif (getenv("HTTP_CLIENT_IP")) { $cip = getenv("HTTP_CLIENT_IP"); } else { $cip = "unknown"; } return $cip; } ?> |

phpsessionscanstorestrings, 숫자, 배열 및 객체 1.Strings : TextDatalikeUsernames.2.numbers : integorfloatsforcounters.3.arrays : listslikeshoppingcarts.4.objects : complexStructuresThatareserialized.

세션 재생은 세션 고정 공격의 경우 사용자가 민감한 작업을 수행 할 때 새 세션 ID를 생성하고 이전 ID를 무효화하는 것을 말합니다. 구현 단계에는 다음이 포함됩니다. 1. 민감한 작업 감지, 2. 새 세션 ID 생성, 3. 오래된 세션 ID 파괴, 4. 사용자 측 세션 정보 업데이트.

PHP 세션은 응용 프로그램 성능에 큰 영향을 미칩니다. 최적화 방법은 다음과 같습니다. 1. 데이터베이스를 사용하여 세션 데이터를 저장하여 응답 속도를 향상시킵니다. 2. 세션 데이터 사용을 줄이고 필요한 정보 만 저장하십시오. 3. 비 차단 세션 프로세서를 사용하여 동시성 기능을 향상시킵니다. 4. 사용자 경험과 서버 부담의 균형을 맞추기 위해 세션 만료 시간을 조정하십시오. 5. 영구 세션을 사용하여 데이터 읽기 및 쓰기 시간의 수를 줄입니다.

phpsessionsareser-side, whilecookiesareclient-side.1) sessions stessoredataontheserver, andhandlargerdata.2) cookiesstoredataonthecure, andlimitedinsize.usesessionsforsensitivestataondcookiesfornon-sensistive, client-sensation.

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版
시각적 웹 개발 도구
