Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem - Notice: Undefined index
Forum PHP.pl > Forum > Przedszkole
jero79
Witam
Nie znam się kompletnie na PHP mam do ukończenia do końca tygodnia stronę internetową, a gość który mi ją przygotował jest na urlopie.
Czasami przy wprowadzaniu danych na stronę wyskakuje mi taki oto błąd:


( ! ) Notice: Undefined index: text in /home/mjerominek/domains/acteongroup.com/public_html/pl/eternity/modules/text/index.php on line 44
Call Stack
# Time Memory Function Location
1 0.0026 1545100 {main}( ) ../index.php:0
2 0.0289 1755772 module->load( ) ../index.php:106
3 0.0312 1776940 include( '/home/mjerominek/domains/acteongroup.com/public_html/pl/eternity/modules/text/index.php' ) ../module.class.php:29
[/b][/b]


Poniżej wklejam to co znajduje sie w pliku index.php


  1. <? /* Bartosz_Szczecinski btm@anfo.pl 20070810 0.6 1 */ ?>
  2. <?
  3.  
  4. require_once(dirname(__FILE__).'/api.class.php');
  5.  
  6. $text = new text();
  7.  
  8. if(!isset($_REQUEST['text']['type'])) $type = 'final';
  9. else {
  10. if(isset($_REQUEST['text']['type']['final']) && !empty($_REQUEST['text']['type']['final'])) $type = 'final';
  11. else if(isset($_REQUEST['text']['type']['wip']) && !empty($_REQUEST['text']['type']['wip'])) $type = 'wip';
  12. else if(isset($_REQUEST['text']['type']['backup']) && !empty($_REQUEST['text']['type']['backup'])) $type = 'backup';
  13. }
  14.  
  15. if(isset($_GET['delete'])) {
  16. $text->delete((int)$_GET['delete']);
  17. }
  18.  
  19.  
  20. if(isset($_POST['text'])) {
  21. if($type == 'backup' && !isset($_GET['source'])) {
  22. $content = $text->createBackup(array(
  23. 'editor' => $_SESSION['user_id'],
  24. 'text' => $_POST['text']['text'],
  25. 'module_id' => $_GET['module'],
  26. 'type' => 'backup'
  27. ));
  28. $_GET['source'] = $content['id'];
  29. }
  30. else {
  31. if(isset($_GET['source']) && $type != 'final') {
  32. $content = $text->update(array(
  33. 'editor' => $_SESSION['user_id'],
  34. 'text' => $_POST['text']['text']
  35. ), array(
  36. 'id' => $_GET['source'],
  37. 'module_id' => $_GET['module'],
  38. 'type' => $type
  39. ));
  40. }
  41. else {
  42. $content = $text->update(array(
  43. 'editor' => $_SESSION['user_id'],
  44. 'text' => $_POST['text']['text']
  45. ), array(
  46. 'module_id' => $_GET['module'],
  47. 'type' => $type
  48. ));
  49. }
  50.  
  51. }
  52. }
  53. else {
  54. if(isset($_GET['source'])) {
  55. $content = $text->read(array(
  56. 'id' => $_GET['source'],
  57. ));
  58. }
  59. else {
  60. $content = $text->read(array(
  61. 'module_id' => $_GET['module'],
  62. 'type' => $type,
  63. ));
  64. }
  65. }
  66.  
  67. $content['type'] = $type;
  68. $tpl->assign('text', $content);
  69.  
  70.  
  71. $tpl->assign('backups', $text->getBackups($_GET['module']));
  72. $page_templates[] = '../modules/text/templates/admin/default.tpl';




Proszę pomóźcie co trzeba zmienić aby to normalnie działało
Z góry dzięki
strife
Po pierwsze zmień nazwę tematu na bardziej opisującą problem ponieważ zostanie on zamknięty. Tutaj każdy ma problem i mało to mówi.

Błąd który masz to błąd typu Notice, co należy z tym zrobić masz w linku w mojej sygnaturze dot. Najczęstszych błędów popełnianych przez programistów.

A po trzecie przenoszę na Przedszkole.

PS. Jak będziesz poprawiał nazwę tematu to uwzględnij to: Temat: Tematyka i zasady panujace na forum Przedszkole

