【问题标题】:PHP code is showing in the webpage while executingPHP 代码在执行时显示在网页中
【发布时间】:2017-06-25 12:06:22
【问题描述】:

我是 php 新手,我正在尝试编写一个注册页面。但是出了点问题。每次我尝试执行代码时,我的页面中都会出现类似的内容

数据库详情

数据库名称:cibil, 表名:表{id,用户名,密码,电子邮件 }

 query($sql)===true) { $_SESSION['message']='You are successfully added';
       $_SESSION['username']=$user; $_SESSION['email']=$email; 
       header(location:page.php); } else{ $_SESSION['message']='Something went wrong'; } } ?>

我的代码是

<? php
session_start()
$_SESSION['message']='';
if($_SERVER['REQUEST_METHOD']=='POST')
    {  
        $conn=new mysqli('localhost','root','','cibil') or die("error");
        $user=$_POST['user'];
        $pass=$_POST['pass'];
        $email=$_POST['email'];
        $sql="INSERT INFO table (username, password,email)VALUES('$user','$pass','$email')";
        if($conn->query($sql)===true)
        { 
            $_SESSION['message']='You are successfully added';
            $_SESSION['username']=$user;
            $_SESSION['email']=$email;
            header(location:page.php);
        }
        else{
            $_SESSION['message']='Something went wrong';
        }

    }
?>
<!DOCTYPE html>
<html>
<head>
  <title>Register form</title>
  <link rel="stylesheet" type="text/css" href="reg_style.css">
</head>
<body>
<div id="h1">
<h1>Registration Page</h1>
</div>
<div id="err"><? php echo $_SESSION['message'] ?></div>
<div id='form'>
<form method="post" name='form' onsubmit="return rvalidate()" action="">
  <p class="error">*Required</p>
  <label for="user">Enter Your Name* : </label>
  <input id="user" type="text" name="user" class="field">
  <span class='error'></span><br><br>
  <label for="email">Enter Your Email : </label>
  <input id="email" type="text" name="email" class="field">
  <br><br>
  <label for="pass">Enter Your Password* : </label>
  <input type="password" id="pass" name="pass" class="field"><span class='error'></span><br><br>
  <label for="rpass">Re-Enter Your Password* : </label>
  <input type="password" id="rpass" name="rpass" class="field"><span class='error'></span><br><br>
<input type="submit" id='submit' class="field" value="SUBMIT" onclick="validate();" >
</form>
</div>
<br><br>
<div id="login_text">
<b>If you are already register </b><br><a href="login.php">Click here</a>
</div>
<script type="text/javascript">
    var error=document.getElementsByTagName('span');
    var user=document.form.user;
    var pass=document.form.pass;
    var rpass=document.form.rpass;
function validate()
{
    if(user.value==="")
    {
        error[0].innerHTML="*Enter Your name";
        user.setAttribute("style","border-color:green");
    }else{
        error[0].innerHTML="";
        user.setAttribute("style","border-color:initial");
    }
    if(pass.value=="")
    {
        error[1].innerHTML="*Password is Required";
        pass.setAttribute("style","border-color:green");
    }else{
        error[1].innerHTML="";
        pass.setAttribute("style","border-color:initial");
    }
    if(pass.value!==rpass.value)
    {
        error[2].innerHTML="*Password Missmatch";
        rpass.setAttribute("style","border-color:green");
    }else{
        error[2].innerHTML="";
        rpass.setAttribute("style","border-color:initial");
    }

}
function rvalidate()
{
    if (error[0].innerHTML=="" && error[1].innerHTML=="" && error[2].innerHTML=="") {
        return true;
    }
    else{
        return false;
    }
}
</script>
</body>
</html>

感谢您的帮助............

【问题讨论】:

  • 问题出在哪里??
  • 我认为您在编辑时删除的显示文本有助于调试。

标签: php session


【解决方案1】:

您的代码未执行并显示为文本,因为您在 ? 之间有空格和 php 在代码的开头。尝试从<?php session_start(); 开始。然后你就可以调试所有其他的了:)

【讨论】:

    【解决方案2】:
    <div id="err"><? php echo $_SESSION['message'] 
    

    如果您注意到 ?而PHP,这可能会影响带来的输出。有几个地方你的引号不匹配,所以如果你检查引号是否在不应该关闭的地方相互关闭,那么你应该没问题

    您的文件名正确吗?如果它是 .htm 或 .html 文件,它可能无法解析 PHP,这也可能是您遇到的另一个问题

    【讨论】:

      【解决方案3】:

      您的 php 代码开头有一个空格:

      <? php
      

      应该是:

      <?php
      

      【讨论】:

        【解决方案4】:

        您的代码:

        $sql="INSERT INFO table (username, password,email)VALUES('$user','$pass','$email')";
        

        必须不带`...`:

        $sql="INSERT INFO table (username, password,email)VALUES($user, $pass, $email)";
        

        【讨论】:

        • 不,值必须用引号引起来,除非值是数字。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-31
        相关资源
        最近更新 更多