我有以下代码:
示例1
if ( isset($_SESSION['username']) && $_SESSION['username'] == 'name1' || $_SESSION['username'] == 'name2') {
是否可以将名称放在.txt文件中,以便它读取名称的txt文件而不是上面的文件?
修改
示例2
if (isset($_SESSION['username']) && $_SESSION['username'] = array("file.txt") ) {
请注意,我知道上面的代码不能正常工作,但这只是为了解释我在这里要做的事情。
我想将用户添加到file.txt,因此我不需要像示例1那样添加用户。
答案 0 :(得分:4)
我不确定我是否正确地抓住了这个问题,但请尝试以下方法。
这将每次附加到一个文件并给出这样的结果,例如:
(加载脚本两次后)
name1 name1
并且文件名将被称为与会话名称相同的名称,例如a
。
要追加w
开关。您可以使用<?php
session_start();
$_SESSION['username'] = "name1";
if (
isset($_SESSION['username'])
&& $_SESSION['username'] == 'name1'
|| $_SESSION['username2'] == 'name2'
)
{
$session_file = $_SESSION['username'] . "\n";
$filename = $_SESSION['username'];
$file = fopen($filename.".txt", 'a');
fwrite($file, $session_file);
fclose($file);
}
开关编写一次并覆盖以前的任何内容。
<?php
session_start();
$_SESSION['username1'] = "name1";
$_SESSION['username2'] = "name2";
if ( isset($_SESSION['username1'])
|| isset($_SESSION['username2'])
&& $_SESSION['username1'] == 'name1'
|| $_SESSION['username2'] == 'name2')
{
$_POST['html'] = "<b>content</b>";
$_POST['fileName'] = "filename1";
$session1 = $_SESSION['username1'] . "\n";
$session2 = $_SESSION['username2'] . "\n";
$session3 = $session1.$session2;
$filename = $_SESSION['username'];
$file = fopen($filename.".php", 'a');
fwrite($file, $session3);
fclose($file);
}
修改强>
此版本将写出两个不同的会话名称,一个在另一个下面:
name1 name2
b
编辑#2 :检查文件中是否存在名称。
如果您希望查看文件中是否已存在名称。
旁注: i
用于&#34;字边界&#34;并且<?php
session_start();
$file = fopen("file.txt", "r") or die("Cannot open file!\n");
$_SESSION['username'] = "name_X";
$search = $_SESSION['username'];
while ($line = fgets($file, 1024)) {
if (preg_match("/\b$search\b/i", $line)) {
echo "<b>Found match: " . $line . "</b>" . " - Stopping script.";
exit; // Stop the script from going any further.
}
}
echo "Name not found, writing to file...";
// rest of code
对preg_match()
不区分大小写。
next
答案 1 :(得分:1)
假设您将用户名存储在文本文件中,如:
user1
user2
user3
您的目标是检查$_SESSION['username']
中设置的值是否在文本文件中,您可以使用file
之类的内容:
$user_list = file("users.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ( isset($_SESSION['username'] ) && in_array($_SESSION['username'], $user_list ) ) {}