我有一个期望接收json的web服务,如下所示:
{"first_name":"test","last_name":"teste","email":"moi@someplace.com","mobile":"+44 22 2222 2222", "password":"testing"}
Run Code Online (Sandbox Code Playgroud)
我在jquery中调用ajax:
$.ajax({
type: "POST",
url: hb_base_url + "consumer",
contentType: "application/json",
dataType: "json",
data: {
first_name: $("#namec").val(),
last_name: $("#surnamec").val(),
email: $("#emailc").val(),
mobile: $("#numberc").val(),
password: $("#passwordc").val()
},
success: function(response) {
console.log(response);
},
error: function(response) {
console.log(response);
}
});
Run Code Online (Sandbox Code Playgroud)
有没有办法检查我的数据发送格式?我应该没有向服务器发送正确的JSON(这是验证的第一步).
我的jquery代码是发送有效的JSON还是我错过了什么?
我正在Codeigniter中构建一个"记住我"功能,通常我看到库/项目使用令牌在用户上设置cookie,此令牌保存在数据库中,并在每次用户访问网站时进行比较.
在Codeigniter中我们可以设置会话到期时间,这导致我尝试不同的方法,这就是我做的:
所以我的登录代码如下所示:
if (!$this->input->post('remember_me')) {
$this->session->sess_expiration = 7200;
$this->session->sess_expire_on_close = TRUE;
}
$this->session->set_userdata($session_data);
Run Code Online (Sandbox Code Playgroud)
我的配置文件:
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
我没有看到人们在项目中使用这个解决方案,我已经测试了它,但它似乎工作得很好.
那么,对于我的问题,你会说这是一个安全的做法吗?我应该知道的任何安全危险?此解决方案与cookie +数据库令牌的任何输入都会很棒.
在过去的几个月里,我一直在进入Web开发,我尝试了两个方面:ASP.NET和PHP,我很快就爱上了第二个,文档和社区只是非常有帮助.
I started out by reading PHP for Absolute Beginners, this gave me a decent grasp over the language.

