我是學生,網絡程序員和我有一個任務我最近assigned.The以前的人誰拉着我的位置設立了一個新聞報道的網站,是一個小馬車的問題。不工作日期的領域正確
與網站的問題是,當您指定的日期範圍的新聞文章,以顯示它的日期,要麼恢復到他們先前否則將更改爲隨機。試圖在2010年之前設定日期是每次都會發生此問題的唯一方法。有時在出現問題之前它可以用於很多用途。
只是爲了澄清,我不是在尋找/希望有人給我一個徹底的答案/做我的工作對我來說,尤其是因爲我真的很努力學習,提高自己的技能。如果有人能指出我解決這個問題的正確方向,我會非常感激。
這裏是所有從文件中的日期我期待在引用:
// Create dates
$year = (isset($get['year'])) ? $get['year'] : date("Y");
$year2 = (isset($get['year2'])) ? $get['year2'] : date("Y");
$month = (isset($get['month'])) ? $get['month'] : date("m");
$month2 = (isset($get['month2'])) ? $get['month2'] : date("m");
$day = (isset($get['day'])) ? $get['day'] : date("d");
$day2 = (isset($get['day2'])) ? $get['day2'] : date("d");
//create first and second dates for range
$t_current = mktime(0, 0, 0, $month, $day, $year); // Current month Unix timestamp
$t_next = mktime(0, 0, 0, $month2, $day2+1, $year2); // date2 unix timestamp for date range
// Criteria
if ($author_url) {
$this->EE->db -> where ($author_name_field_id, $author_name);
$this->EE->db
-> where ("exp_channel_titles.entry_date >= $t_current")
-> where ("exp_channel_titles.entry_date <= $t_next");
}
else {
$this->EE->db
-> where ("exp_channel_titles.entry_date >= $t_current")
-> where ("exp_channel_titles.entry_date <= $t_next");
}
模板:
<div class="datelists">
<select id="month" name="month" style="display:none">
<?php
//lists months
for ($i = 0; $i <= 11; ++$i)
{
$time = strtotime(sprintf('+%d months', $i));
$value = date('m', $time);
$label = date('F', $time);
//if month is set stay on that month
if($month==$value)
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label);
}
else
{printf('<option value="%s">%s</option>', $value, $label);}
}
?>
//first month selected instead of blank
$("#target option:first")
</select>
<select id="day" name="day" style="display:none">
<?php
//lists days
for ($i = 0; $i <= 31; ++$i)
{
$time = strtotime(sprintf('+%d days', $i));
$value = date('d', $time);
$label = date('d', $time);
//if day is set stay on that day
if($day==$value)
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label);
}
else
{printf('<option value="%s">%s</option>', $value, $label);}
}
//first year selected instead of blank
?>
$("#target option:first")
</select>
<select id="year" name="year" style="display:none">
<?php
//lists years
for ($i = 0; $i <= 3; ++$i)
{
$time = strtotime(sprintf('-%d years', $i));
$value = date('Y', $time);
$label = date('Y', $time);
//if year is set stay on that year
if($year==$value)
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label);
}
else
{printf('<option value="%s">%s</option>', $value, $label);}
}
//first year selected instead of blank
?>
$("#target option:first")
</select>
<input type="hidden" id="datepicker" />
<select id="month2" name="month2" style="display:none">
<?php
//lists months
for ($i = 0; $i <= 11; ++$i)
{
$time = strtotime(sprintf('+%d months', $i));
$value = date('m', $time);
$label = date('F', $time);
//if month is set stay on that month
if($month2==$value)
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label);
}
else
{printf('<option value="%s">%s</option>', $value, $label);}
}
?>
//first month selected instead of blank
$("#target option:first")
</select>
<select id="day2" name="day2" style="display:none">
<?php
//lists days
for ($i = 0; $i <= 31; ++$i)
{
$time = strtotime(sprintf('+%d days', $i));
$value = date('d', $time);
$label = date('d', $time);
//if day is set stay on that day
if($day2==$value)
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label);
}
else
{printf('<option value="%s">%s</option>', $value, $label);}
}
//first year selected instead of blank
?>
$("#target option:first")
</select>
<select id="year2" name="year2" style="display:none">
<?php
//lists years
for ($i = 0; $i <= 3; ++$i)
{
$time = strtotime(sprintf('-%d years', $i));
$value = date('Y', $time);
$label = date('Y', $time);
//if year is set stay on that year
if($year2==$value)
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label);
}
else
{printf('<option value="%s">%s</option>', $value, $label);}
}
//first year selected instead of blank
?>
$("#target option:first")
</select>
<input type="hidden" id="datepicker" />
</div>
<label for="from">From</label>
<input type="text" id="from" value="<?php echo $month."/".$day."/".$year; ?>" />
<label for="to">to</label>
<input type="text" id="to" value="<?php echo $month2."/".$day2."/".$year2; ?>" />
<input type="submit" value="Filter" />
</form>
</p>
</div>
<!--<h1><?php echo "$month/$day/$year - $month2/$day2/$year2" . ' <br/>'?></h1>-->
<?php
if (isset($get['institute']) && is_numeric($get['institute']) ) {
echo "<h2><center>" . $institute_cat . "</center></h2>";
}
if (empty($entries)) {
echo "<h2><center>No articles found</center></h2>";
}
else {
?>
的Javascript:
<!-- javascript datepicker -->
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /></link>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="http://expeng.anr.msu.edu/css/sitewide/datepicker.css" /> </link>
<script type="text/javascript">
$(document).ready(function(){
$('#from').datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onSelect: function(dateText, inst) {
//dateText comes in as MM/DD/YY
var datePieces = dateText.split('/');
var month = datePieces[0];
var day = datePieces[1];
var year = datePieces[2];
//define select option values for
$('select#month').val(month);
$('select#day').val(day);
$('select#year').val(year);
},
});
$('#to').datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onSelect: function(dateText, inst) {
//dateText comes in as MM/DD/YY
var datePieces = dateText.split('/');
var month2 = datePieces[0];
var day2 = datePieces[1];
var year2 = datePieces[2];
//define select option values for
$('select#month2').val(month2);
$('select#day2').val(day2);
$('select#year2').val(year2);
},
});
});
</script>
http://msue.anr.msu.edu/news/report是網站以防萬一有人對自己的問題感興趣。
在此先感謝!
將$ _GET變量向前傳遞而不進行消毒不是很好的安全措施。這樣做會使您容易受到代碼注入的影響。看看EE的輸入類,以更安全的方式來處理:http://ellislab.com/expressionengine/user-guide/development/usage/input.html#Input::get – AllInOne