gpt4 book ai didi

string - 防止 CakePHP 从作为参数传递的 url 中剥离字符?

转载 作者:行者123 更新时间:2023-12-01 14:37:45 25 4
gpt4 key购买 nike

我正在使用 CakePHP 2.6 开发应用程序,并且在将包含 url 字符的字符串作为参数传递给 Controller ​​方法时遇到问题。

在我看来,我有一段代码,它回显出一系列包含数据的表行,并传递页面 ID、单元 ID 和有时包含 url 的链接 ID。

<?php foreach($linklist as $l) { ?>
<tr id="Link_<?php echo $l['ID']; ?>">
<td><?php echo $l['Title']; ?></td>
<td class="buttontd"><?php echo $this->Form->postlink('Delete', array('action' => 'deletelink', $this->request->params['pass'][0], $results[0]['PageUnitTypeID'], $l['ID']), array('class' => 'button delete')); ?></td>
</tr>
<?php } ?>

poSTLink 按钮将信息传递给 Controller ​​中的“deletelink”操作时,url 如下所示:

http://mydomainname.com/webpages/deletelink/239/7/urlhttp%3A%2F%2Fwww.google.co.uk%2F

这表明 url 已作为字符串传递,但随后在操作中,当我尝试仅将 var_dump() 第三个参数返回 www.google.co 的字符串时.uk 仅此而已阻止我对参数执行 substr() 调用以检查前 3 个字符是否等于 url .

我试图将参数包装在 serialize()urlencode() 中的后链接调用中,但都没有达到返回完整字符串的预期效果

urlhttp%3A%2F%2Fwww.google.co.uk%2F

有谁知道在不丢失重要字符的情况下成功传递参数的方法吗?

更新 1:删除链接操作

public function deletelink($pid = null, $uid = null, $lid = null) {
$this->autoRender = false;

if (!is_null($pid) && is_numeric($pid) && !is_null($uid) && is_numeric($uid)) {

if (!is_null($lid)) {

if (substr($lid, 0, 3) == 'url') {
echo substr($lid, 0, 3);
} else {
echo substr($lid, 0, 3);
}

} else {
$this->Session->setFlash('It is unknown which link you wish to delete from the webpage', 'flash_message_bar', array('class' => 'error'));
return $this->redirect(array('action' => 'edit', $pid));
}

} else {
$this->Session->setFlash('It is unknown which on which webpage you wish to delete a link', 'flash_message_bar', array('class' => 'error'));
return $this->redirect(array('action' => 'index'));
}
}

最佳答案

CakePHP(或我会说的 mod_rewrite)对您的 URL 的形成方式感到困惑。

您最安全的选择是base64_encode View 中的url 参数,这将导致调用类似于:

http://mydomainname.com/webpages/deletelink/239/7/dXJsaHR0cDovL3d3dy5nb29nbGUuY28udWsv

base64_decode它在稍后的 Action 中,这将转换

dXJsaHR0cDovL3d3dy5nb29nbGUuY28udWsv

进入

urlhttp://www.google.co.uk/

关于string - 防止 CakePHP 从作为参数传递的 url 中剥离字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34221383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com