• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

HTML中利用JS调用PHP (以登录为例)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近在做 Login 和 Register 的东西,因为需要用到 session 来存储用户的 id 和 用户名,所以需要调用 php 中的 session。由于不会 Ajax, 所以不得不用一些笨办法。通过在网上查,发现可以进行一下操作来在 html 中调用 PHP 的东西。

前提:session 中有两个变量,一个 username, 一个 userid,此处用不到 userid

首先来看 login 部分的 html 代码:

login.html (前面比较长可以不看,都是CSS样式)

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>Login</title>
 6 <link href="css/login-css.css" type="text/css" rel="stylesheet"/>
 7     <link rel="stylesheet" href="style.css">
 8     <link rel="stylesheet" href="css/style.css">
 9 <style>
10 
11     .login{
12         border-style:solid;
13         border-width:medium;
14         height:30%;
15         width:20%;
16         margin-left:40%;
17     }
18     .container {
19         padding-left:25%;
20         padding-right:25%;
21         padding-top:10%;
22     }
23     h1 {
24         text-align:center;
25     }
26     .btn_log {
27         margin-left:25%;
28         margin-bottom:10%;
29         float:left;
30     }
31     #btn_register {
32         margin-left:15%;
33         padding-bottom:10%;
34     }
35     /* 这个部分是在按键的下方又增加了一个div块,因为用了浮动以后margin-bottom就无效了,所以加了一个div的块来增加空白位置 */
36     #add_blank {
37         padding-bottom:15%;
38     }
39     
40 </style>
41 </head>
42 
43 <body>
44 <div class="logo">
45     <img src="images/logo-new.png">
46 </div>
47 <div class="con">
48 
49     <div id="navcontainer">
50         <ul id="navlist" style="list-style: none;">
51             <li style="float:left;margin-left:29px;" id="active"><a href="PetC.html" id="current">HOME</a></li>
52             <li style="float:left;margin-left:29px;" onmouseover="ShowSub(this)" onmouseout="HideSub(this)"  >
53                 <a href="products.html" >Product</a>
54                 <ul style="position:absolute; display:none;" >
55                     <li  style="color:black; background-color:#4d4d4d;display:block;"><a href="service.html" style="z-index:9;">service</a></li>
56                     <li  style="color:black; background-color:#4d4d4d;display:block;"><a href="daycare.html" style="z-index:9;">Daycare</a></li>
57                 </ul>
58             </li>
59             <li style="float:left;margin-left:29px;"><a href="login.html">Login</a></li>
60             <li style="float:left;margin-left:29px;"><a href="Register.html">Register</a></li>
61             <li style="float:left;margin-left:29px;"><a href="my.html">My Order</a></li>
62             <li style="float:left;margin-left:29px;"><a href="#">Contact</a></li>
63         </ul>
64 
65     </div>
66 </div>
67     <div class="login">
68         <form id="login_form" action="login.php" method="post"> 
69             <div class="container">
70                 <h1>Login</h1>
71                 <label><b>Username</b></label><br/>
72                 <input type="text" name="username" required>
73                 <br/><br/>
74                 <label><b>Password</b></label><br/>
75                 <input type="password" name="password" required>
76             </div>
77             <br/>
78             <div class="btn_log">
79                 <input type="submit" name="submit" value="Login">
80             </div>        
81         </form>
82         <a id="btn_register" href="Register.html"><button>Register</button></a>
83         <div id="add_blank"></div>
84     </div>
85 </body>
86 
87 </html>

 

其次来看 login 的 php 代码:

