Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浏览器执行大部分,但不是所有的php_Php - Fatal编程技术网

浏览器执行大部分,但不是所有的php

浏览器执行大部分,但不是所有的php,php,Php,我想知道是否有人能帮我一把。我的浏览器正在执行大部分php代码,但当它到达某一行时,它会打印代码而不是执行代码 我的代码是: <!DOCTYPE html> <html> <body> <?php //Display registration form function register_form(){ $date = date('D, M, Y'); echo <form action='?act=register' method=

我想知道是否有人能帮我一把。我的浏览器正在执行大部分php代码,但当它到达某一行时,它会打印代码而不是执行代码

我的代码是:

<!DOCTYPE html>
<html>
<body>

<?php


//Display registration form

function register_form(){


$date = date('D, M, Y');

echo <form action='?act=register' method='post'>

Username: <input type='text' name='username' size='30'><br>

Password: <input type='password' name='password' size='30'><br>

Confirm your password: <input type='password' name='password_conf' size='30'><br>

Email: <input type='text' name='email' size='30'><br>

<input type='hidden' name='date' value='$date'>

<input type='submit' value='Register'>

</form>;


}
?>

<?php


//Register users data.

function register(){


//Connecting to database

$connect = mysql_connect("localhost", "username" "password");

if(!$connect){

die(mysql_error());

}


//Selecting database

$select_db = mysql_select_db("database", $connect);

if(!$select_db){

die(mysql_error());

}
?>

<?php


//Collecting info

$username = $_REQUEST['username'];

$password = $_REQUEST['password'];

$pass_conf = $_REQUEST['password_conf'];

$email = $_REQUEST['email'];

$date = $_REQUEST['date'];


//Check input fields


if(!empty($username)){

die("Please enter your username!<br>");

}

if(!empty($password)){

die('Please enter your password!<br>');

}

if(!empty($pass_conf)){

die("Please confirm your password!<br>");

}

if(!empty($email)){

die("Please enter your email!");

}
?>

<?php


//Check username availability


$user_check = mysql_query("SELECT username FROM users WHERE username='$username'");

$do_user_check = mysql_num_rows($user_check);

//Check if email availability


$email_check = mysql_query("SELECT email FROM users WHERE email='$email'");

$do_email_check = mysql_num_rows($email_check);

//Display errors


if($do_user_check > 0){

die("Username is already in use!<br>");

}

if($do_email_check > 0){

die("Email is already in use!");

}

//Check if passwords match


if($password != $pass_conf){

die("Passwords don't match!");

}

?>

<?php

//Register user


$insert = mysql_query("INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')");

if(!$insert){

die("There's little problem: ".mysql_error());

}


echo $username.", you are now registered. Thank you!<br><a href=login.php>Login</a>" ;


}
?>

<?php

switch($act){


default;

register_form();

break;


case "register";

register();

break;


}


?>
</body>
</html>


您需要在回显字符串周围加上双引号。(双引号,因为在标记中使用单引号)。如果删除php标记,它将被解释为HTML,也就是说,它将被发送到浏览器。 如果出于某种原因您不喜欢引用,您可能希望将其作为一个here文档:

echo <<<EOF
<form action='?act=register' method='post'>

Username: <input type='text' name='username' size='30'><br>
...
EOF 

echo由于字符串中使用了单引号,因此在任何要被
回送的内容周围加上双引号。一个简单的例子:

另外,你也有一些其他语法错误,但如果你在意的话

其中一个在第45行:
$connect=mysql\u connect(“localhost”,“username”“password”)这绝对不是应该的方式。即使是,

注意`“username”后面缺少的
逗号
。应该是这样的:

对于当前问题,请尝试以下操作:

<?php


//Display registration form

function register_form(){


$date = date('D, M, Y');

echo "<form action='?act=register' method='post'>

Username: <input type='text' name='username' size='30'><br>

Password: <input type='password' name='password' size='30'><br>

Confirm your password: <input type='password' name='password_conf' size='30'><br>

Email: <input type='text' name='email' size='30'><br>

<input type='hidden' name='date' value='$date'>

<input type='submit' value='Register'>

</form>;";


}
?>

回声的qoutes在哪里?应该是
echo“some string here”
不是您的浏览器执行
php
php
是一种服务器端语言。那么,这段代码到底是如何执行的呢?您有语法错误。这也有助于说明你在哪一行遇到了问题。那么问题在哪里呢?所以我加了双引号。这修复了浏览器上显示的一些代码,现在它继续显示
“;}?>”;})if(!empty($password)){die('Please enter password!');}if(!empty($passconf)){die('Please conf!');}if(!empty($email)){die('Please enter your email!');}>0{die('do_email_check>0){die('email已经在使用中!);}//现在让我们检查密码是否匹配($password!=$pass_conf){die(“密码不匹配!”);}?>登录"}?>
另外,你能解释一下你对第45行的解释是什么意思吗?@Madness你能告诉我你一直在显示的意思吗?是你在评论中写的代码吗?如果是的话,请用你写代码的确切方法编辑你的问题,这样我们就可以理解你想表达的意思了做。另一方面,请从mysqli或PDO开始,即使是出于练习目的。我来这里是为了尽可能地消除任何进一步的疑问/问题。谢谢。我想我会说,不是执行上面的代码,服务器会在表单显示后在浏览器上打印它。因此,不只是表单可见,它是表单加上它旁边的打印代码。@Madness这显然意味着您没有在localhost上运行它。请检查您的url,确保您在localhost上运行,而不是在目录上运行likefile:///C:/xamppWasn我不打算实现它,这纯粹是为了我练习一些PHP和mysql。不过谢谢你的提醒。
<?php


//Display registration form

function register_form(){


$date = date('D, M, Y');

echo "<form action='?act=register' method='post'>

Username: <input type='text' name='username' size='30'><br>

Password: <input type='password' name='password' size='30'><br>

Confirm your password: <input type='password' name='password_conf' size='30'><br>

Email: <input type='text' name='email' size='30'><br>

<input type='hidden' name='date' value='$date'>

<input type='submit' value='Register'>

</form>;";


}
?>