我不能用文字来形容这个,所以我会给你看图片.
以下是我的设计师打算在我们网站的侧边栏中查看Gravatar图像的方式:
设计师如何想要它http://i41.tinypic.com/rjnn6v.png
这是我制作的叠加图像(从Photoshop截取):
我的叠加图片http://i43.tinypic.com/s1sz2e.png
这是它现在的样子......
不太理想http://i42.tinypic.com/21j13s3.png
不太理想,我想你会同意的.这是我正在使用的CSS代码:
.gravatarsidebar {
float:left;
padding:0px;
width:70px;
}
.gravataroverlay {
width:68px;
height:68px;
background-image: url('http://localhost:8888/images/gravataroverlay.png');
}
Run Code Online (Sandbox Code Playgroud)
这里是XHTML(和一些PHP来根据用户的电子邮件地址获取Gravatar,这是从我们的数据库中获取的):
<div class="gravataroverlay"></div>
<div class="gravatarsidebar">
<?php $gravatar_link = 'http://www.gravatar.com/avatar/' . md5($email) . '?s=68';
echo '<img src="' . $gravatar_link . '" alt="Gravatar" />'; ?>
</div>
Run Code Online (Sandbox Code Playgroud)
那我该怎么办?我无法使用相对定位,因为它使下面div中的"搜索"一词保持向右移动.
谢谢你的帮助!
插口
编辑:我想我已经解决了一些问题.- 这个角色 - ’
似乎打破了它.如果我使用'常规'撇号('
)它似乎工作正常,如果我用常规撇号替换其中的每个时髦撇号,它提交就好了.那么,下一个问题:为什么那个花哨的撇号打破了CodeIgniter或PHP?我会认为这是一个CI错误,但如果我错了,请纠正我.无论如何,这是我最初发布的问题,我仍然会理解为什么会发生这种情况以及我能做些什么呢?
我把头发撕成了这个.这完全是奇怪的,我根本无法解决这个问题.
首先,我有一个基本形式:
<?php $attributes = array('class' => 'form1'); $selected="";
echo form_open('admin/edit_page/'.$page->row('id'), $attributes); ?>
<div>
<?php echo form_error('title'); ?>
<label>Page Title:</label><input type="text" maxlength="100" name="title" value="<?php echo $page->row('title');?>" />
</div>
<div class="textarea">
<?php echo form_error('content'); ?>
<label>Page Content:</label><textarea name="content"><?php echo $page->row('content');?></textarea>
</div>
<div class="no">
<input type="submit" value="Submit"/>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
接下来,我有相应的CI功能:
function edit_page($id)
{
$this->form_validation->set_rules('title', 'Title', 'trim|required|max_length[50]');
$this->form_validation->set_rules('content', 'Content', 'trim|required');
// If validation has failed...
if ($this->form_validation->run() == FALSE)
{
$data['page'] = $this->gallery_model->get_page($id); …
Run Code Online (Sandbox Code Playgroud) 这是我的控制器代码来配置规则:
// Previous address(es)
$this->form_validation->set_rules('prev_house_number[]', 'House Number', 'trim|alpha_numeric');
$this->form_validation->set_rules('prev_abode[]', 'Abode', 'trim');
$this->form_validation->set_rules('prev_house_name[]', 'House Name', 'trim');
$this->form_validation->set_rules('prev_address_line_1[]', 'Address Line 1', 'required|trim');
$this->form_validation->set_rules('prev_address_line_2[]', 'Address Line 2', 'trim');
$this->form_validation->set_rules('prev_city[]', 'Town/City', 'required|trim');
$this->form_validation->set_rules('prev_county[]', 'County', 'trim');
$this->form_validation->set_rules('prev_postcode[]', 'Postcode', 'required|max_length[9]|trim');
$this->form_validation->set_rules('prev_country[]', 'Country', 'trim');
$this->form_validation->set_rules('prev_months[]', 'Previous Months', 'trim|integer');
$this->form_validation->set_rules('prev_years[]', 'Previous Years', 'trim|integer');
Run Code Online (Sandbox Code Playgroud)
用户最多可以输入5个以前的地址,如下所示:
地址行1字段后面的代码如下所示:
<div class="input w100 f-left c-none">
<input type="text" class="address_line_1 postcode_prev_address_1" id="prev_address_line_1[]" name="prev_address_line_1[]" value="<?php echo set_value('prev_address_line_1[]');?>"/>
<label for="prev_address_line_1[]">Address Line 1 <span class="required">*</span></label>
</div>
Run Code Online (Sandbox Code Playgroud)
问题在于:假设我输入了5个地址,并且表单上的验证失败,所有五个输入区域将按预期正确地重新填充.但是,CodeIgniter的验证不适用于阵列输入.
这是验证后的直接截图:
正如您所看到的,尽管它使用正确的值重新填充表单,但它不会对它们应用验证规则,并且似乎无法从控制器中识别它们的存在.
我能做什么?
谢谢!
插口
基本上我的webapp我试图组织它好一点.就目前而言,每次我想加载页面时,我都必须从我的控制器中执行此操作:
$this->load->view('subviews/template/headerview');
$this->load->view('subviews/template/menuview');
$this->load->view('The-View-I-Want-To-Load');
$this->load->view('subviews/template/sidebar');
$this->load->view('subviews/template/footerview');
Run Code Online (Sandbox Code Playgroud)
你可以说它并不是非常有效.
所以我想我会创建一个'主'视图 - 它叫做template.php.这是模板视图的内容:
<?php
$view = $data['view'];
$this->load->view('subviews/template/headerview');
$this->load->view('subviews/template/menuview');
$this->load->view($view);
$this->load->view('subviews/template/sidebar');
$this->load->view('subviews/template/footerview');
?>
Run Code Online (Sandbox Code Playgroud)
然后我想我可以从这样的控制器调用它:
$data['view'] = 'homecontent';
$this->load->view('template',$data);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我根本无法做到这一点.有没有人可以解决这个问题或修复我可以实施的方法?我已经尝试在template.php中将"s"和's'放在$ view周围,但这没什么区别.通常的错误是"未定义的变量:数据"或"无法加载视图:$ view.php"等.
谢谢大家!
插口
所以我有一个插件 - jScrollPane - http://www.kelvinluck.com/assets/jquery/jScrollPane/jScrollPane.html - 这很棒,但是,我想将它应用于Ajax生成的div.
我如何将jScrollPane与jQuery结合使用live()
?有关live()的更多信息,请访问:http://api.jquery.com/live/
谢谢!
插口
首先我没有写这段代码。我在别人的网站上找到了它,我想通过自己尝试从中学习。但是我不能让它工作。我已经用谷歌搜索了代码,以防它是一个免费提供的 jQuery 插件或任何东西,但我无法在网络上的任何地方找到它。
我有我的侧边栏(带有 id #sidebar)并给了它“粘性”类,我在页面顶部包含了 jQuery,并且我已经把这段代码放在了头部:
<!-- Floating sidebar jQuery -->
<script type="text/javascript">
var Sticky = function( $obj, opts ){
$(window).scroll(
function(e){
Sticky.onScroll(e, $obj, opts );
});
}
Sticky.onScroll = function( e, $o, opts ){
var iScrollTop = $(window).scrollTop();
var sClass = "sticky";
//set original data
if( !$o.data(sClass) ){
$o.data(sClass, {css:{position:$o.css('position'),top:$o.css('top')}, offset:$o.offset()} );
}
var oOrig = $o.data(sClass);
var bIsSticky = $o.hasClass(sClass);
if( iScrollTop > oOrig.offset.top && !bIsSticky ){
$o.css({position:'fixed',top:0}).addClass(sClass);
}else if(iScrollTop < oOrig.offset.top && bIsSticky){
$o.css(oOrig.css).removeClass(sClass); …
Run Code Online (Sandbox Code Playgroud) 这更像是一个理论问题,而不是具体问题.
我有一个使用CodeIgniter的Form Validation类设置的表单.我有一些规则在运行,例如:
$this->form_validation->set_rules('address_line_1', 'Address Line 1', 'required|xss_clean|trim');
我最终想把address_line_1
数据放到我的数据库中.这是我有点困惑的地方.似乎有几种$_POST
从CodeIgniter 中获取数据的方法:
$address = $_POST['address_line_1'];
$address = $this->input->post('address_line_1');
$address = $this->form_validation->set_value('address_line_1');
$address = set_value('address_line_1);
那么"正确"的方式是哪种方式?
虽然我确信其中有几个假设是错误的,但我一直认为......
$_POST
CodeIgniter的安全性未经过清理(我对此有信心)
$this->input->post()
将对数据进行清理(在一定程度上),但不会应用任何表单验证准备规则
$this->form_validation->set_value()
是一样的set_value()
,但......
... set_value()
旨在通过value=""
元素重新填充表单输入.
我的哪些假设是正确的,哪些是错的?$_POST
当我使用表单验证准备数据时,我应该通过什么方式提取数据?就此而言,表单验证文档含糊不清.例如,没有一个例子表明它实际上将输入数据传递到模型上.
谢谢!
插口
我有一个安全页面正在运行,Chrome正在向我显示一个红色挂锁而不是绿色挂锁,表示页面上有不安全的元素.
我仔细研究了源代码,浏览了WebKit Inspector中的每个选项卡和每个项目 - 我找不到一个引用http://
.
是否有任何WebKit Inspector工具/ Chrome扩展程序/简单的方法来找出哪些元素是insucure?或者您对哪些元素可能导致问题有任何建议?
我找到了这个扩展程序https://chrome.google.com/webstore/detail/hfoeodccbohfpgkldfcdknmlbbgmdcle,它在安全/不安全的元素周围绘制了一个绿色或红色的框 - 但执行起来相当差,并且无法看到什么是不安全的,因为我可以找不到那样的元素.
谢谢!
更新:奇怪的是,当我在隐身窗口中加载同一页面时,我开始获得绿色挂锁.我回到原来的窗口,尝试禁用每个Chrome扩展程序然后重新加载,但这没有任何区别.我认为这可能只是一个Chrome打嗝......
我仍然开始关注整个关系数据库 - thingymawhatsit.无论如何,我是一个PHP程序员,所以我可以做所有那些shabang.我只需要考虑这个场景的最佳方法是什么......
我正在开发一个网站(如果有任何帮助,可以使用CodeIgniter) - 一个用户可以发布内容的网站(想想一个博客风格的东西).每个帖子都必须有标签,任意数量的标签,我不能仅限于3或5.这必须是无限的.
那我该怎么办?
只需要知道最好的,最逻辑的结构方式.考虑桌子彼此沟通是令人困惑的......!
哦,以及任何有任何CodeIgniter片段的人的奖励积分可能会让我继续前进;)
谢谢!
插口
Laravel新手在这里,对不起,如果这很痛苦,但我已经坚持了很久!
目的:为了质量分配一个Quote::create()
数据库插入与来自形成全值,加上用户ID设置为在用户当前登录.
问题:user_id
列永远不会写入数据库.每隔一列,但user_id
保持为0.
我当然尝试添加user_id
到$fillable
数组中,但我不希望它是用户可填充的 - 我希望它由Laravel的Auth::id()
函数设置.
任何想法为什么不会存储?是因为该$quote->create()
函数不考虑先前设置的数据,只是将其参数作为要保存的所有内容?如果是这样,我该怎么做?
这是我的控制器的store()
功能:
/**
* Stores a created quote in the database
*
* @param QuoteRequest $request
*
*/
public function store(QuoteRequest $request)
{
// This method will only get fired if QuoteRequest passes
$quote = new Quote;
$quote->user_id = Auth::id();
$quote->create($request->all());
echo 'Job done';
}
Run Code Online (Sandbox Code Playgroud)
这是我的Quote
模特:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use …
Run Code Online (Sandbox Code Playgroud)