login.php

 1 <?php
 2 
 3 //************添加内容***************
 4 session_start();
 5 //************添加内容***************
 6 
 7 if(!isset($_POST[\'submit\'])){
 8     exit(\'Invalid Visit!\');
 9 }
10 
11 
12 // Create connection
13 $conn = mysqli_connect("localhost","root","","PetDB");
14 
15 // Check connection
16 if (!$conn) {
17     die("Connection failed: " . mysqli_connect_error());
18 }
19 
20 //session_start();
21 
22 $username = htmlspecialchars($_POST[\'username\']);
23 $password = MD5($_POST[\'password\']);
24 
25 //检测用户名及密码是否正确
26 $check_query = mysqli_query($conn,"SELECT id FROM user WHERE userName=\'$username\' and passWd=\'$password\' limit 1");
27 if($result = mysqli_fetch_array($check_query)){
28     //登录成功
29 
30 //************添加内容***************
31 //将登陆用户的用户名及数据库id存在session中
32     $_SESSION[\'username\'] = $username;
33     $_SESSION[\'userid\'] = $result[\'id\'];
34 //************添加内容***************
35 
36 //    echo "<script language=\"JavaScript\">alert(\'$username,welcome\');</script>";
37 //    echo "<script language=javascript>alert($username,\'Welcome<br/>\');</script>";
38 //    echo $username,\' Welcome<br/>\';
39 //    echo \'Click here to <a href="login.html?action=logout">Logout</a><br />\';
40     header("Location: PetC");  
41     exit;
42 } else {
43     exit(\'Failed to login!Click here to <a href="javascript:history.back(-1);">Return</a>\');
44 }
45 
46 ?>

 

在 login.php 中可以看到启用了 session,并有 username 和 userid 两个变量。并有一些数据库的使用。

****************************************************************重点来了*************************************************

再其次看主页的部分,因为主页(PetC.html)比较长所以就主要放核心部分的代码。

 

首先来看 logout.php 的代码,因为比较简单。

logout.php

1 <?php
2 session_start();
3 session_unset();
4 session_destroy();
5 
6 header("location:home.html");
7 exit();
8 ?>

这个没什么解释的,就是销毁一下session。

接下来看一下 index.php

home.php

1 <?php  
2     session_start();
3 //获取session中保存的username
4     if (isset($_SESSION[\'username\'])) {
5     $logprint = $_SESSION[\'username\'];
6     }
7 //将获取值以JS的结构传回
8     echo "var log="."\'$logprint\';";   
9 ?>  

 

这个里面比较重点的部分是php 部分需要将变量以 JS 的语言形式回传,这样在html 中才可以利用 JS 来调用php 中的变量。其中  echo "var log="."\'$logprint\';";  中的 . 是用来连接两部分的。需要注意引号的分割。并不是将 . 括了起来。

 

最后就是 PetC.html 的部分

home.html (为了完整性copy了下来,主要是对第11和第15行的操作)

 1 <div id="navcontainer" style="text-align:center;">
 2     <ul id="navlist" style="list-style: none;">
 3         <li style="float:left;margin-left:29px;" id="active"><a href="#" id="current">HOME</a></li>
 4         <li style="float:left;margin-left:29px;" onmouseover="ShowSub(this)" onmouseout="HideSub(this)"  >
 5             <a href="products.html" >Product</a>
 6             <ul style="position:absolute; display:none;" >
 7                 <li  style="color:black; background-color:#4d4d4d;display:block;"><a href="service.html" style="z-index:9;">service</a></li>
 8                 <li  style="color:black; background-color:#4d4d4d;display:block;"><a href="daycare.html" style="z-index:9;">Daycare</a></li>
 9             </ul>
10         </li>
11         <li id="loginout" style="float:left;margin-left:29px;"></li> 
12         <li style="float:left;margin-left:29px;"><a href="Register.html">Register</a></li>
13         <li style="float:left;margin-left:29px;"><a href="login.html">Log In</a></li>
14         <li style="float:left;margin-left:29px;"><a href="daycare.html">My Order</a></li>
15         <li id="logname" style="float:left;margin-left:29px;"></li>
16     </ul>
17 </div>
18 
19 <!--用JS将php内的数据调过来显示,一定放在修改过的“li”的标签后面-->            
20         <script type="text/javascript" src="PetC.php">  
21         </script>  
22         <script type="text/javascript" >  
23             if(!log) {
24                 document.getElementById("logname").innerHTML = \'<a href="login">Login</a>\';
25             }else {
26                 document.getElementById("loginout").innerHTML = \'<a href="logout.php">\'+"Logout"+\'</a>\';
27                 document.getElementById("logname").innerHTML = \'<a href="#">\'+log+\'</a>\';
28             }
29         </script> 
30 <!--****************添加内容****************************-->        

 

可以看到,html 中利用 JS 将 php 中的值取了过来,并对相应的列表进行了注入。 其中需要注意的是,当注入的时候有标签和变量同时存在的时候,需要用 "+" 来进行连接,即最后一个注入的形式。

 

第一次接触 php,算是做一个小的经验总结吧。其实好像全部页面用 php 写会更方便一些。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用PHP CURL 模拟HTTP实现在线请求工具-toolfk程序员工具网发布时间:2022-07-10
下一篇:
PHP快速入门发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap