Znikanie wartości z tabeli post

0

fragment kodu:

<?php

print_r($addr);
print_r($addr_w);
print_r($fold);
print_r($_POST["Ksywka"]); // tutaj wszystko dziala


$ank = simplexml_load_file($addr);
$wym = simplexml_load_file($addr_w); // print_r z obiema zmiennymi wyswietla dane

foreach($wym as $z){
	if( ($_POST[$z]=='') ){ // pierwsze pole post jest puste
		echo "$_POST[$z] == $z\n"; // zmienna $z jest wysw(Ksywka), post pusty
		echo"Wypełnij wsyzstkie wymagane(wytłuszczone) pola!($z- jest zły!)";
		exit;
	 }
}
// w tym miejscu juz dane nie sa wyswietlan zadne
print_r($addr);
print_r($addr_w);
print_r($fold);
(...)
?>

W zaznaczonych miejscach tabela $_POST traci wartość o polu Ksywka(i zapewne pozostałe również).
Po wyjściu z pętli foreach elementy $wyk, $ank, $fold tracą wartości, jak również cała tabela POST.

dopisane

<?php

print_r($addr);
print_r($addr_w);
print_r($fold);
print_r($_POST["Ksywka"]);


$ank = simplexml_load_file($addr);
$wym = simplexml_load_file($addr_w);

/*

foreach($wym as $z){
	if( ($_POST[$z]=='') ){
		echo "$_POST[$z] == $z\n";
		echo"Wypełnij wsyzstkie wymagane(wytłuszczone) pola!($z- jest zły!)";
		exit;
	 }
}

*/

print_r($addr);
print_r($addr_w);
print_r($fold);
(...)
?>

powyższy kod już działa.

0

Czy warunek w pętli foreach się wykonał? Jeśli tak, to nic dziwnego, że zmienne tracą wartości, bo exit powoduje przerwanie wykonywania skryptu. Wyjście z pętli powinno odbyć się poprzez break (a najlepiej to przez znacznik i w pętli while swoją drogą).

Taki kod działa u mnie bez problemu:

<?php
	print_r($_POST);
	$ank = 'hihi';
	$addr = 'olhouhiu';
	
	echo 'ANK' . $ank;
	echo 'ADDR' . $addr;
	
	foreach ($_POST as $g)
		echo $g;
	
	$ank = simplexml_load_file($addr);	
	
	print_r($_POST);
	echo "ANK" . $ank;
	echo "ADDR" . $addr;
		
?>

Oprócz oczywistej "zniknięcia" wartości $ank z powodu nie załadowania pliku przez simplexml (bo tutaj sztucznie wywołuję błąd).

0

Problem nie w tym, iż podczas spełnienia warunku pętli oczyszczana jest POST lecz nie mam zielonego pojęcia dlaczego warunek w ogóle jest spełniany. Jest element Ksywka w tabeli post, tego jestem pewny w 100%(pole input z formularza z poprzedniej strony).

0

Jak sie nie mogę domyślić co zrobiłem źle, szukam winowajcy, usuwając podejrzany kod po kolei w stylu:

foreach($wym as $z){
}


foreach($wym as $z){
  echo $_POST['Ksywka'];
  echo $z;
  echo $_POST[$z];
}

etc etc

1 użytkowników online, w tym zalogowanych: 0, gości: 1