所有,
我有一个用Zend Framework和MVC编写的PHP网站.大多数控制器操作检查请求是否是Ajax请求,否则他们将用户重定向到主页.我正在考虑打破该网站的各种方法.我正在考虑以下场景:
用户将JQuery ajax发布请求写入我网站上的某个控制器,并尝试发布恶意信息.例如:
$.ajax({
type: 'POST',
url: "https://marketsite/getinfo/getstuff",
cache: false,
dataType: "html",
success: function(html_response){
alert(html_response);
},
error: function(xhr,ajaxOptions,errorThrown){
alert(errorThrown);
}
});
Run Code Online (Sandbox Code Playgroud)我的问题是上面的ajax请求中的"url"属性是否采用绝对路径?我知道这需要相对路径.此外,是否可以通过发送此类请求来破坏任何网站?
谢谢
所有,
我使用PHP向Web服务器发出JSON请求,它在变量中返回一个JSON响应.JSON响应将包含许多键和值.我从服务器获得的JSON响应中包含特殊字符.因此,我使用以下语句将其转换为UTF8,解码JSON并将其用作数组以显示到UI.
$response = json_decode(utf8_encode($jsonresponse));
Run Code Online (Sandbox Code Playgroud)
现在,我必须在JSON请求中将相同的值传递给服务器以执行某些操作.但是,当我通过
$jsonrequest = json_encode(utf8_encode($request));
Run Code Online (Sandbox Code Playgroud)
到服务器,它失败了.
以下代码成功读取特殊字符并将其显示到UI.但如果我必须将utf8_encode值传递给服务器,则会失败.
当前的整个往返代码如下:
$requestdata = json_encode($request);
$jsonresponse = //Do something to get from server;
$response = json_decode(utf8_encode($jsonresponse));
Run Code Online (Sandbox Code Playgroud)
我怎样才能修改它,以便传递确切的值来表示我从服务器的json响应中收到的内容?
有没有办法使用Zend Framework和PHP将XML转换为数组?我见过人们使用SimpleXML来做这件事,但我想知道是否有通过Zend Framework的方法.
示例XML,我想转换为数组将是:
<library>
<book>
<authorFirst>Mark</authorFirst>
<authorLast>Twain</authorLast>
<title>The Innocents Abroad</title>
</book>
<book>
<authorFirst>Charles</authorFirst>
<authorLast>Dickens</authorLast>
<title>Oliver Twist</title>
</book>
</library>
Run Code Online (Sandbox Code Playgroud)
转换后的数组将如下所示:
Array
(
[0] => Array (
[authorFirst] => Mark
[authorLast] => Twain
[title] => Innocents Abroad
)
[1] => Array (
[authorFirst] => Charles
[authorLast] => Dickens
[title] => Oliver Twist
)
)
Run Code Online (Sandbox Code Playgroud) 在Spring Controller Action中,我使用以下语句重定向到外部URL:
String redirectUrl = "www.yahoo.com";
return "redirect:" + redirectUrl;
Run Code Online (Sandbox Code Playgroud)
但是,它似乎是在本地重定向URL而不是用www.yahoo.com替换整个地址栏URL.
例如:通过上面的重定向,我的地址栏现在看起来像:
http://localhost/myApp/auth/www.yahoo.com
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?我甚至尝试重定向到视图,然后让视图重定向URL,但结果仍然相同.它似乎工作的唯一方式是,如果我有http://www.yahoo.com或https://www.yahoo.com但我希望它按指定重定向URL,不一定提到协议.例如:如果直接进入地址栏,yahoo.com与http://www.yahoo.com类似.
谢谢
我有以下Json字符串:
var jsonString = '{"Users":[{"Name":"abc","Value":"test"},{"Name":"def","Value":"test"}]}';
Run Code Online (Sandbox Code Playgroud)
我试图在控制器中使用ZF2的JsonModel类(Zend\View\Model\JsonModel)来使用上面的JSON字符串呈现我的视图.但是,它似乎只采用数组而不是JSON字符串.
如何让控制器返回JSON字符串?
谢谢
我在 For 循环中有多个卡片。在每张卡片中,我想使用链接或按钮显示和隐藏卡片内的内容。我没有唯一的 ID 来分配我想要切换的每个 div。有没有办法做到这一点?
以下代码仅展开或折叠第一张卡片中的内容,即使在任何卡片中单击任何“展开”或“折叠”按钮也是如此。
<div *ngFor="let result of results">
<div class="clr-col-lg-12 clr-col-12">
<div class="card">
<div class="card-block">
<div *ngIf="result?.name">
<h3 class="card-title">{{result.name}}</h3>
</div>
<div class="expandCollapse">
<button (click)="toggle($event)">
{{buttonName}}
</button>
</div>
<div class="expandCollapseContent" *ngIf="showRuleContent">
<div *ngIf="result?.cTag">
<h5>C Tag</h5>{{result.cTag}}
</div>
</div>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
成分
public showRuleContent:boolean = false;
public buttonName:any = 'Expand';
toggle($event) {
this.showRuleContent = !this.showRuleContent;
// CHANGE THE NAME OF THE BUTTON.
if(this.showRuleContent)
this.buttonName = "Collapse";
else
this.buttonName = "Expand";
}
Run Code Online (Sandbox Code Playgroud) 我有以下 4 个动态生成的复选框。在角度组件中,我想检索复选框的“名称”、“值”和“状态”。
HTML:
<input type="checkbox"
name="automotive"
value="car"
ngModel
(ngModelChange)="filterResults(obj, $event)">
<input type="checkbox"
name="automotive"
value="truck"
ngModel
(ngModelChange)="filterResults(obj, $event)">
<input type="checkbox"
name="apparel"
value="shirts"
ngModel
(ngModelChange)="filterResults(obj, $event)">
<input type="checkbox"
name="apparel"
value="pants"
ngModel
(ngModelChange)="filterResults(obj, $event)">
Run Code Online (Sandbox Code Playgroud)
成分:
filterResults(obj: any, isChecked: boolean){
console.log(obj);
console.log(isChecked); // {}, true || false
}
Run Code Online (Sandbox Code Playgroud)
我能够获取复选框的状态,但无法获取名称和值。打印到控制台后,obj未定义。我想根据复选框的名称和值将过滤器应用于数据集。
如何获取选中复选框的名称和值,以便我可以做到这一点?
我在一个表单中有一个复选框组,我需要发布.
<input type="checkbox" value="true" checked name="chk0[]">
<input type="checkbox" value="false" name="chk0[]">
<input type="checkbox" value="false" name="chk0[]">
<input type="checkbox" value="true" checked name="chk0[]">
<input type="checkbox" value="true" checked name="chk1[]">
<input type="checkbox" value="false" name="chk1[]">
<input type="checkbox" value="true" checked name="chk1[]">
<input type="checkbox" value="false" name="chk1[]">
Run Code Online (Sandbox Code Playgroud)
请注意,在第一组中,检查1和4.在第二组中,检查1和3.当我发布这个时,我按顺序获取已选中复选框的已发布值:
[chk0] => Array (
[0] => true
[1] => true
)
[chk1] => Array (
[0] => true
[1] => true
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能确保获得这样的发布值:
[chk0] => Array (
[0] => true
[3] => true
)
[chk1] => Array (
[0] => true
[2] …Run Code Online (Sandbox Code Playgroud) 使用Zend_DB的更新语句时,如何传递mysql的CURRENT_TIMESTAMP?以下似乎不起作用.
我有这样的事情:
$update = array(
'Name' => 'John',
'DT_Modified' => 'CURRENT_TIMESTAMP'
);
$db->update('usertable', $update );
Run Code Online (Sandbox Code Playgroud)
运行如下所示的查询:
UPDATE usertable SET Name='John', DT_Modified = CURRENT_TIMESTAMP
在所附的小提琴中,当所选的选择加载时,我有两个预填充的选项“丹麦”和“法国”。如果我在选择框中选择更多值并单击清除按钮,我想使用相同的预填充值“丹麦”和“法国”恢复所选的选择。
我想更改此代码以预填充选定的值。
$("#Clear").click(function () {
$('.chosen-select option').prop('selected', false).trigger('chosen:updated');
});
Run Code Online (Sandbox Code Playgroud)
更新:如果有一种方法可以使预先填充哪些选项无关紧要,但应该恢复它们(如果有),那将是非常好的。