PHP随机字符串生成器基于GET值

时间:2015-05-16 00:48:25

标签: php html

我是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>

3 个答案:

答案 0 :(得分:1)

检查两个参数的存在和内容:

urwid.connect_signal

如上所述,随机是随机的,因此将值传递到字符串中没有太大用处,除非您尝试salt字符串。

答案 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吗?