Mam ostatni plik.php w którym mam zawiadomienia.
(To nie jest cały kod PHP tego pliku, tylko część kodu dotycząca logowania do panelu administracyjnego. Pozmieniałem w komunikatach poniżej - ..on line "NR" aby pasował nr komunikatu do linii kodu poniżej - aby nie trzeba było szukać.)
1)Notice: Undefined index: sid in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 3
2)Notice: Undefined index: Admin_login_details in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 11
3)Notice: Undefined index: Admin_login_details in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 12
4)Notice: Undefined index: flash in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 14
5)Notice: Undefined index: active in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 83
6)Notice: Undefined index: submenu in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 83
7)Notice: Undefined index: active in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 83
8)Notice: Undefined index: active in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 83
9)Notice: Undefined index: submenu in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 83
10)Notice: Undefined index: active in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 83
11)Notice: Undefined index: submenu in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 83
function BeforeFilter($action,$controller,$args=null,$post=null){
if($_GET['sid']!=''){
//session_destroy();
}
$this->template->set('login_details', $_SESSION['Admin_login_details']);
$this->template->set('availableLanguages', $this->model->admin->getAdminLanguages($_SESSION['Admin_login_details']['id']));
$this->template->set('mainmenu', $this->__MainMenu($action));
$this->template->set('flash', $_SESSION['flash']);
$this->session->delete('flash');
$this->session->delete('MBeforeLoginTempA');
$this->session->delete('MBeforeLoginTempM');
}else{
$args = '/'.$this->model->admin->make_args($args);
}
$released=array('login','passwordremind', 'passwordremindsent'); $this->__checklogin($action,$controller,$args,$post,$message='1');
if(empty($_SESSION['Admin_login_details']['lang'])==true and
$action!='Lang'){ $this->__ChooseLanguage();
if($action!='index') $this->router->redirect('admin/index');
}
}
}
function __ChooseLanguage($args=null,$post=null){
$this->template->popup('prompt',$this->template->element('admin/flashLanguageSelection', array('languages' => $this->model->admin->getAdminLanguages($_SESSION['Admin_login_details']['id'])))); }
function Lang($args=null,$post=null){
$this->model->admin->changeAdminLanguage($args[0]);
$this->router->redirect('admin/index');
}
function __MainMenu($action){
1=>array('name'=>'Zamówienia','url'=>'Orders','activeon'=>array('orders')),
2=>array('name'=>'Produkty','url'=>'Products','activeon'=>array('products','products_add','products_edit','products_categories'),
'submenu'=>array(
0=>array('name'=>'Nowy produkt','url'=>'Products_add','activeon'=>array('Products_add')),
1=>array('name'=>'Kategorie','url'=>'Products_categories','activeon'=>array('Products_categories'))
)
),
3=>array('name'=>'Ustawienia','url'=>'Settings','activeon'=>array('settings')),
4=>array('name'=>'Wyloguj','url'=>'Logout')
);
foreach($menus as $option){
if(isset($option['activeon'])) foreach($option['activeon'] as $activeon){
$option['active']=true;
}
}
$i=0;
if(isset($option['submenu'])) foreach($option['submenu'] as $submenu){
foreach($submenu['activeon'] as $active){
$option['submenu'][$i]['active']=true;
}
}
$i++;
}
array_push($menu,array('name'=>$option['name'],'url'=>$option['url'],'active'=>$option['active'], 'submenu'=>$option['submenu'])); }
Więc jak muszę wpisać aby przypisać wartości?
Podajcie proszę chociaż 1 przykład.
______________________________________________
W mojej głowie narodziły się pewne domysły:
-Kod był pisany pod XAMPP 1.7.1, który posiada PHP 5.2.9
-Ważne: Pod tą wersją PHP również po dodaniu pełnego raportowania błędów pokaują się te same zawiadomienia.
WIĘC zadaję sobie pytania:
- dlaczego autor olał te zawiadomienia
- co autor kodu miał na myśli pisząc go? - 'nie wiadomo na jaką wartość poprawić'
- czy jak dodam definicję własności np. addon, to czy nie zepsuję tego kodu jeszcze bardziej?
- do czego ma służyć np. addon, jakiego ma być typu?
- czy ma mieć jakąś wartość domyślną?
______________________________________
Nasuwa mi się nowe pytanie. Proszę abyście pomogli mi na nie odpowiedzieć?
-Jak sądzicie, czy jest sens zmieniać zawiadomienia czy po prostu mieć projekt bez pełnego raportowania błędów skoro jest tak wiele w zasadzie bardzo istotnych niewiadomych?
---------------------------------------------------------
---------------------------------------------------------
Poradziłem sobie z zawiadomieniami

Oto przykłady jak by było źle proszę o poprawę:
2)Zawiadomienie nr 2 z początku posta, które wymieniałem. Poprawilem na:
$this->template->set('login_details', (isset($_SESSION['Admin_login_details'])?
$_SESSION['Admin_login_details']:""));
Już zawiadomienie się nie wyświetla.
4)
$this->template->set('flash', (isset( $_SESSION['flash'])?
$_SESSION['flash']:""));
5) 6) 7) 8) 9) 10) 11) Analogicznie:
Dodałem linię wcześniej:
if(isset($option['active']))
____
____
Zostały mi 2 zawiadomienia:
1) jak zamienię na:
if($_GET['sid']!='' && isset($_GET['sid']))
To zawiadomienie nie znika. Prosze o pomoc co jest nie tak;
3) nie wiem jak zamienić, poniewaz jak zamienię na:
$this->template->set('flash', (isset( $_SESSION['flash'])?
$_SESSION['flash']:""));
to wyskakują 3 inne zawiadomienia i 1 błąd. To może tak być faktycznie i poprawić te 4 nowe komunikaty. Czy coś nie tak z tą poprawą?
Wyskakujące nowe komunikaty:
Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\Sklep_jubilerski\app\views\layouts\default\admin.php on line 146
-Notice: Undefined variable: ftitle in C:\xampp\htdocs\Sklep_jubilerski\app\views\layouts\default\admin.php on line 146
-Warning: Illegal string offset 'content' in C:\xampp\htdocs\Sklep_jubilerski\app\views\layouts\default\admin.php on line 147
-Notice: Uninitialized string offset: 0 in C:\xampp\htdocs\Sklep_jubilerski\app\views\layouts\default\admin.php on line 147
[/php]
.....// tu kod nie tyczący się tego'
<?php
if($flash){
$ftitle['success']="Operacja zakończona powodzeniem";
$ftitle['error']="Wystąpiły błędy";
echo '<script type="text/javascript"> $(function() {
$("#dialog").dialog({
bgiframe: true,
modal: true,
autoOpen: true,
width: 400,
buttons: { "Ok": function() { $(this).dialog("close"); } }
});
});
</script>
';
}
<div id="dialog" title="'.$ftitle[$flash['type']].'"> // linia 146
'.$flash['content'].'
</div>
';
?>
</body>
</html>
Jeszcze pod strona jak przesunę scrool w dół to jest 1 zawiaomienie, którego wcześniej nie widziałem:
Notice: Undefined variable: ftitle in C:\xampp\htdocs\Sklep_jubilerski\app\views\layouts\default\admin.php on line 146
Tyczy się kou PHP powyżej.
Proszę o pomoc