浏览器执行大部分,但不是所有的php
我想知道是否有人能帮我一把。我的浏览器正在执行大部分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=
<!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>;";
}
?>