Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/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语句为true时,才在其他.php文件中显示DIV_Php - Fatal编程技术网

仅当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
你可以用不同的方式来做)我只是提供了一个简短的条件)