使用后未定义索引

问题描述:

我收到$ _POST变量未定义的索引错误。 I.E. $ _ POST [ '主机']。我知道有点为什么我得到他们,但有没有办法让PHP和窗体保持在同一个文件中,而不是得到这些错误?使用后未定义索引

<html> 
<head> 
    <title>Install Forum</title> 
</head> 
<body> 
<h1>Please enter your database information</h1> 

<form action='install.php' method='post'> 
Hostname: <input type='text' name='hostname'><br/> 
MySQL User: <input type='text' name='dbuser'><br/> 
MySQL Pass: <input type='password' name='dbpassword'><br/> 
<input type='submit' name='submit' value='Submit'><br/> 
</body> 
</html> 
<?php 
include_once("config.php"); 
$date = date('Y-m-d'); 

//Database Variables 
$dbhost = strip_tags($_POST['hostname']); 
$dbuser = strip_tags($_POST['dbuser']); 
$dbpass = strip_tags($_POST['dbpassword']); 
$submit = isset($_POST['submit']); 
+0

[PHP:“通知:未定义变量”和“通知:未定义指数”]的可能重复(http://*.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – Jocelyn

裹在if你的PHP代码与isset条件。这样,代码只会如果表单已提交运行:

if(isset($_POST['submit'])) 
{ 
    include_once("config.php"); 
    $date = date('Y-m-d'); 

    //Database Variables 
    $dbhost = strip_tags($_POST['hostname']); 
    $dbuser = strip_tags($_POST['dbuser']); 
    $dbpass = strip_tags($_POST['dbpassword']); 
    $submit = isset($_POST['submit']); 
} 
+0

ahh我明白了,谢谢。我试图在每个变量上放置一个isset。像'isset(strip_tags($ _ POST ['hostname']));' – Darren

+0

尝试'$ dbhost = isset($ _ POST ['hostname'])? strip_tags($ _ POST ['hostname']):FALSE;'或'if(isset($ _ POST ['hostname'])){$ dbhost = strip_tags($ _ POST ['hostname']); }' – Nathan