仅当php语句为true时,才在其他.php文件中显示DIV
快速提问。我是新手所以, 注册成功时,我希望显示带有消息(值)的仅当php语句为true时,才在其他.php文件中显示DIV,php,Php,快速提问。我是新手所以, 注册成功时,我希望显示带有消息(值)的。 所以,如果一切正常,那么应该只显示在另一个带有HTML代码的.php文件中 我试着把它还给你,但不知道如何用正确的方法 注意: 现在我使用的是global,但我想把它扔掉 所以我在function.php中有一个函数,如果 function createUser(){ global $welcome; $connection = connectDB(); $username = $_POST['u
。
所以,如果一切正常,那么应该只显示在另一个带有HTML代码的.php文件中
我试着把它还给你,但不知道如何用正确的方法
注意:
- 现在我使用的是
,但我想把它扔掉global
function.php
中有一个函数,如果
function createUser(){
global $welcome;
$connection = connectDB();
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$passwordConfirm = $_POST["passwordConfirm"];
$username = mysqli_real_escape_string($connection, $username);
$email = mysqli_real_escape_string($connection, $email);
$password = mysqli_real_escape_string($connection, $password);
$passwordConfirm = mysqli_real_escape_string($connection, $passwordConfirm);
if($_POST['password'] !== $_POST['passwordConfirm']){
$error = exit("Password does not match.");
}
$hashFormat = "$2y$10$";
$salt = "iusesomecrazystrings22";
$hash = $hashFormat . $salt;
$password = crypt($password, $hash);
$query = "INSERT INTO users(username, email, password) VALUES ('$username', '$email', '$password')";
$result = mysqli_query($connection, $query);
if(!$result){
die("Query FAILED " . mysqli_error($connection));
} else{
$welcome = "Registration Success";
}
}
在另一个文件中,我有如下内容:
<?php
include 'functions.php';
global $welcome;
if(isset($_POST['submit'])){
createUser();
}
?>
<div class="row justify-content-md-center">
<form action="register.php" method="post">
<div class="form-group">
<input type="text" name="username" class="form-control" placeholder="Username" style="text-align: center" required>
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email" style="text-align: center" required>
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Password" style="text-align: center" required>
</div>
<div class="form-group">
<input type="password" name="passwordConfirm" class="form-control" placeholder="Confirm Password" style="text-align: center" required>
</div>
<div class="row justify-content-md-center">
<input type="submit" name="submit" value="SIGN UP" class="btn btn-primary">
</div>
<p></p>
<div class="row justify-content-md-center">
<?php echo $welcome; ?>
</div>
</form>
</div>
if(isset($_POST['submit'])){
$message = createUser();
}
所以我就这样做了
我应该如何返回
而不是$welcome=“注册成功”
,仅当$result为true时才显示该消息,最后将该消息打印到包含HTML的其他文件中。您可以从函数返回$message并按如下方式接收该消息:
<?php
include 'functions.php';
global $welcome;
if(isset($_POST['submit'])){
createUser();
}
?>
<div class="row justify-content-md-center">
<form action="register.php" method="post">
<div class="form-group">
<input type="text" name="username" class="form-control" placeholder="Username" style="text-align: center" required>
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email" style="text-align: center" required>
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Password" style="text-align: center" required>
</div>
<div class="form-group">
<input type="password" name="passwordConfirm" class="form-control" placeholder="Confirm Password" style="text-align: center" required>
</div>
<div class="row justify-content-md-center">
<input type="submit" name="submit" value="SIGN UP" class="btn btn-primary">
</div>
<p></p>
<div class="row justify-content-md-center">
<?php echo $welcome; ?>
</div>
</form>
</div>
if(isset($_POST['submit'])){
$message = createUser();
}
并修改函数createUser,如下所示:
<?php
include 'functions.php';
global $welcome;
if(isset($_POST['submit'])){
createUser();
}
?>
<div class="row justify-content-md-center">
<form action="register.php" method="post">
<div class="form-group">
<input type="text" name="username" class="form-control" placeholder="Username" style="text-align: center" required>
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email" style="text-align: center" required>
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Password" style="text-align: center" required>
</div>
<div class="form-group">
<input type="password" name="passwordConfirm" class="form-control" placeholder="Confirm Password" style="text-align: center" required>
</div>
<div class="row justify-content-md-center">
<input type="submit" name="submit" value="SIGN UP" class="btn btn-primary">
</div>
<p></p>
<div class="row justify-content-md-center">
<?php echo $welcome; ?>
</div>
</form>
</div>
if(isset($_POST['submit'])){
$message = createUser();
}
更新
function createUser()
{
// here is your function's body))))
if ($result) {
return "Registration Success";
}
die("Query FAILED " . mysqli_error($connection));
}
如果我理解正确:
在createUser()
中,而不是:
if(!$result){
die("Query FAILED " . mysqli_error($connection));
} else{
$welcome = "Registration Success";
}
这样做:
if(!$result){
die("Query FAILED " . mysqli_error($connection));
}
return true;
在带有HTML的PHP文件中,执行以下操作:
<?php
include 'functions.php';
$userCreated = false;
if(isset($_POST['submit'])){
$userCreated = createUser();
}
if ($userCreated) { ?>
Here goes your message about successfull user creation, or you can use echo '' and you can skip PHP open close tag
<?php } else { ?>
<div class="row justify-content-md-center">
<form action="register.php" method="post">
...
</form>
</div>
<?php }
?>
下面是您关于成功创建用户的消息,或者您可以使用echo“”,也可以跳过PHP open-close标记
...
这样,您就不需要使用全局函数,而是使用createUser函数的返回值,它告诉您该函数是否成功 可以通过删除$welcome
变量和else
来进一步优化,只需在末尾直接返回字符串。@Vasyl Zhuryk Yea有效,我尝试了类似的方法,但不起作用,如果我在if
中返回它,则会有任何不同$结果
或$result
你可以用不同的方式来做)我只是提供了一个简短的条件)