PS2. I jak dobrze zauważył kolega niżej wstaw kod w odpowiednie tagi.
!*!
Wstaw ten kod w odpowiednie tagi.
piotrex41
Po 1. Kody wklejamy w odpowiednie tagi.
Po 2. Notice to nie błędy, są to informacje (notatki), które można (ALE SIĘ NIE POLECA) wygłuszyć, przez wpisanie:
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ?>

Bardziej poleca się użyć isset() na zmiennej przed wykonaniem operacji.
jero79
ale wiadomo co jest źle? co trzeba poprawić?
Tak jak pisałem jestem zielony a muszę skończyć wstawianie informacji na stronę

Jeśli to nie błąd tylko informacja to czemu nie wstawia mi tych danych które wstawiam na stronę?
Jeśli się pojawia muszę od nowa wpisywać
Często jest to po tym jak wstawiam zdjęcia, obrazki
peter13135
Tak jak wyżej koledzy pisali, błąd ten pojawia się wtedy, gdy odwołujesz się do zmiennej która nie istnieje.
Przykład :
  1. $foo = 'bar';
  2. echo $foo;//zmienna foo istnieje, więc błędu tu nie będzie
  3. echo $bar;//ale zmienna bar nie istnieje, więc pojawi się błąd undefined
  4. [php]
  5.  
  6. Dlatego (o czym już też dostałeś informację...ale skoro nadal nie czaisz to dam przykład) jeśli nie jesteś pewny czy zmienna istnieje (lub element tablicy) musisz najpierw się upewnić. Możesz do tego użyć isset lub empty (w zależności od potrzeby).
  7. [php]
  8.  
  9. if(isset($_POST['jakies_pole']))
  10. {
  11. //formularz został wysłany, zmienna $_POST['jakies_pole'] istnieje i można ją wyświetlić, albo wykorzystać do innych obliczeń, czy czegokolwiek
  12. }
  13. else
  14. {
  15. //zmienna $_POST['jakies_pole'] nie istnieje. Jej wyświetlenie lub dowolne inne użycie spowoduje błąd undefined index
  16. }

jero79
ok widzę że nic z tego nie będzie
jak pisałem ja nie jestem programistą nie wiem o czym piszecie, liczyłem że podpowiecie co robię źle lub ewentualnie co mam zmienić w tym moim pliku index.php

Zastanawia mnie tylko czemu to się pokazuje tylko w niektórych przypadkach.
Np. miałem wstawione 10 zdjęć, jedno usunąłem i się to nie pojawiło, a przy tych 10 zawsze.
strife
Cytat(jero79 @ 17.07.2012, 15:30:43 ) *
ok widzę że nic z tego nie będzie
jak pisałem ja nie jestem programistą nie wiem o czym piszecie, liczyłem że podpowiecie co robię źle lub ewentualnie co mam zmienić w tym moim pliku index.php

Zastanawia mnie tylko czemu to się pokazuje tylko w niektórych przypadkach.
Np. miałem wstawione 10 zdjęć, jedno usunąłem i się to nie pojawiło, a przy tych 10 zawsze.

Ludzie poświęcają swój wolny czas aby Ci pomóc, a Ty piszesz, że "ok widzę że nic z tego nie będzie", nie uważasz że jest to lekko przesadzone?

Dostałeś powyżej kilka odpowiedzi, które bez problemu pomogą Ci się pozbyć tego błędu. Wystarczy chwilę pomyśleć i to poprawić.

Jeżeli z góry zakładasz, że nie jesteś programistą i nie wiesz o czy piszemy, to zapraszamy do odpowiedniego działu "Giełda ofert" w celu napisania oferty dotyczącej pozbycia się błędu za odpowiednie wynagrodzenie.

Pozdrawiam serdecznie.
piotrex41
Cytat
liczyłem że podpowiecie co robię źle lub ewentualnie co mam zmienić w tym moim pliku index.php

No to właśnie usiłujemy Ci podpowiedzieć, pomóc, naprowadzić, ale nawet nie spróbowałeś coś pokombinować z kodem po naszych radach, skoro nie wykazujesz inicjatywy, to nie zrobimy tego za Ciebie. Gotowca raczej nie dostaniesz, a z Twojego podejścia i nastawienia można wnioskować, że właśnie na to liczysz.
Chociaż spróbuj, pomożemy jeśli będziesz chciał samemu pokombinować, ale jak założysz ręce i powiesz "ja nie umiem, zróbcie mi to" to niestety nie masz na co liczyć.
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.