Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Notice: Undefined index:
Forum PHP.pl > Forum > Przedszkole
binprogrammer
Witam.

Po zmianie serwera dla php fusion wyskakuję mi błąd:

  1. Notice: Undefined index: cat_image in /home/ptasior/domains/overlife.pl/public_html/pcinfo/themes/Stylo/theme.php on line 70


To powinien być ten kawałek kodu:


  1. global $locale;
  2.  
  3. opentable($subject);
  4. echo "<div class='floatfix news-body'>".$info['cat_image'].$news."</div> // 70 linia
  5. <div class='news-footer'>
  6. ".newsposter($info," &middot;").newsopts($info,"&middot;").itemoptions("N",$info['news_id']).
  7. "</div>\n";
  8. closetable();
  9.  
  10. }


Dodam, że na poprzednim serwerze działało.
Ktoś z Was wie o co chodzi?
luckyps
Hmmm... undefined Index to tak jakby nie mogl znalezc w $info -->'cat_image'
binprogrammer
Mogę podać cały plik.

  1. <?php
  2. if (!defined("IN_FUSION")) { die("Access Denied"); }
  3. require_once INCLUDES."theme_functions_include.php";
  4.  
  5. require_once THEMES."templates/switcher.php";
  6. define("THEME_WIDTH", "90%");
  7. define("THEME_BULLET", "<span class='bullet'><img src='".THEME."images/bullet.gif' border='0' alt=''/></span>");
  8. $enable_colour_switcher = true; //true=enable colour switcher | false=disable colour switcher
  9. // Colour Switcher // Default Colour black
  10. $colour_switcher = new Switcher("select", "colour", "gif", "blue", "switcherbutton");
  11. if(!$enable_colour_switcher){
  12. $colour_switcher->disable();
  13. }
  14.  
  15. //redirect_img_dir(THEME."forum", THEME."forum/".$colour_switcher->selected);
  16. set_image("pollbar", THEME."images/pollbar.gif");
  17.  
  18. function get_head_tags(){
  19. global $colour_switcher;
  20. echo $colour_switcher->makeHeadTag();
  21. }
  22.  
  23. function render_page($license=false) {
  24.  
  25. global $settings, $locale, $userdata, $aidlink, $main_style, $colour_switcher, $mysql_queries_time;
  26.  
  27. //Header
  28. echo "<div class='center $main_style' style='background-color:#EDF0F4;width:".THEME_WIDTH.";'>\n";
  29. echo "<div class='floatfix'>\n";
  30. echo "<div class='full-header floatfix'>\n".showbanners()."";
  31. echo"</div>\n";
  32.  
  33. //Subheader
  34. echo "<div class='sub-header floatfix' align='center'>\n";
  35. echo "<div class='sublinks'>".showsublinks("<span class='bullet'>&middot;</span> ","white")."</div>\n";
  36. echo "<div class='switcher-pos'> ".$colour_switcher->makeForm()."</div>\n";
  37. echo "</div>\n";
  38.  
  39. //Content
  40. if (LEFT) { echo "<div id='side-border-left'>".LEFT."</div>\n"; }
  41. if (RIGHT) { echo "<div id='side-border-right'>".RIGHT."</div>\n"; }
  42. echo "<div id='main-bg' class='clearfix'><div class='floatfix'>".U_CENTER.CONTENT.L_CENTER."</div></div>\n";
  43.  
  44. //Bottom
  45. echo "<div class='bottom floatfix'><hr width='90%'></hr></div>\n";
  46.  
  47. //Footer
  48. echo "<div class='footer floatfix'>\n";
  49. echo "<div class='copyright'>\n";
  50. //////REMOVAL OF THIS COPYRIGHT HEADER IS STRICTLY PROHIBITED /////////////
  51. if ($license == false) { echo showcopyright()."<br />\n"; }
  52. echo stripslashes($settings['footer'])."\n";
  53. echo "</div>\n";
  54. echo "</div>\n";
  55. echo "</div>\n";
  56. echo "</div></div></div>\n";
  57. //////REMOVAL OF THIS COPYRIGHT HEADER IS STRICTLY PROHIBITED /////////////
  58. if(function_exists('add_to_head')){ add_to_head("<meta name='copyright' content='Fangree Productions Copyright 2011' />"); add_to_head("<meta name='Author' content='Craig Dewar AKA Fangree_Craig, admin@fangree.co.uk' />");}
  59. //////REMOVAL OF THIS COPYRIGHT HEADER IS STRICTLY PROHIBITED /////////////
  60. echo"</div>\n";
  61. echo "</div></div></div>\n";
  62.  
  63. }
  64.  
  65. function render_news($subject, $news, $info) {
  66.  
  67. global $locale;
  68.  
  69. opentable($subject);
  70. echo "<div class='floatfix news-body'>".$info['cat_image'].$news."</div>
  71. <div class='news-footer'>
  72. ".newsposter($info," &middot;").newsopts($info,"&middot;").itemoptions("N",$info['news_id']).
  73. "</div>\n";
  74. closetable();
  75.  
  76. }
  77.  
  78. function render_article($subject, $article, $info) {
  79.  
  80. global $locale;
  81.  
  82. opentable($subject);
  83. echo "<div class='floatfix news-body'>".($info['article_breaks'] == "y" ? nl2br($article) : $article)."</div>
  84. <div class='news-footer'>
  85. ".articleposter($info," &middot;").articleopts($info,"&middot;").itemoptions("A",$info['article_id']).
  86. "</div>\n";
  87. closetable();
  88. }
  89.  
  90. function render_comments($c_data, $c_info){
  91. global $locale;
  92.  
  93. opentable($locale['c100']);
  94. if (!empty($c_data)){
  95. echo "<div class='comments floatfix'>\n";
  96. $c_makepagenav = '';
  97. if ($c_info['c_makepagenav'] !== false) {
  98. echo $c_makepagenav = "<div style='text-align:center;margin-bottom:5px;'>".$c_info['c_makepagenav']."</div>\n";
  99. }
  100. foreach($c_data as $data) {
  101. echo "<div class='tbl2'>\n";
  102. if ($data['edit_dell'] !== false) {
  103. echo "<div style='float:right' class='comment_actions'>".$data['edit_dell']."\n</div>\n";
  104. }
  105. echo "<a href='".FUSION_REQUEST."#c".$data['comment_id']."' id='c".$data['comment_id']."' name='c".$data['comment_id']."'>#".$data['i']."</a> |\n";
  106. echo "<span class='comment-name'>".$data['comment_name']."</span>\n";
  107. echo "<span class='small'>".$data['comment_datestamp']."</span>\n";
  108. echo "</div>\n<div class='tbl1 comment_message'>".$data['comment_message']."</div>\n";
  109. }
  110. echo $c_makepagenav;
  111. if ($c_info['admin_link'] !== false) {
  112. echo "<div style='float:right' class='comment_admin'>".$c_info['admin_link']."</div>\n";
  113. }
  114. echo "</div>\n";
  115. } else {
  116. echo "<div class='nocomments-message spacer'>".$locale['c101']."</div>\n";
  117. }
  118. closetable();
  119. }
  120.  
  121. function opentable($title) {
  122.  
  123. echo "<div class='capmain'>$title</div>\n";
  124. echo "<div class='main-body2'>\n";
  125.  
  126. }
  127.  
  128. function closetable() {
  129.  
  130. echo "</div>\n";
  131.  
  132. }
  133.  
  134. function openside($title, $collapse = false, $state = "on") {
  135.  
  136. global $panel_collapse; $panel_collapse = $collapse;
  137.  
  138. echo "<div class='side-body-bg'>";
  139. echo "<div class='scapmain'>";
  140. if ($collapse == true) {
  141. $boxname = str_replace(" ", "", $title);
  142. echo "<div class='box'>".panelbutton($state,$boxname)."</div>";
  143. }
  144. echo $title."</div>\n<div class='side-body floatfix'>\n";
  145. if ($collapse == true) { echo panelstate($state, $boxname); }
  146.  
  147. }
  148.  
  149. function closeside($collapse = false) {
  150.  
  151. global $panel_collapse;
  152.  
  153. if ($panel_collapse == true) { echo "</div>\n"; }
  154. echo "</div></div>\n";
  155.  
  156. }
  157. ?>
