我正在编写一个代码,其中有2个文件index.php和register.php。
index.php包含html表单的代码,如下所示:
<form action="register.php" method="POST">
<fieldset>
<legend>Personal Information</legend>
First Name: <input type="text" name="fname">
<br>
<br>
Last Name: <input type="text" name="lname">
<br>
<br>
<input type="submit" name="submit" value="Submit">
</fieldset>
</form>
register.php包含以下代码:
<?php
//if(isset($_POST['fname']))
{
$f_name= $_POST['fname'];
}
//if(isset($_POST['lname']))
{
$l_name = $_POST['lname'];
}
echo $f_name;
echo "<br><br>";
echo $l_name;
?>
我已经在PhpStorm中编写了代码,并且我的Windows 10安装系统中也安装了Xampp。 我已经设置了&#39; htdocs&#39; xampp目录为&#39; apache_http_server&#39;在&#39; D:\&#39;驱动我的系统,并在'apache_http_server&#39;的子目录中创建PhpStorm项目。这样我就可以使用Xampp和PhpStorm IDE运行我的php项目了。我还将Xampp提供的php innterpreter设置为PhpStorm的默认解释器,所以在这两种情况下我的代码都使用相同的解释器(PHP Version 7.0.4)。
现在的问题是,每当我使用Xampp运行此项目时,它运行时没有任何错误和通知。但如果我使用PhpStorm IDE使用其内置的httpserver在端口63342上运行相同的项目,它会给我以o / p的通知:
Notice: Undefined index: fname in D:\practice\apache_http_server\my_projects\login_form\register.php on line 5
Notice: Undefined index: lname in D:\practice\apache_http_server\my_projects\login_form\register.php on line 10
我还尝试使用 if(isset())来解决此问题,因为stackoverflow上的另一个答案会导致未定义的变量错误。
那为什么会这样呢?问题出在哪里?我错过了在任何配置文件中进行更改吗?如果是,那么变化需要或在哪里?
使用Xampp服务器和PhpStorm的o / p屏幕截图如下:
答案 0 :(得分:2)
你在两台服务器上有不同的PHP配置, 在两台服务器上运行phpinfo()并修复差异。
答案 1 :(得分:2)
尝试
echo $_SERVER['DOCUMENT_ROOT']; //check if the root of the website is the same on both servers
if(!$_SERVER['REQUEST_METHOD']) {
die("Something went REALLY wrong!!!") //reinstall your server conf.
}
if(!$_SERVER['REQUEST_METHOD'] !== 'POST') {
die("We're not getting this request from POST. abort");
}
if(!$_POST) {
die("We're not receiving any data from post.");
} elseif(!$_POST['submit']) {
die("PHP thinks the form wasn't actually submitted");
} else {
if($_POST['fname']) {
//work with your data
} else {
echo "<p>There\'s a problem. We're not getting fname from the form</p>";
}
...
...
}
我对PHPStorm没有任何经验,但是PHPStorm内置服务器的 include_path 可能存在问题?更重要的是。你是否包含 include_path 的内容?
答案 2 :(得分:1)
似乎问题出在http服务器的配置中。如果您安装了Xampp,则可以将Xampp的apache服务器设置为默认的http服务器。您可以在以下链接中找到将Xampp与PhpStorm集成的分步指南(该链接来自PhpStorm的官方供应商):
https://confluence.jetbrains.com/display/PhpStorm/Installing+and+Configuring+XAMPP+with+PhpStorm+IDE