Enter frameworks! After going around the web, it became clear that there was one framework that really suited beginners: Codeigniter. I absolutely love CI, through out my programming experience in college I've always relied on good books. CI didn't need a book. The documentation is so well written anyone with a little bit of PHP experience can get into …
我在LDAP身份验证上遇到了一个奇怪的行为,我需要这个用他们的AD凭据来验证用户,这就是我所拥有的:
session_start();
$adServer = "MY IP";
$ldapconn = ldap_connect($adServer) or $this->msg = "Could not connect to LDAP server.";
$ldaprdn = "DOMAIN\\" . $_POST["username"];
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $_POST["password"]);
if ($ldapbind) {
//$msg = "Successfully Authenticated";
$_SESSION['loggedin'] = 1;
$_SESSION['username'] = $username;
header("Location: ../main.php");
} else {
header("Location: ../index.php?login_failed=1");
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的不同行为:
我发现这很难集中,如果没有使用密码字段,所有用户都会被验证.但是,如果我使用密码字段,它只会使用正确的凭据对用户进行身份验证.
我在这里做错了什么,还是应该开始唠叨IT人员?
我想在我的.cs文件上调用3个javascript函数,我试过这个:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
ClientScriptManager script = Page.ClientScript;
ClientScriptManager script2 = Page.ClientScript;
ClientScriptManager script3 = Page.ClientScript;
script.RegisterClientScriptBlock(this.GetType(), "key", "centerPopup1()", true);
script2.RegisterClientScriptBlock(this.GetType(), "key", "loadPopup1()", true);
script3.RegisterClientScriptBlock(this.GetType(), "key", "msg1()", true);
}
}
Run Code Online (Sandbox Code Playgroud)
没有成功,我的Postbacks没有任何反应,但如果我尝试只调用其中一个函数,它就可以了.
考虑到我正在构建表单并将数据发布到PHP,对我来说典型的插入查询是这样的:
$sql = "INSERT INTO news
(title, body)
VALUES (?, ?)";
$stmt = $db->prepare($sql);
$stmt->execute(array($_POST["title"], $_POST["body"]));
$stmt->closeCursor();
Run Code Online (Sandbox Code Playgroud)
对于一个小查询来说这看起来很好,而且我的理解是这使我免受SQL注入和诸如此类的攻击.
但是,如果我需要使用相当大的形式呢?就像是...
$sql = "INSERT INTO ficha_item
(titulo, tipo_produto, quantidade_peso, unidade_de_venda,
unidades_por_caixa, caixas_piso, pisos_palete, tipo_de_palete,
unidades_palete, caixas_palete, uni_diametro, uni_largura,
uni_profundidade, uni_altura, uni_peso_bruto_unidade, caixa_largura,
caixa_profundidade, caixa_altura, altura_palete, volume_unidade,
peso_caixa, peso_palete)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
Run Code Online (Sandbox Code Playgroud)
我认为计算所有这些问号变得乏味.使用PDO有更清洁的方法吗?
让这个工作变得困难,这就是我想要的:
-Collapsible
---Item 1
---Item 2
---Item 3
-Normal list view item with link
-Collapsible
---Item 1
---Item 2
---Item 3
Run Code Online (Sandbox Code Playgroud)
所以基本上我想要一个普通的listview项目,其中包含由可折叠元素包围的链接.
我尝试过使用手风琴和列表视图,但到目前为止我还没有接近过.
<ul data-role="listview">
<li>
<div data-role="collapsible">
<h3>Invite</h3>
<ul data-role="listview" data-inset="false">
<li><a href="#">Email Invite</a></li>
<li><a href="#fb_invite">Facebook Invite</a></li>
<li><a href="#twitter_invite">Twitter Invite</a></li>
<li><a href="#address_book_invite">Address Book Invite</a></li>
</ul>
</div>
</li>
<li><a href="#">Normal item!</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这样就可以很好地创建功能,问题是可折叠列表具有按钮的可视方面,我希望它看起来与普通的li项完全相同.
任何解决此问题的方法都是受欢迎的.
使用jquery mobile + phonegap,尝试POST到Slim应用程序,我有这个代码:
$( document ).on( "vclick", "#test_form", function() {
$.ajax({
type: "POST",
url: "http://mydomain.com/slim/",
crossDomain: true,
beforeSend: function() {
$.mobile.loading('show')
},
complete: function() {
$.mobile.loading('hide')
},
data: {namec:$("#namec").val()},
dataType: 'json',
success: function(response) {
//console.error(JSON.stringify(response));
alert(response);
},
error: function() {
//console.error("error");
alert('Not working!');
}
});
});
Run Code Online (Sandbox Code Playgroud)
我用其他非Slim PHP页面测试了这一点,一切正常,但我得到了Slim的ajax错误.
我的修身应用:
<?php
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->post('/', function () {
echo json_encode($_POST("namec"));
});
$app->run();
Run Code Online (Sandbox Code Playgroud)
刚开始使用Slim,所以不确定我做错了什么.
(因为2天我对此没有任何问题......)
我有一个多页面布局,在我的一个页面中,我有一个像这样的结构:
<div id="view_offer" data-role="page">
<div data-role="header">
<h1>Edit Offer</h1>
</div>
<div data-role="content">
<p><label><input id="auto_renew" type="checkbox" name="checkbox-0">Auto renew?</label></p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在关闭body标记之前,使用以下脚本(按此顺序):
<script src="js/cordova-2.5.0.js"></script>
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/jquery.mobile-1.3.0.min.js"></script>
<script src="js/home_m_scripts.js"></script>
Run Code Online (Sandbox Code Playgroud)
我的home_m_scripts.js文件:
$("#auto_renew").change(function(){
alert("Changed!");
});
Run Code Online (Sandbox Code Playgroud)
我的改变事件并没有触发,我在这里失去了.
我有一个存储在cookie中的序列化数组,在我的应用程序中的某一点我需要将此数组与另一个具有相同设计的数组合并,因此:
数组1:
$arr1 = array(
"user_id" => 1,
"item_id" => 2,
"quant" => 3
);
Run Code Online (Sandbox Code Playgroud)
我在一个cookie中设置了这个:
serialize($arr1);
Run Code Online (Sandbox Code Playgroud)
数组2:
$arr2 = array(
"user_id" => 5,
"item_id" => 5,
"quant" => 6
);
Run Code Online (Sandbox Code Playgroud)
我试图合并两个数组:首先我反序列化我的cookie中的第一个数组值,然后与第二个数组合并
$un_arr1 = unserialize($cookie_val);
$final = array_merge($arr2, $un_arr1);
Run Code Online (Sandbox Code Playgroud)
这只返回第一个数组中的值.
我想要实现的目标:
Array
(
[0] => Array
(
[user_id] => 1
[item_id] => 2
[quant] => 3
)
[1] => Array
(
[user_id] => 4
[item_id] => 5
[quant] => 6
)
)
Run Code Online (Sandbox Code Playgroud)