Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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
注意:未定义的变量:第25行C:\xampp\htdocs\php databases\my-profile.php中的第一个,未定义的初始化变量_Php_Html - Fatal编程技术网

注意:未定义的变量:第25行C:\xampp\htdocs\php databases\my-profile.php中的第一个,未定义的初始化变量

注意:未定义的变量:第25行C:\xampp\htdocs\php databases\my-profile.php中的第一个,未定义的初始化变量,php,html,Php,Html,我有一堆未定义的变量,对于我试图创建的配置文件页面的所有变量 我想我之前已经定义了它们,如下所示。我看过类似的文章,但是初始化变量似乎也不起作用(正如您所看到的,我尝试使用$first)。我是php新手,因此非常感谢您的帮助:) 当访问数组项时(与$\u POST一样),访问将尝试直接访问该元素,而无需首先检查该元素是否存在 您需要检查它: $first=isset($\u POST['first'])$_POST['first']:''; 如果您使用的是框架,请尝试使用其请求对象获取值 您

我有一堆未定义的变量,对于我试图创建的配置文件页面的所有变量

我想我之前已经定义了它们,如下所示。我看过类似的文章,但是初始化变量似乎也不起作用(正如您所看到的,我尝试使用$first)。我是php新手,因此非常感谢您的帮助:)



当访问数组项时(与
$\u POST
一样),访问将尝试直接访问该元素,而无需首先检查该元素是否存在

您需要检查它:

$first=isset($\u POST['first'])$_POST['first']:'';


如果您使用的是框架,请尝试使用其请求对象获取值

您不应该直接使用GLOBALS。试一试



另一个问题是,mysqli_real_escape_字符串的使用并不像您认为的那样安全,在服务器端错误地配置会产生一些问题。你应该试着使用预先准备好的语句。

这就是问题所在

<td width="165" valign="top"><?php echo $first ?></td>
如果while循环失败,$first='';不会被称为

在您的案例代码中,while未执行

所以

更改代码

$first='';
while($row = mysqli_fetch_array($result)){
    // your code
}
我不知道这会怎么样:

$uid = (isset($conn, $_POST['user_uid']) ? $_POST['user_uid'] : '');
但我会把它改成

$uid = isset($conn, $_POST['user_uid']) ? $_POST['user_uid'] : '';
并检查$uid是否为空,并且仅当$uid不为空时才继续

if(!empty($uid)){
   $result = mysqli_query($conn, "SELECT * FROM users where user_uid='$uid'");  
   while($row = mysqli_fetch_array($result))  
   { 
       $first = $_POST['first'] ?? '';
       $last= mysqli_real_escape_string($conn, $_POST['last']);
       $city= mysqli_real_escape_string($conn, $_POST['city']);
       $country= mysqli_real_escape_string($conn, $_POST['country']);
   }
}
仅当$first、$last、$city和$country有值时才打印

<?php if(!empty($first)){?>
<tr>
<td width="82" valign="top"><div align="left">FirstName:</div></td>
<td width="165" valign="top"><?php echo $first ?></td>
 </tr>
<?php } if(!empty($last)){?>
 <tr>
<td valign="top"><div align="left">LastName:</div></td>
<td valign="top"><?php echo $last ?></td>
 </tr>
<?php } if(!empty($city)){?>
<tr>
<td valign="top"><div align="left">City:</div></td>
<td valign="top"><?php echo $city ?></td>
</tr>
<?php } if(!empty($country)){?>
<tr>
<td valign="top"><div align="left">Country:</div></td>
<td valign="top"><?php echo $country ?></td>
</tr>
<?php } ?>

名字:
姓氏:
城市:
国家:

$first=isset($\u POST['first'])$_POST['first']:'';检查是否设置了$_POST['first'],请更加努力地以可复制的方式呈现您的问题。现在,您所显示的内容甚至没有25行,因此,如果您只是引用一条错误消息,说“in[…]\my-profile.php on line 25”,这仍然会使内容非常不清楚。请阅读。如果您的代码没有进入
while
循环,则以后将不会定义
$first
。在假设一切正常之前,请检查是否确实找到了匹配项。这是完整的代码吗$first没有在代码中的任何地方调用,请向我们显示调用$first的代码。如果这样做,则会出现相同的错误:(使用
$\u POST['first']有什么不同?“”
与OP正在使用的现有代码一样?这做了一些有趣的事情,我现在没有错误消息,但是,数据库中没有显示任何数据?如果您在$POST['user\u uid'中有值,则其左侧为空白检查检查我的代码可能您在$uidi中没有值在数据库中肯定有$uid的值,所以我使用了您建议的代码(感谢您的帮助!),每次在html codeecho$uid;before while循环中调用它们时,它都会抛出未定义的变量错误
$uid = (isset($conn, $_POST['user_uid']) ? $_POST['user_uid'] : '');
$uid = isset($conn, $_POST['user_uid']) ? $_POST['user_uid'] : '';
if(!empty($uid)){
   $result = mysqli_query($conn, "SELECT * FROM users where user_uid='$uid'");  
   while($row = mysqli_fetch_array($result))  
   { 
       $first = $_POST['first'] ?? '';
       $last= mysqli_real_escape_string($conn, $_POST['last']);
       $city= mysqli_real_escape_string($conn, $_POST['city']);
       $country= mysqli_real_escape_string($conn, $_POST['country']);
   }
}
<?php if(!empty($first)){?>
<tr>
<td width="82" valign="top"><div align="left">FirstName:</div></td>
<td width="165" valign="top"><?php echo $first ?></td>
 </tr>
<?php } if(!empty($last)){?>
 <tr>
<td valign="top"><div align="left">LastName:</div></td>
<td valign="top"><?php echo $last ?></td>
 </tr>
<?php } if(!empty($city)){?>
<tr>
<td valign="top"><div align="left">City:</div></td>
<td valign="top"><?php echo $city ?></td>
</tr>
<?php } if(!empty($country)){?>
<tr>
<td valign="top"><div align="left">Country:</div></td>
<td valign="top"><?php echo $country ?></td>
</tr>
<?php } ?>