Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z foreach
Forum PHP.pl > Forum > Przedszkole
buliyo
Warning: Invalid argument supplied for foreach() in /home/www/konimpex-invest.pl/admin/mod/edit_home.mod.php on line 141
  1. <?php
  2. foreach($_POST['IDpowierzchni_przynaleznej'] as $v) {
  3.  $page_chbox[] = $v;
  4. }
  5. ?>

Pod php4 problem nie wystepowal.. Mozna jakos to usunac nie ingerujac w php.ini i nie zmniejszajac bezpieczenstwa?
skrypt dziala prawidlowo tylko tyle ze wyswietla warn'y
ShadowD
Pryed funkcj daj @ przykład:
  1. <?php
  2. @include('...');
  3. ?>


Tylko przed tą funkcją co daje Ci błąd...
sniezny_wilk
Cytat(ShadowD @ 10.06.2008, 11:42:45 ) *
Pryed funkcj daj @ przykład:
  1. <?php
  2. @include('...');
  3. ?>


Tylko przed tą funkcją co daje Ci błąd...


Jak już będzie to musiał umieścić w foreach'u, ale to nie pomoże, a dlaczego ? Jakbyś czytał uważnie manuala to być wiedział.

Zakładam, że zmienna którą podajesz w foreach'u nie jest tablicą.
legorek
Podałeś trochę mało informacji, ale myślę, że to rozwiąże Twój problem:

  1. <?php
  2. if (is_array($_POST['IDpowierzchni_przynaleznej'])) {
  3. foreach($_POST['IDpowierzchni_przynaleznej'] as $v) {
  4. $page_chbox[] = $v;
  5. }
  6. ?>
buliyo
no ale na 4 jakos sie udawalo aby smigalo wstydnis.gif
da sie to jakos postawic bez glebszej integracji w kod?
nie ja to pisalem.. przyszlo mi to przerzucic na nowy serwer sadsmiley02.gif
nospor
pokaz skad i jak dostajesz te $_POST['IDpowierzchni_przynaleznej']. POkaz najlepiej caly kod z tym. Blad lezy gdzies indziej
Napisz tez kiedy dostajesz ten blad: po wyslaniu forma czy przed?
pyro
Cytat(legorek @ 10.06.2008, 14:39:57 ) *
Podałeś trochę mało informacji, ale myślę, że to rozwiąże Twój problem:

  1. <?php
  2. if (is_array($_POST['IDpowierzchni_przynaleznej'])) {
  3. foreach($_POST['IDpowierzchni_przynaleznej'] as $v) {
  4. $page_chbox[] = $v;
  5. }
  6. ?>


legorek, brakuje ci jednego nawiasu klamrowego (zamykającego)
buliyo
blad po wyslaniu sie pojawia sad.gif

  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. /*
  4.  
  5.  $action = isset( $_GET['action'] ) ? $_GET['action'] : '';
  6.  $default_id_budynku='';
  7.  
  8.  $war = array();
  9.  
  10.  switch( $action ) {
  11. case 'save':
  12. save_home();
  13. break;
  14. default:
  15. show();
  16.  }
  17.  
  18.  function show() {
  19.  global $db, $balkony, $sale, $cnt_room, $default_id_budynku, $war, $conf, $home
    _type;
  20.  /* odczyt nazwy investycji */
  21.  $sql = 'SELECT `nazwa` 
  22. FROM `inwestycje` 
  23. WHERE `IDinwestycji` =' . $_GET['IDinwestycji'];
  24.  
  25.  $rst = $db->Query($sql);
  26.  $row = $db->RowAssoc($rst);
  27.  $name_invest = $row['nazwa'];
  28.  
  29.  $home = &fromDB();
  30.  foreach($home as $i => $v) {
  31. $_POST[$i] = $v;
  32.  }
  33.  /*
  34.  $_POST['IDmieszkania'] = $home['IDmieszkania'];
  35.  $_POST['nazwa'] = $home['nazwa'];
  36.  $_POST['metraz'] = $home['metraz'];
  37.  $_POST['liczba_pomieszczen'] = $home['liczba_pomieszczen'];
  38.  $_POST['cenaA_mieszkania'] = $home['cenaA_mieszkania'];
  39.  $_POST['cenaB_mieszkania'] = $home['cenaB_mieszkania'];
  40.  $_POST['sprzedane'] = $home['sprzedane'];
  41.  $_POST['typ_mieszkania'] = $home['typ_mieszkania'];  
  42.  $_POST['plik_plan_pdf'] = $home['plik_plan_pdf'];
  43.  $_POST['plik_rzut_jpg'] = $home['plik_rzut_jpg'];
  44.  $_POST['plik_tabala_jpg'] = $home['plik_tabala_jpg'];
  45.  */
  46.  getAdditionalPlace();  
  47.  require_once('tpl/edit_home.tpl.php');
  48.  }
  49.  
  50.  function fromDB() {
  51. global $db;
  52. $sql = "SELECT b.nazwa nazwa_b, p.nazwa nazwa_p, m. * 
  53. FROM `mieszkania` AS m, pietra AS p, budynki AS b
  54. WHERE b.IDbudynku = p.IDbudynku
  55. AND p.IDpietra = m.IDpietra
  56. AND m.IDmieszkania =" . $_POST['IDmieszkania'];
  57.  
  58. $rst = $db->Query($sql);
  59. return $db->RowAssoc($rst);
  60.  }
  61.  
  62.  function getAdditionalPlace() {
  63. global $db;
  64. $sql = "SELECT *
  65. FROM `powierzchnia_przynalezna_mieszkania`
  66. WHERE IDmieszkania =" . $_POST['IDmieszkania'];
  67.  
  68. $rst = $db->Query($sql);
  69.  
  70. while( $place = $db->RowAssoc($rst) ) {
  71. $_POST['IDpowierzchni_przynaleznej'][] = $place['IDpowierzchni_przynaleznej'];
  72. $_POST['metraz_'.$place['IDpowierzchni_przynaleznej']] = $place['metraz'];
  73. }
  74.  } 
  75.  
  76.  function save_home(){ 
  77. global $war;
  78.  
  79. if( validate() ) {
  80. //zapisuje
  81. if( toDB() ) {
  82. $war['save'] = 'Zapisno';
  83. }
  84. else {
  85. $war['save'] = 'Zapis do bazy nie powiodl sie';
  86. }
  87. }
  88. show();
  89.  }
  90.  
  91.  function toDB() {
  92. global $db;
  93. global $conf;
  94. $przecinek = ''; 
  95. require_once('../classes/upload.fnc.php');
  96.  
  97. chdir('..'); 
  98. $plik_plan_pdf  = isset( $_POST['plik_plan_pdf_check'] )  ? '' : ", plik_plan_pdf = '" . upLoadFile('plik_plan_pdf' , $conf['RES_HOMES']) . "'";
  99. $plik_rzut_jpg  = isset( $_POST['plik_rzut_jpg_check'] )  ? '' : ", plik_rzut_jpg = '" . upLoadFile('plik_rzut_jpg' , $conf['RES_HOMES']) . "'";
  100. $plik_tabala_jpg = isset( $_POST['plik_tabala_jpg_check'] ) ? '' : ", plik_tabala_jpg = '" . upLoadFile('plik_tabala_jpg' , $conf['RES_HOMES']) . "'"; 
  101. chdir('admin');
  102. if(!$_POST['promocja'])$_POST['promocja']=0;
  103. $sql = "UPDATE `mieszkania` SET 
  104. `nazwa` = '".$_POST['nazwa']."',
  105. `metraz` = ".$_POST['metraz'].",
  106. `liczba_pomieszczen` = ".$_POST['liczba_pomieszczen'].",
  107. `sprzedane` = ".$_POST['sprzedane'].",
  108. `promocja` = ".$_POST['promocja'].",
  109. `typ_mieszkania` = ".$_POST['typ_mieszkania'].",
  110. `cenaA_mieszkania` = ".$_POST['cenaA_mieszkania'].",
  111. `cenaB_mieszkania` = ".$_POST['cenaB_mieszkania']
  112. . $plik_plan_pdf 
  113. . $plik_rzut_jpg 
  114. . $plik_tabala_jpg . "
  115. WHERE `IDmieszkania` =" . $_POST['IDmieszkania'];
  116.  
  117. if( !$db->Query($sql) ){
  118. return false;
  119. }
  120.  
  121. /* update miejsca przynalezne */
  122.  
  123. $sql = "SELECT *
  124. FROM `powierzchnia_przynalezna_mieszkania`
  125. WHERE IDmieszkania =" . $_POST['IDmieszkania'];
  126.  
  127. if( !($rst = $db->Query($sql)) ){
  128. return false;
  129. }
  130.  
  131. while( $place = $db->RowAssoc($rst) ) {
  132. $id_from_db[] = $place['IDpowierzchni_przynaleznej'];
  133. } 
  134.  
  135. foreach($_POST['IDpowierzchni_przynaleznej'] as $v) {
  136. $page_chbox[] = $v;
  137. }
  138.  
  139. // r�nica zbiorw
  140. $delete_id = array_diff($id_from_db, $page_chbox); //delete
  141. $insert_id = array_diff($page_chbox, $id_from_db); //insert
  142.  
  143. foreach($insert_id as $i => $IDpowierzchni_przynaleznej ){
  144. $sql = 'INSERT INTO `powierzchnia_przynalezna_mieszkania` (`IDmieszkania`, `IDpowierzchni_przynaleznej`, `metraz`)
  145. VALUES (''. $_POST['IDmieszkania'] .'''' . $IDpowierzchni_przynaleznej . '', ' . $_POST['metraz_'.$IDpowierzchni_przynaleznej] .')';
  146. if( !$db->Query($sql) ){
  147. return false;
  148. }
  149. }
  150.  
  151. foreach( $delete_id as $i => $IDpowierzchni_przynaleznej ) {
  152. $sql = 'DELETE FROM `powierzchnia_przynalezna_mieszkania` 
  153. WHERE `IDmieszkania` = ' . $_POST['IDmieszkania'] . ' AND `IDpowierzchni_przynaleznej` = ' . $IDpowierzchni_przynaleznej;
  154. if( !$db->Query($sql) ){
  155. return false;
  156. }
  157. }
  158.  
  159. return true;
  160.  }
  161.  
  162.  function prepare() {
  163.  
  164. $_POST['nazwa'] = trim( $_POST['nazwa'] );
  165.  
  166. $_POST['metraz'] = str_replace(" ", "", $_POST['metraz']);
  167. $_POST['metraz'] = str_replace(",", ".", $_POST['metraz']);
  168.  
  169. $_POST['cenaA_mieszkania'] = str_replace(" ", "", $_POST['cenaA_mieszkania']);
  170. $_POST['cenaA_mieszkania'] = str_replace(",", ".", $_POST['cenaA_mieszkania']);
  171.  
  172. $_POST['cenaB_mieszkania'] = str_replace(" ", "", $_POST['cenaB_mieszkania']);
  173. $_POST['cenaB_mieszkania'] = str_replace(",", ".", $_POST['cenaB_mieszkania']);
  174.  
  175. if(isset($_POST['IDpowierzchni_przynaleznej'])) {
  176. foreach($_POST['IDpowierzchni_przynaleznej'] as $v) {
  177. $_POST['metraz_'.$v] = str_replace(" ", "", $_POST['metraz_'.$v]);
  178. $_POST['metraz_'.$v] = str_replace(",", ".", $_POST['metraz_'.$v]);
  179. }
  180. }
  181.  }
  182.  
  183.  function validate() {
  184. global $war; 
  185. require_once("../classes/CValidator.class.php");
  186. $val = new CValidator();
  187.  
  188. prepare();
  189.  
  190. if( $_POST['nazwa'] == '' ) {
  191. $war['nazwa'] = " * nie moze byc pusty";
  192. }
  193.  
  194. if( !$val->is_lenght($_POST['nazwa'],20) ) {
  195. $war['nazwa'] = " * nie wiecej niz 20 znakow";
  196. }
  197.  
  198. if( !$val->is_liczba($_POST['metraz']) ){
  199. $war['metraz'] = " * musi byc liczba";
  200. } 
  201.  
  202. if( !$val->is_liczba($_POST['cenaA_mieszkania']) ){
  203. $war['cenaA_mieszkania'] = " * musi byc liczba";
  204. }
  205.  
  206. if( !$val->is_liczba($_POST['cenaB_mieszkania']) ){
  207. $war['cenaB_mieszkania'] = " * musi byc liczba";
  208. }
  209.  
  210. if(isset($_POST['IDpowierzchni_przynaleznej'])) {
  211. foreach($_POST['IDpowierzchni_przynaleznej'] as $v) {
  212. if( !$val->is_liczba($_POST['metraz_'.$v]) ){
  213. $war['metraz_'.$v] = " * musi byc liczba";
  214. }
  215. }
  216. } 
  217.  
  218. if( count($war) ) {
  219. return false;
  220. }
  221. else {
  222. return true;
  223. }
  224.  }
  225. ?>


Cytat(pyro @ 10.06.2008, 13:08:08 ) *
legorek, brakuje ci jednego nawiasu klamrowego (zamykającego)

pomoglo ale jest jeszcze
Warning: Invalid argument supplied for foreach() in /home/www/konimpex-invest.pl/admin/mod/edit_home.mod.php on line 156

Warning: Invalid argument supplied for foreach() in /home/www/konimpex-invest.pl/admin/mod/edit_home.mod.php on line 164

// podolalem smile.gif
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.