哦,所以我有2个html页面和2个php页面。
这两个html页面包含名称和值参数的链接,具体取决于您单击的那个。
我想要完成的是:
我还没有得到这个工作,我不明白为什么我的解决方案不起作用。你能看一下吗?
代码如下:
第一个HTML页面:
<!DOCTYPE html>
<html lang="sv">
<head>
<title>doc1</title>
<meta charset="UTF-8">
</head>
<body>
<a href="doc1.php?namn=filip">namn</a><br>
<a href="doc1.php?namn=fellman">namn</a>
</body>
</html>
第一个PHP页面:
<?php
$namn = $_GET["namn"];
$html = file_get_contents("doc2.html");
$rep = substr_replace('doc2.php?namn=', $namn, 14);
$html = str_replace('---$namn---', $rep, $html);
echo $html;
?>
第二个HTML页面:
<!DOCTYPE html>
<html lang="sv">
<head>
<title>doc2</title>
<meta charset="UTF-8">
</head>
<body>
<a href="doc2.php?land=finland">land</a><br>
<a href="doc2.php?land=sverige">land</a>
<a href="---$namn---" style="display:none">namn</a>
</body>
</html>
第二个PHP页面:
<?php
header("Content-Type: text/plain");
echo "namn: " . $_GET["namn"]."\n";
echo "land: " . $_GET["land"];
?>
如果你有一个更简单或更简单的解决方案,我很乐意知道。
如果我查看我的浏览器上的代码,我看到正确的数据被传输和替换,但“namn”变量是未定义的,它说..请参阅下面的错误代码:
Notice: Undefined index: namn in C:\Apache24\htdocs\WEB-SERVER\4.1.1 Information inbakad i länkar\doc2.php on line 5
姓名:国家:瑞典
您正在尝试从查询字符串中获取两个值:
echo "namn: " . $_GET["namn"]."\n";
echo "land: " . $_GET["land"];
但是,您没有任何一个包含这两个值的请求。您有两个不同的链接,每个链接包含一个值:
<a href="doc2.php?land=sverige">land</a>
<a href="doc2.php?namn=filip" style="display:none">namn</a>
(其中一个的样式甚至没有显示......)
因此,无论您在哪两个不同的链接中单击一个,都不会设置其中一个值。
您需要一个包含两个值的链接:
<a href="doc2.php?namn=filip&land=sverige">land</a>
因此,在PHP替换文本之前,您的代码可能如下所示:
<a href="doc2.php?---$namn---&land=sverige">land</a>
当然,您还需要修改PHP字符串替换逻辑以解决新的字符串格式。你的方法是一个小手册,所以你必须稍微修改一下,观察实际的输出结果,以便根据需要进行调整。但你应该明白这个想法。
有多种方法可以延续价值,修改字符串,考虑如何对值进行URL编码等。但至少基本概念是URL需要两个值,而不仅仅是其中一个。
基本上,服务器不存储先前请求的信息。您需要将其存储在某个位置(例如会话状态)或包含有关后续请求的信息,例如URL中的查询字符串值。