该项目
我们有一个用PHP编码的竞争,CodeIgniter.该表单已对电子邮件地址和手机号码进行验证.页面本身托管在不同域的iframe内(它是代理 - 客户关系).
问题
我们为用户提供了1000个条目.我们知道它们是假的,因为:
但是,IP地址是唯一的,条目分布几天,域本身有MX记录,用户代理看起来很正常.
客户端不希望做任何可能导致更少条目的事情.
问题
Captcha等方法的优点和缺点是什么?您使用了哪些UI和代码模式?
我读到的一种方法是允许可疑的条目,以便接受垃圾邮件发送者条目,但是它们的数据有一个"可疑"标记,然后手动检查.我可以查看哪些数据以查看是否可疑?
与Facebook类似,我正在构建一个允许用户发布链接的应用程序.
用户在输入字段中填写链接,然后控制器返回
Title
Link
Meta description
Images (as thumbnails)
Run Code Online (Sandbox Code Playgroud)
到了视野.
这是控制器代码:
$url = $this->input->post('posts_link');
if (!empty($url)) {
$html = file_get_html($url);
foreach ($html->find('img') as $element) {
$src = "";
$src = $element->src;
if (preg_match("/\.jp[e]?g$/i", $src)) {
$images[] = $src;
}
}
$data['posts_link'] = $url;
$data['images'] = $images;
$data['title'] = $html->find('title', 0)->plaintext;
$data['meta'] = get_meta_tags($url);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是没有图像,没有标题或没有描述(单独或组合).
我正在使用codeigniter,它会在视图上抛出几个错误,我宁愿压制它.
是否有最佳实践来抑制这些错误或放置空变量,以防DOM解析器没有返回标题/图像/描述?
比如我试过了
$data['images'] = $images ? $images : '';
但它并没有解决我的问题.
有什么建议?
谢谢.
在为多维数组提供count和foreach的正确组合时遇到一些麻烦.
我目前正在执行以下操作来从我的db返回的结果创建一个关联数组:
$sql = "SELECT g.id, g.shortname FROM games g ORDER BY g.id ASC";
$query = $this->db->query($sql);
if($query->num_rows() > 0):
foreach($query->result() as $row):
$data[$row->id] = $row->shortname;
endforeach;
return $data;
else:
return false;
endif;
Run Code Online (Sandbox Code Playgroud)
这当然产生以下数组(工作正常;半仿代码):
array ( [1] => CoolGame, [2] => AnotherGame, [3] => BetterGame, [4] => UglyGame)
Run Code Online (Sandbox Code Playgroud)
....等等
但我想要做的是通过多维数组自动将结果(基于计数var/limiter)分解成组,如下所示:
array (Group 1 =>
array([1] => CoolGame [2] => AnotherGame),
Group 2 =>
array([3] => BetterGame [4] => UglyGame)
)
Run Code Online (Sandbox Code Playgroud)
所以在那个例子中,我的 $depth_count = 2;
如果有人感兴趣,我这样做是为了<optgroup>通过CI的表单助手的form_multiselect()函数使用自动生成的标签进行多选.需要一些帮助来调整我的PHP来实现这一点.谢谢!
我正在使用Codeigniter中的Web应用程序.我想将我的应用程序的功能与CMS集成,以便站点管理员可以轻松更新站点(关于页面,博客等).这可以通过PyroCMS或其他基于Codeigniter的CMS轻松完成吗?我是否需要彻底重组我现有的应用程序?
在Codeigniter中可以使用哪种方法来实现活动菜单选项卡?
例如,我有一个用户菜单 Profile Friends Messages Logout
当我在配置文件控制器中时,URL是domain.com/profile/some_function该Profile选项卡应该是活动的,例如通过更改背景颜色.
我通常会在选项卡中添加php来检查相应的URL段,我会更改活动选项卡的样式.在Codeigniter中我应该实现帮助吗?我可以在标签中轻松使用哪些功能?
我在我的Codeigniter模型中收到一个错误,它在MySQL表中插入一行.以下是错误的描述
A Database Error Occurred
Error Number: 1054
Unknown column 'value2' in 'field list'
INSERT INTO `tablename` (`column1`, `column2`) VALUES (value1, value2)
Filename: path\to\DB_driver.php
Line Number: 330
Run Code Online (Sandbox Code Playgroud)
这两列都是varchar列.有谁知道这个错误?
错误消息是逐字复制粘贴的.我的Controller代码如下:
$deviceID=$xmlString->deviceID;
$appType=$xmlString->appType;
$data = array( 'deviceIdentifier' => $deviceID, 'installType'=>$appType );
$this->device_model->insert_new_device($data);
Run Code Online (Sandbox Code Playgroud)
我的型号代码如下
class device_model extends CI_Model {
function insert_new_device($lData) {
$this->db->insert('devices', $lData);
return $this->db->insert_id();
}
}
Run Code Online (Sandbox Code Playgroud) 我尝试了一个简单的表单提交但是我无法在控制器上使用$this->input->post以及$_POST[]方法获取表单值.我的观点是
<html>
<head>
<title> Feedback page</title>
</head>
<body>
<?php echo form_open('feedback/save'); ?>
<p>
<label>name: </label>
<?php echo form_input('name'); ?>
</p>
<p>
<label>Email: </label>
<?php echo form_input('email'); ?>
</p>
<p>
<label>Feedback: </label>
<?php echo form_textarea('feedback'); ?>
</p>
<p>
<?php echo form_submit('submit','Submit'); ?>
</p>
<?php echo form_close(); ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和控制器部分是
<?php
class Feedback extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model("MFeedback");
}
function index() {
$this->load->view('home/feedback_view.php');
//print "loaded";
}
function save() {
print "called";
print_r($this->input);
$name = …Run Code Online (Sandbox Code Playgroud) 通过时将会话存储在数据库中
$config['sess_use_database'] = TRUE;
Run Code Online (Sandbox Code Playgroud)
数据的大小是否限制为user_data字段的大小,即TEXT ...?不像普通的cookie那样4kb.
我目前正在使用Phing和Jenkins来自动化我的CodeIgniter应用程序的构建和部署.我遇到的一个问题是重启apache服务.我试过Phing但是没有足够的权限.重启的最佳方法是什么?
编辑:
将jenkins添加到sudoer文件并执行服务httpd restart后,Jenkins抛出:处理泄露的文件描述符.下面是Jenkins的Phing输出片段.它说一个解决方法是安装daemonize.不确定那是什么意思...
...Build_test > compress:
[echo] YUI Compression started
[echo] Replacing normal JS with compressed files.
[echo] Replacing normal CSS with compressed files.
[echo] chmoding assets
[echo] YUI Compression ended
Build_test > pdepend:
Build_test > httpd_restart:
[echo] Stopping httpd: [ OK ]
[echo] Starting httpd: [ OK ]
BUILD FINISHED
Total time: 13.1424 seconds
Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information
[JDepend] JDepend plugin is ready
[JDepend] Found 68 classes in 1 packages
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud) 有没有办法区分ajax调用和PHP中的普通浏览器请求(或codeigniter是具体的)?
这是我的jquery ajax调用:
$(document).ready(function() {
$('#container').load('http://localhost/index.php/customer/');
});
Run Code Online (Sandbox Code Playgroud)
这是codeigniter中客户控制器的索引方法:
public function index() {
//if (call == 'ajax request')
// do this if it's an ajax request;
//else
// do that if user directly type the link in the address bar;
$this->load->view('customer/listview');
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢.
codeigniter ×10
php ×7
mysql ×2
activerecord ×1
ajax ×1
apache ×1
captcha ×1
cookies ×1
css ×1
dom ×1
hudson ×1
insert ×1
jquery ×1
parsing ×1
phing ×1
pyrocms ×1
session ×1
validation ×1
web-scraping ×1