Я дал задание обновить старое веб-приложение PHP, написанное на php 5.2.17 и использующее Codeigniter. При обновлении с PHP 5.2 до 5.6 я столкнулся с некоторыми ошибками. На первый взгляд кажется, что проблемы могут заключаться в использовании старого синтаксиса PHP, а также в некоторых проблемах с Codeigniter. Я никогда не работал с Codeigniter, который делает эту задачу невероятно сложной.
Проблемы возникают на странице, где вы можете отредактировать некоторые уже существующие данные о пациенте, а затем отправить новые обновленные данные. В значительной степени CRUD.
Crud прекрасно работал на сервере, поддерживающем> 5.6 PHP, но теперь, когда я перешел на сервер, который поддерживает только <5.6 PHP, у меня возникли эти проблемы. </p>
Первая проблема: на странице формы я получаю эти две ошибки, и данные внутри этих переменных не отображаются на странице. Если я решу отправить новые введенные данные, новые данные также не будут сохранены.
1) Попытка получить свойство необъекта
2) Неопределенная переменная: строки
Ошибки страницы дают мне знать, что моя ошибка происходит в следующих строках:
$anatomic_code = $rows->NerveCode;
$ProxAccess = $rows->ProxAccess;
$DistAccess = $rows->DistAccess;
При чтении документации из Codeigniter мне было предложено использовать [''] для доступа к данным, если я делаю сообщение об ошибке «Попытка получить свойство необъекта» исчезает, но у меня все еще есть вторая ошибка и все еще не видя данных на странице.
Вот большой фрагмент кода:
<div id="wrapper">
<?
$exam_id = $this->uri->segment(3);
$struct_id = $this->uri->segment(4);
$struct_type = $this->uri->segment(5);
$tech_id = $this->uri->segment(6);
$test_id = $this->uri->segment(7);
$TechName = $query_tech_type->row();
$side = $query_side->row();
//Update form
$hidden = array(
'Exam' => $exam_id,
'Struct_id' => $struct_id,
'Structure_type' => $struct_type,
'Tech_id' => $tech_id,
'Test' => $test_id
);
?>
<a href="<? echo site_url("auh/show_ind_patient/".$exam_id.""); ?> "><img src="<? echo base_url() . "public/holder/back.png"; ?>" border="0" title="Back to test page"></a>
<?
echo form_open("auh/update_enkel_test_values/","", $hidden);
echo "<h2>" . $TechName->Tech_name . "</h2>";
echo "<div id=\"tech_no\" style=\"display:none\">".$tech_id."</div>";
if ($struct_id == "1"){
foreach($query->result() as $rows):
echo "<h3>M." . $rows->MuscleName . ") (" . $side->SideText.")</h3>";
endforeach;
$anatomic_code = $rows->MuscleCode;
}
elseif ($struct_id == "2") {
foreach($query->result() as $rows):
echo "<h3>N." . $rows->NerveName . ") (" . $side->SideText.")</h3>";
endforeach;
$anatomic_code = $rows->NerveCode;
}
elseif ($struct_id == "3") {
foreach($query->result() as $rows):
if ($rows->NerveCode > 10000 ){
echo "<h3>N." . $rows->NerveName . ") (" . $side->SideText.")</h3>";
}
else {
echo "<h3>N." . $rows->NerveName . " (" . $rows->ProxName . " - ";
if ($rows->Code < 3000) {
echo "m.";
}
echo $rows->DistName . ") (" . $side->SideText.")</h3>";
}
endforeach;
$anatomic_code = $rows->NerveCode;
$ProxAccess = $rows->ProxAccess;
$DistAccess = $rows->DistAccess;
}
elseif ($struct_id == "4"){
foreach($query->result() as $rows):
$anatomic_code = $rows->NerveCode;
if ($rows->NerveCode > 10000 ){
echo "<h3>" . $rows->NerveName . " (". $side->SideText .")</h3>";
}
else{
echo "<h3>N." . $rows->NerveName . " - m." . $rows->MuscleName . " (". $side->SideText .")</h3>";
}
endforeach;
}