我是PHP的新手。我想编写一个简单的PHP代码,根据通过URL传递的查询字符串参数(HTTP GET方法)生成随机字母数字字符串作为输出。
参数如下:
用户ID =
的transactionId =
示例网址:http://testurl.org/file.php?userid=123&transactionid=4567
如果URL没有上述值,则输出将为ERROR
我有以下代码生成随机字符串:
<?php echo rtrim(base64_encode(md5(microtime())),"=");?>
但它们不是基于URL参数。
我现在输入下面的代码,但是给了我一个解析错误。 你看到下面缺少的东西吗?
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
function randomString() {
return rtrim(base64_encode(md5(microtime())),"=");
}
echo (isset($_GET['userid'] && $_GET['userid']>"") ? randomString() : "ERROR";
?>
</body>
Fred-ii-和devJunk建议的代码有效。这是根据他们的建议工作的最终代码:
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
function randomString() {
return rtrim(base64_encode(md5(microtime())),"=");
}
echo isset($_GET['userid']) && !empty($_GET['userid']) && isset($_GET['transactionid']) && !empty($_GET['transactionid']) ? randomString() : "ERROR";
?>
</body>
</html>
答案 0 :(得分:1)
答案 1 :(得分:1)
最好的办法是使用多个GET数组和条件语句,并在满足这两个条件时“回显”该函数。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
function randomString() {
return rtrim(base64_encode(md5(microtime())),"=");
}
if (
isset($_GET['userid'])
&&
!empty($_GET['userid'])
&&
isset($_GET['transactionid'])
&&
!empty($_GET['transactionid'])
)
{
echo randomString();
}
else{
echo "One GET array is not set or is empty.";
}
Nota:
编辑,使用OP的代码并在函数中添加回显。
只需在函数中添加回声:
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
function randomString() {
echo "Your code is: ";
return rtrim(base64_encode(md5(microtime())),"=");
}
// echo isset($_GET['userid']) && !empty($_GET['userid']) && isset($_GET['transactionid']) && !empty($_GET['transactionid']) ? randomString() : "ERROR";
echo isset($_GET['userid']) && !empty($_GET['userid']) && isset($_GET['transactionid']) && !empty($_GET['transactionid']) ? randomString() : "ERROR";
?>
</body>
</html>
答案 2 :(得分:0)
使用三元运算符时,只需检查变量/值是否可用。
<?php
function randomString() {
return rtrim(base64_encode(md5(microtime())),"=");
}
echo isset($_GET['userid']) ? randomString() : "ERROR";
?>
你要求的是那么简单的if then else
吗?