PHP经典项目案例-(一)博客管理系统4
本篇使用Ajax实现页面无刷新验证用户名是否存在。
七、注册页面实现
1、注册页面设计
register.php部分代码:
<tr> <!-- 注册表 --> <td colspan="3" valign="baseline" style="BACKGROUND-IMAGE: url( images/bg.jpg); VERTICAL-ALIGN: middle; HEIGHT: 450px; TEXT-ALIGN: center"> <br> <form name="myform" action="register_deal.php" method="post"> <table width="85%" border="1" align="center" cellpadding="3" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF" class="i_table"> <tr align="left" bgcolor="#EFF7DE"> <td height="22" colspan="2" bgcolor="#EFF7DE" class="right_head"><span class="tableBorder_LTR">必填内容</span></td> </tr> <tr bgcolor="#FFFFFF"> <td width="22%" align="right" valign="middle" class="'f_one'"> 用户名</td> <td width="78%" align="left" class="'f_one'"> <input name="'txt_regname'" type="text" id="txt_regname" value="''" size="20" maxlength="14" onblur="javascript:chkUserName();"> <label id="l1">*</label><label id="ll1" class="label2"></label> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" valign="middle"> 真实姓名</td> <td align="left"> <input name="'txt_regrealname'" type="'text'" id="txt_regrealname" size="'20'" maxlength="'75'" onblur="javascript:chkRealName()"> <label id="l4">*</label><label id="ll4" class="label2"></label> </td> </tr> <tr> </tr> <tr bgcolor="#FFFFFF"> <td align="right" valign="middle"> 密码</td> <td align="left"> <input name="'txt_regpwd'" type="'password'" id="txt_regpwd" size="20" maxlength="75" onblur="javascript:chkPwd();"> 英文字母或数字等不少于3位<label id="l2">*</label><label id="ll2" class="label2"></label> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" valign="middle"> 确认密码</td> <td align="left"> <input name="'txt_regpwd2'" type="'password'" id="txt_regpwd2" size="20" maxlength="75" onblur="javascript:chkRePwd()"> <label id="l3">*</label><label id="ll3" class="label2"></label> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right"> 出生日期</td> <td align="left"> <span class="word_grey"> <input name="txt_birthday" type="text" id="birth" onblur="javascript:chkBirth()"> (日期格式为:yyyy-mm-dd)<label id="l6">*</label><label id="ll6" class="label2"></label></span> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" valign="middle"> Email</td> <td align="left"> <input name="txt_regemail" type="text" id="txt_regemail" value="''" size="35" maxlength="75" onblur="javascript:chrEmail()"> <font color="'#000000'">公开邮箱 <label id="l5">*</label><label id="ll5" class="label2"></label></font> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right">所在城市</td> <td align="left"> <select name="txt_province" id="txt_province" onchange="javascript:initcity();"> <script>creatprovince();</script> </select> <select name="txt_city" id="txt_city"> </select> <font color="red">*</font> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" valign="middle" class="'f_one'"> 选择头像:</td> <td align="left" class="'f_one'"><table width="106" cellpadding="0" cellspacing="0"> <tr> <td width="10" height="47"> </td> <td width="80"><img src="images/head/0.gif" name="img" id="image" style="max-width:90%" style="max-width:90%" alt="七、注册页面实现" ></td> <td width="53" rowspan="2" align="center"><font color="red">*</font></td> </tr> <tr> <td> </td> <td> <select name="txt_ico" size="1" id="txt_ico" onchange="javascript:showlogo()"> <option value="0.gif" selected>头像1 </option> <option value="1.gif">头像2 </option> <option value="2.gif">头像3 </option> <option value="3.gif">头像4</option> <option value="4.gif">头像5</option> <option value="5.gif">头像6</option> </select> </td> </tr> </table></td> </tr> <tr align="left" bgcolor="#EFF7DE"> <td height="22" colspan="2" class="right_head"><span class="tableBorder_LTR">选填内容</span></td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" class="'f_one'"> 性别</td> <td align="left" class="'f_one'"> <select name="txt_regsex" id="txt_regsex"> <option value="1">男</option> <option value="2">女</option> <option value="0" selected>保密</option> </select> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" class="'f_one'">QQ</td> <td align="left" class="'f_one'"><input name="'txt_regqq'" type="text" id="txt_regqq" value="''" size="20" maxlength="14"></td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" class="'f_one'"> 个人主页</td> <td align="left" class="'f_one'"> <input name="'txt_reghomepage'" type="text" id="txt_reghomepage" value="''" size="40" maxlength="75"> </td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" valign="middle" class="'f_one'">个性化签名</td> <td align="left" class="'f_one'"><textarea name="'txt_regsign'" cols="50" rows="'4'" id="txt_regsign"></textarea></td> </tr> <tr bgcolor="#FFFFFF"> <td align="right" class="'f_one'"> 自我简介</td> <td align="left" class="'f_one'"><textarea name="txt_regintroduce" cols="50" rows="4" id="txt_regintroduce"></textarea></td> </tr> </table> <br> <input type="'submit'" name="'regsubmit'" value="'提" onclick="return check()"> <input name="reset" type="reset" class="btn_grey" value="重 填"> </form> </td> </tr>
2、输入框失去焦点后调用的javascript函数实现:fun.js:
function chkUserName(){ var c = document.getElementById('txt_regname'); var d = c.value; var id; if(d==""){ document.getElementById('l1').innerText="请输入用户名"; document.getElementById('ll1').innerText=""; }else{ var xmlObj; xmlObj = new XMLHttpRequest(); xmlObj.open('POST','chk.php?d='+d,true); xmlObj.onreadystatechange = callBackFun; xmlObj.send(null); function callBackFun() { if(xmlObj.readyState == 4&&xmlObj.status ==200){ if(xmlObj.responseText=='y'){ document.getElementById('l1').innerText="×"; document.getElementById('ll1').innerText=""; }else{ document.getElementById('l1').innerText=""; document.getElementById('ll1').innerText="√"; } } } }}function chkRealName(){ var c = document.getElementById('txt_regrealname'); var d = c.value; if(d==""){ document.getElementById('l4').innerText="请输入真实姓名"; document.getElementById('ll4').innerText=""; }else{ document.getElementById('l4').innerText=""; document.getElementById('ll4').innerText="√"; }}function chkPwd(){ var p = document.getElementById('txt_regpwd').value; var c = document.getElementById('ll1').innerText; if(c=="√"){ if(p==""){ document.getElementById('l2').innerText="请输入密码"; } else if(p.length<br><h2 id="Ajax验证用户名使用的处理文件chk-php">3、Ajax验证用户名使用的处理文件chk.php:</h2><p>'</p><pre name="code" class="php"><?php require_once 'Conn/SqlHelper.class.php'; $chk = $_REQUEST['d']; $sqlHelper = new SqlHelper(); $sql = "select * from tb_user where regname='$chk';"; $res = $sqlHelper->execute_dql($sql); $s = $res->fetch_assoc(); if(count($s)!=0){ echo 'y'; }else{ echo 'n'; }
4、注册后将用户添加到数据库registerdeal.php
<?phpsession_start ();include "Conn/SqlHelper.class.php";$sqlHelper = new SqlHelper();$UserName=$_POST['txt_regname'];$sql="select * from tb_user where regname = '$UserName'";$res = $sqlHelper->execute_dql($sql);$result=$res->fetch_assoc();if (count($result)!=0){ echo ("<script>alert('用户名已被注册!');history.go(-1);</script>"); exit();}$_SESSION['username']=$_POST['txt_regname'];$regname=$_POST['txt_regname'];$regrealname=$_POST['txt_regrealname'];$regpwd=$_POST['txt_regpwd'];$regbirthday=$_POST['txt_birthday'];$regemail=$_POST['txt_regemail'];$regcity=$_POST['txt_province'].$_POST['txt_city'];$regico=$_POST['txt_ico'];$regsex=$_POST['txt_regsex'];$regqq=$_POST['txt_regqq'];$reghomepage=$_POST['txt_reghomepage'];$regsign=$_POST['txt_regsign'];$regintroduce=$_POST['txt_regintroduce'];$ip=getenv(REMOTE_ADDR);$sql = "Insert Into tb_user (regname,regrealname,regpwd,regbirthday,regemail,regcity,regico,regsex,regqq,reghomepage,regsign,regintroduce,ip,fig)"." Values ('$regname','$regrealname','$regpwd','$regbirthday','$regemail','$regcity','$regico','$regsex','$regqq','$reghomepage','$regsign','$regintroduce','$ip',0)";$INS=$sqlHelper->execute_dml($sql);echo "<script> alert('用户注册成功!');</script>";echo "<script> window.location='index.php';</script>";?>

PHP在现代Web开发中仍然重要,尤其在内容管理和电子商务平台。1)PHP拥有丰富的生态系统和强大框架支持,如Laravel和Symfony。2)性能优化可通过OPcache和Nginx实现。3)PHP8.0引入JIT编译器,提升性能。4)云原生应用通过Docker和Kubernetes部署,提高灵活性和可扩展性。

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

禅工作室 13.0.1
功能强大的PHP集成开发环境

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver CS6
视觉化网页开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。