如何在superhero.php上的所有代码完成并且我想搜索其他名称后,才能进行$superhero_list
数组更新?
我发现的问题是,在我完成了superhero.php并返回superhero.html之后,它并没有保存$superhero_list
数组上的姓氏。
superhero.html
<html>
<head>
<title>Superhero List</title>
</head>
<body>
<form method="post" action="superhero.php">
<label for="heroname">Check The Super Hero Name:</label>
<input type="text" id="heroname" name="heroname">
</form>
</body>
</html>
superhero.php
<?php
$superhero_list = array();
if (in_array($_POST ["heroname"], $superhero_list)) {
echo 'Your hero was found.<br>';
echo "These are the Super Powers:<br> - Invisibility <br> - Xray Vision <br> - Flight <br> - Underwater Breathing <br> - Immortality <br> - Healing Power <br>
- Mind Reading <br> - Supersmart <br> - Strenght<br>";
} else {
echo "Hero was added to the Super Hero List!";
array_push($superhero_list,$_POST ["heroname"]);
}
echo '<br><br>';
echo 'This your Hero List:<br>';
echo implode("<br>",$superhero_list);
?>
另一件事,有没有更好的方法来编写这段代码?有功能还是其他循环?
先谢谢你们!
答案 0 :(得分:1)
如果您不想存储在数据库中,则需要在cookie中存储数组值。
http://php.net/manual/en/features.cookies.php
对于Cookie,您可以存储值,直到您的浏览器无法关闭。
答案 1 :(得分:0)
根据我的理解,你想:
如果英雄存在,请回复有关英雄的信息。
如果主角不存在,请将它们添加到数组中。
并且您希望能够跟踪添加到阵列中的每个英雄,即使在用户离开并再次返回之后也是如此。
当您离开php文件/页面时,变量/ file / class中的任何数据都将丢失。您必须有一些方法来存储heros列表(如数据库/其他形式的存储)。
使用数据库,您将拥有名称/每个特征的字段。当用户提交表单并发送到superhero.php文件时,您需要在数据库中查询条目/英雄列表。然后你就可以检查英雄是否存在。如果英雄存在,则回显heros字段/数据。如果主角不存在,请将它们插入数据库。
我想另一种选择是将每组数据保存到文本文件中。然后,每次调用脚本时,您都必须管理对文件的读/写。但是,我不会这样做......
答案 2 :(得分:0)
每次运行PHP脚本时都要重置数组。您需要保存数据,以便下次运行时可以将数据拉回来。 您可以通过构建数据库来保存所有名称,也可以将它们保存到文件中。有了这个小东西,将它保存到文件可能是最简单,最快捷的选择。
要将数据保存到文件,请将php脚本更改为
<?php
$superhero_list = array();
//Load the list from the file
$filename = 'heroNames.txt';
//First check if the file exists
if (file_exists($filename)) {
//If the file exists load the data
//First open the file for reading using "r"
$myfile = fopen($filename, "r") or die("Unable to open file!");
//Save it into the temp string
$tempString = fgets($myfile);
//turn that string into an array using ":" as the seperator. We will save using ":" later
$superhero_list = explode(":", $tempString);
//ALWAYS CLOSE THE FILE!!!
fclose($myfile);
}
//Now the data is either empty since its the first time used or it has all the names of the old superheros
if (in_array($_POST ["heroname"], $superhero_list)) {
echo 'Your hero was found.<br>';
echo "These are the Super Powers:<br> - Invisibility <br> - Xray Vision <br> - Flight <br> - Underwater Breathing <br> - Immortality <br> - Healing Power <br>
- Mind Reading <br> - Supersmart <br> - Strenght<br>";
} else {
echo "Hero was added to the Super Hero List!";
array_push($superhero_list,$_POST ["heroname"]);
}
//Now to save the data.
//With PHP if you open a file to write and the file does not exist, it will create the file... SO...
//Open the file for writing using "w"
$myfile = fopen($filename, "w");
//Convert the superhero array to a string using ":" to separate them
$tempString = implode(":", $superhero_list);
//Now save that string to the file
fwrite($myfile, $tempString);
//ALWAYS CLOSE THE FILE
fclose($myfile);
echo '<br><br>';
echo 'This your Hero List:<br>';
echo implode("<br>",$superhero_list);
?>