我在codeigniter框架中制作了一个web应用程序。我是在Windows机器上开发这个应用程序的,最终版本在同一台机器上运行得非常好(确切地说是Windows,wamp)。现在我需要在ubuntu服务器上部署这个应用程序。在应用程序中要求初始登录后,它不会显示任何其他页面。在检查控制台时,我发现了这个
[09:08:37.255] GET http://localhost/sac.org/index.php/member [HTTP/1.0 500 Internal Server Error 17ms]
我认为这是一个非常普遍的问题,从这些问题可以明显看出:
codeigniter框架在linux上不工作
Windows代码在linux上不工作
codeigniter上载在linux上不工作
这里也有Codeigniter的问题
还有更多。这些帖子中提到的答案对我不起作用。有什么办法解决这个问题吗?
我的代码样本是
<?php
class member extends CI_Controller{
public $data1 = "";
public function __construct(){
parent::__construct();
$this->load->helper('form');
$this->load->helper('url');
$this->load->library('session');
$this->load->library('table');
$this->load->model('membermodel');
$this->data1 = $this->membermodel->getYearList();
}
private function accesscheck(){
$privilege = $this->session->userdata('privilege');
if($privilege=='2'||$privilege=='1'){
return "True";
}
}
public function index(){
echo phpinfo();
die();
if($this->accesscheck()){
$data = array('years'=>$this->membermodel->getYearList());
$notifications = $this->membermodel->numberOfNotifications();
$this->session->set_userdata('notifications',$notifications);
$this->load->view('templates/header',$data);
$this->load->view('templates/menu');
$this->load->view('members/home',$data);
$this->load->view('templates/footer');
}
else{
$this->load->view('templates/accessErr');
}}
public function year($year){
if($this->accesscheck()){
$this->getTable($year,"FullList");
}else{
$this->load->view('templates/accessErr');
}}
public function positive($year){
if($this->accesscheck()){
$this->gettable($year,"positive");
}else{
$this->load->view('templates/accessErr');
}
}
public function negative($year){
if($this->accesscheck()){
$this->getTable($year,"negative");
}
else{
$this->load->view('templates/accessErr');
}}
public function neutral($year){
if($this->accesscheck()){
$this->getTable($year,"neutral");
}else{
$this->load->view('templates/accessErr');
}}
public function registered($year){
if($this->accesscheck()){
$this->gettable($year,"register");
}else{
$this->load->view('templates/accessErr');
}}
public function uncontacted($year){
if($this->accesscheck()){
$this->getTable($year,"uncontacted");
}else{
$this->load->view('templates/accessErr');
}}
public function unsearched($year){
if($this->accesscheck()){
$this->getTable($year,"unsearched");
}else{
$this->load->view('templates/accessErr');
}}
public function notfound($year){
if($this->accesscheck()){
$this->gettable($year,"notFound");
}else{
$this->load->view('templates/accessErr');
}}
public function Paid($year){
if($this->accessCheck()){
$this->getTable($year,"Paid");
}else{
$this->load->view('templates/accessErr');
}}
public function getProfile(){
$id=$this->input->get('id');
$data = $this->membermodel->getPrimaryInfo($id);
echo json_encode($data);
}
public function getTable($year,$list){
$this->data1 = $this->membermodel->getYearList();
if(in_array(array('alumSince'=>$year),$this->data1)){// think of a get around
$data['table'] = $this->membermodel->getTable($year,$list);
$data['year'] = $year;
$this->load->view('templates/header');
$this->load->view('templates/menu');
$this->load->view('members/fullList',$data);
$this->load->view('templates/footer');
}else{
$this->load->view('templates/header');
$this->load->view('templates/badParam');
$this->load->view('templates/footer');
}
}
public function search(){
if($this->session->userdata('privilege')){
$this->load->view('templates/header');
$this->load->view('templates/menu');
$this->load->view('members/search');
$this->load->view('templates/footer');
}
else
$this->load->view('templates/accessErr');
}
public function generate_result(){
if($this->session->userdata('privilege')){
$data = $this->membermodel->search();
if($data){
$this->load->view('templates/header');
$this->load->view('templates/menu');
$this->load->view('members/search_result',$data);
$this->load->view('templates/footer');
}
}else{
$this->load->view('templates/accessErr');
}
}
public function updateProfile(){
if($this->accessCheck()){
if($this->input->post('submit')){
if($msg = $this->membermodel->updateProfile()){
header('Refresh:2,url='.$_SERVER["HTTP_REFERER"]);//security issues here
echo $msg;
}
}
}else{
$this->load->view('templates/accessErr');
}
}
public function updateSearch(){
if($this->accessCheck()){
$alumid = $this->input->get('alumid');
$search = $this->input->get('search');
$result = $this->membermodel->updateSearch($alumid,$search);
echo $result;
}
else{
$this->load->view('templates/accessErr');
}
}
public function updateResponse(){
if($this->accessCheck()){
$alumid = $this->input->get('alumid');
$response = $this->input->get('response');
$result = $this->membermodel->updateResponse($alumid,$response);
echo $result;
}
else{
$this->load->view('templates/accessErr');
}
}
public function updatePayment(){
if($this->accessCheck()){
$alumid = $this->input->get('alumid');
$dateofpayment = $this->input->get('dateofpayment');
$referenceNo = $this->input->get('referenceNo');
$paymentAmt = $this->input->get('paymentAmt');
$remarks = $this->input->get('remarks');
$result = $this->membermodel->updatePayment($alumid,$dateofpayment,$referenceNo,$paymentAmt,$remarks);
echo $result;
}else{
$this->load->view('templates/accessErr');
}
}
public function updateRegister(){
if($this->accessCheck()){
$register = $this->input->get('register');
$alumid = $this->input->get('alumid');
$result = $this->membermodel->updateRegister($alumid,$register);
echo $result;
}else{
$this->load->view('templates/accessErr');
}
}
public function addCallDetail(){
$alumid = $this->input->get('alumid');
date_default_timezone_set('Asia/Calcutta');
$date = date('Y-m-d');
$time = date('H:i:s');
echo $this->membermodel->addCallDetail($alumid,$date,$time);
}
public function updateCall(){
$remarks = $this->input->get('remarks');
$nextdate = $this->input->get('nextdate');
$nexttime = $this->input->get('nexttime');
$callid = $this->input->get('callid');
$alumid = $this->input->get('alumid');
echo $this->membermodel->updateCall($remarks,$nextdate,$nexttime,$callid,$alumid);
}
public function updateMember(){
$name = $this->input->get('name');
$age = $this->input->get('age');
$gender = $this->input->get('gender');
$relationship = $this->input->get('relationship');
$alumid = $this->input->get('alumid');
echo $this->membermodel->updateMember($name,$age,$gender,$relationship,$alumid);
}
public function removeAccompaniant(){
$memberid = $this->input->get('id');
$alumid = $this->input->get('alumid');
echo $this->membermodel->removeAccompaniant($memberid,$alumid);
}
public function updateRemark(){
$remark = $this->input->get('remark');
$alumid = $this->input->get('alumid');
echo $this->membermodel->updateRemark($alumid,$remark);
}
public function getNetworkingSummary($year){
$userid = $this->membermodel->getUserId();
if($data = $this->membermodel->getNetworkingSummary($userid,$year))
echo json_encode($data);
//echo json_encode($data['msg']="boo");
}
public function getNotifications(){
if($this->accessCheck()){
$data['result'] = $this->membermodel->getNotifications();
$this->load->view('templates/header');
$this->load->view('templates/menu');
$this->load->view('templates/dummyMember',$data);
$this->load->view('templates/footer');
}else{
$this->load->view('templates/accessErr');
}
}
public function notificationStatus(){
$id = $this->input->get('id');
$this->membermodel->updateNotificationStatus($id);
}
}
?>
根据Prix的建议,我检查了错误日志,发现问题是由于语法错误造成的。我使用的是PHP5.4中添加的函数数组解引用。0,但我的服务器运行的是PHP5.2。
解决办法就在这里
解决办法奏效了。我不得不采用这种方法,而不是升级我的PHP版本,因为服务器运行的是Ubuntu12.04,它没有PHP5.4的repos。
为了在跨API开发中向开发者提供一致的开发体验,所有的命名应该保证: 简单 直观 一致 这适用于接口、资源、集合、方法以及消息的命名。 因为很多开发者并非以英语作为母语,所以命名约定的目标之一是确保大多数开发者可以更容易理解 API。对于方法和资源,我们鼓励使用简单、直观和一致的单词来命名。 API 中的命名应该使用正确的美式英语。例如,使用美式英语的 license 而非英式英语的 licenc
在本节,我们不会讨论适用于大规模和可维护的最佳 CSS 命名方案,因为这不仅仅超过了个人的能力范围,也不是一个Sass样式指南可以解决的问题。我个人推荐遵从 CSS Guidelines 的建议。 良好的命名对保持整体代码的一致性和可读性非常重要,在 Sass 中可以命名的地方如下: 变量; 函数; 混合宏。 由于 Sass 占位符遵循和类名相同的命名模式,因此被视为常规的 CSS 选择器,也就在
函数名 小技巧 使用小写字母,并用下划线分隔单词。使用双冒号 :: 分隔库。函数名之后必须有圆括号。关键词 function 是可选的,但必须在一个项目中保持一致。 如果你正在写单个函数,请用小写字母来命名,并用下划线分隔单词。如果你正在写一个包,使用双冒号 :: 来分隔包名。大括号必须和函数名位于同一行(就像在Google的其他语言一样),并且函数名和圆括号之间没有空格。 # Single fu
问题内容: 我的完整变量名称是“唯一代码”,但是我希望此变量是“ ucode” -ish。 那么考虑Java命名约定是正确的吗? 编码 uCode UCode 问题答案: 请参阅编码约定。对于变量,建议使用驼峰式大小写。回覆。命名,我本以为 将是最合乎逻辑的选择(我知道那不在您的选择列表中)。任何变体在我看来都是 unicode 的缩写,我认为这是一种误导。以上不是一个太长的名称(例如,它不是Ab
问题内容: 按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我知道关于哪种命名约定最适合JavaScript的争论很多(也许没有争议,但至少有争论)。 您如何命名变量,函数,对象等? 我将对此保留自己的想法,因为我已经
问题内容: JSON命名有标准吗?我看到大多数示例都使用所有小写字母,并用下划线(lower_case)分隔。但是,可以使用PascalCase或camelCase吗? 问题答案: 目前尚无SINGLE标准,但我已经看到您提到的3种样式(“ Pascal / Microsoft”,“ Java”()和“ C”(下划线,))以及至少另外一种样式,例如)。 这似乎主要取决于所涉及服务的背景开发人员。具