Swirek
właśnie Ci odpisywałem, abyś podał więcej kodu. pokaż wywołanie i skąd pobierany jest parametr $info z funkcji render_news($subject, $news, $info)
bastard13
Piękny kod:)
dodaj var_dump($info) w linii 69, aby zobaczyć co tam siedzi.
Poza tym luckyps napisał ci w czym problem. Brak indeksu w $info.
binprogrammer
Kod jest nie mój. Jak mam usunąć ten komunikat o braku indexu?
Swirek
bastard13 napisał Ci abyś wyrzucił var_dump($info) i zobaczył co tam w środku siedzi. wtedy też moglibyśmy może pomóc.
zmienna $info powinna kryć w sobie dane które wnioskuje, że są ważne dlatego usunięcie jej nie wchodzi w grę.
a czy czasem skrypt nie używa zmiennych globalnych?
może na nowym serwerze w pliku php.ini wystarczy włączyć registers global choć na pewno moment ktoś podpowie Ci, że to nie jest najlepsze rozwiązanie, ale może naprawi problem
bastard13
Szukaj a znajdziesz:
http://www.google.pl/#sclient=psy&hl=p...252&bih=577

Po przeglądnięciu trzech pierwszych wyników zrozumiesz w czym problem i znajdziesz rozwiązanie.
Następnym razem trochę się wysil.
binprogrammer
wrzuciłem do 69, wyglądało to tak

  1. global $locale;
  2. var_dump($info)
  3. opentable($subject);
  4. echo "<div class='floatfix news-body'>".$info['cat_image'].$news."</div>
  5. <div class='news-footer'>
  6. ".newsposter($info," &middot;").newsopts($info,"&middot;").itemoptions("N",$info['news_id']).
  7. "</div>\n";
  8. closetable();
  9.  
  10. }


Ale błąd wywalało

Wyczytałem, że chyba isset powinno załatwić sprawę, ale nie wiem jak wdrążyć to do mojego kodu.
mortus
Przed linią 70 dopisz:
  1. if(!isset($info['cat_image'])) $info['cat_image'] = '';

To, że dane w tablicy $info są ważne, nie oznacza, że są konieczne, dlatego indeksu cat_info może nie być.
Podejrzewam, że funkcja render_news(), która sieje zamieszanie, kryje się pod jednym z plików zdefiniowanych przez stałe U_CENTER, CONTENT, L_CENTER w linii 42.
binprogrammer
Ślicznie dziękuję, zadziałało smile.gif
Swirek
sprawdź jeszcze na stronie czy skrypt wyrzuca to co powinien ponieważ błąd może być głębiej przy zmiennej $info
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.