首页 > 解决方案 > 从其他 PHP 文件访问变量

问题描述

我仍然开始学习 PHP,我不知道我错过了哪一部分,为什么我无法从其他 php 文件访问变量,即使我将它包含在我的索引文件中。

这是我如何将其他 php 包含到我的索引文件中

索引.php

<?php
    include 'includes/signup.inc.php';
?>

在这个index.php我有这个表格:

<form id="form" action="includes/signup.inc.php" method="POST">
    <div id="form1">
        <label for="fname">First Name:</label>
        <input type="text" name="fname"><span><?php echo $fnameerr?></span>
        <br>
    </div>
</form>

该变量$fnameerr是来自其他 php 文件中的变量,signup.inc.php如果我只有此代码,则包含名为的文件夹signup.inc.php

<?php
include 'dbh.inc.php';

$fname    = $lname = $email = $uid = $pw = "";
$fnameerr = $lnameerr = $emailerr = $uiderr = $pwerr = "";

这个变量$fnameerr可以从 中看出index.php。但是当我开始包含这段代码时:

<?php
include 'dbh.inc.php';

$fname = $lname = $email = $uid = $pw = "";
$fnameerr = $lnameerr = $emailerr = $uiderr = $pwerr = "";

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    if (empty($_POST['fname']))
    {
        $fnameerr = "First Name Required";
    }
    else
    {
        $fname = cleandata($_POST['fname']);
    }
    if (empty($_POST['lname']))
    {
        $lnameerr = "Last Name Required";
    }
    else
    {
        $lname = cleandata($_POST['lname']);
    }
    if (empty($_POST['email']))
    {
        $emailerr = "Email Required";
    }
    else
    {
        $email = cleandata($_POST['email']);
    }
    if (empty($_POST['uid']))
    {
        $uiderr = "User ID Required";
    }
    else
    {
        $uid = cleandata($_POST['uid']);
    }
    if (empty($_POST['pw']))
    {
        $pwerr = "Password Required";
    }
    else
    {
        $pw = cleandata($_POST['pw']);
    }
}

function cleandata($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
if (!empty($fname) || !empty($lname) || !empty($email) || !empty($uid) || !empty($pw))
{
    $sql = "INSERT INTO userlist(fname, lname, email, uid, pw) VALUES('$fname', '$lname', '$email', '$uid', '$pw');";
}

mysqli_query($conn, $sql);

header("location:../index.php");
?>

我无法访问我的 index.php,而是被重定向到仪表板。

标签: php

解决方案


推荐阅读