1
大家好,新年快乐。 我正在建立一个不允许附加数据库的表单。这是好的,因为我使用会话来存储计算数字等所需的信息...为没有数据库的表单创建返回链接
我的问题是当用户希望返回到表单。我需要能够将表单数据存储在链接中,然后重新加载到用户会话中,而不会在URL中显示表单数据。
我已经尝试过会话数据,然后openssl加密/解密来实现这一点,得到空白的回应,假设这是与URL字符?我也尝试过MCRYPT,并得到了奇怪的人物。
代码($字符串总是含有形式信息的JSON编码阵列):
mcrypt的
$key = 'the password to work with';
$linkdata = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
开放SSL版本
$method = "AES-128-ECB";
$password = "the password to work with";
$linkdata = openssl_encrypt($string, $method, $password);
对于解密怎么办?($ return_data是总是包含编码数据的$ _GET):
MCRYPT
$key = 'the password to work with';
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($return_data), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
$_SESSION['hotel'] = $decrypted;
OpenSSL的
$method = "AES-128-ECB";
$password = "the password to work with";
$linkdata = openssl_decrypt($return_data, $method, $password);
$_SESSION['hotel'] = $linkdata;
任何帮助将不胜感激,谢谢你们。
*不允许将数据库附加到它* - 这是一个非常奇怪的要求 - *我使用会话来存储信息* - 所以你*有*一个数据库,它只是不是一个关系数据库。你应该非常仔细地检查你的要求。 – Quentin
是的,对不起。由于不允许有数据库,我的意思是我不能永久存储数据。一旦表格完成,数据就会发布到我们的网络服务中,在那里它的处理和系统从信息中创建,但这只发生在整个表单完成时。所以我需要一个将会话数据转换为url并返回的方法 –
是否在某处调用session_start()? http://php.net/manual/en/function.session-start.php – user3522412