» »

PHP problem

PHP problem

Pehko ::

Hoi ,
Imam eno nujno vprašanje v zvezi z shranjevanjem spremenljivk v PHP sticki skriptah
('<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">')
zanima me pa kako je možno shraniti spremenljivko oz. v tem primeru polje(array(npr. arr[x])) brez tega ,da bi ga vstavil kot vrednost v gumb/polje ... rabim pa ker so gumbi katere uporabljam že zasedeni za drugo funkcijo (vsebujejo podatke o izdelku katerega se bo shranilo v račun)
LP

thelole ::

Če prov razumem bi rad ti clientu poslal to spremenljivko da si jo shran...

lahko ga shraniš v
"<input type=\"hidden\" value=\"$vrednost\">";

alpa v cookie
setcookie("ime", "vrednost");


pač čis odvisno od tega za kaj rabiš to vrednost

ales85 ::

Lahko pa tudi v $_SESSION spremenljivko, če delaš s sejami.

Pehko ::

najlepša hvala za pomoč

Pehko ::

emmm imam še eno vprašanje sem poskusil naredit z $_SESSION array kateri ,bi se sam dopoljeva samo toliko za test pa mi stvar ne deluje kot si želim če mi lahko kdo pove kaj je problem bi mi to zelo pomagalo
<html>
<head>

</head>

<body>
<?php
$x = 0;
$arr = array ( 1 => 1);
session_start();

if (isset($_POST['izbira']))
$_SESSION['test']=$_SESSION['test']+1; 

else
$_SESSION['test']=1;
$x=$_SESSION['test'];
for ($i=1 ;$x>=$i; $i++) 
$arr[$i]= $_SESSION['$arr[$i]']; // tu sem mislil dopolnjevati array 

$arr[$x]= $_SESSION['test'];
for ($i=1; $x>=$i; $i++)
echo $arr[$i]; // izpis arraya
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="submit" value="<?php echo $_SESSION['test']; ?>" name="izbira">
<?php
?>
</body>

</html>


izpiše mi pa eror
Notice: Undefined index: $arr[$i] in /opt/lampp/htdocs/session.php on line 19

Zgodovina sprememb…

  • spremenilo: Pehko ()

AndyS ::

Lažje ti bo programirat in debugirat, ko se boš odločil in začel uporabljati zavite oklepaje in se boš odločil, kdaj boš uporabljal enojne in kdaj dvojne narekovaje.. Ker tale koda je disaster za brat

Pehko ::

to mi je čisto jasno ampak sem tole tu samo nametal ,da bi stestiral če stvar deluje tako kot sem si jo zamislil in opazil ,da to ne. dejansko me samo zanima kako z Seession shranit celotno polje in ga ponovno uporabit

Ziga Dolhar ::

$_SESSION['burek'] = $mojVelikiBurekArray;

Drgač pa ...

$_SESSION['$arr[$i]']

Brrrrrr!!!!!!!
https://dolhar.si/

ales85 ::

session_start() mora biti čisto na začetku kode, če se prav spomnim...

MrBrdo ::

ales ni treba samo preden se referencira session in preden se karkoli izpise mora bit
MrBrdo

ales85 ::

No, tako sem mislil samo nerodno izrazil :)

AndyS ::

MrBrdo je izjavil:

ales ni treba samo preden se referencira session in preden se karkoli izpise mora bit


kar pa v zgornji kodi ne drži

Pehko ::

HVala vsem za pomoč do zdaj ampak stvar mi enostavno ne deluje kot bi mogla skripto sem sedaj nekaj predelal probem pa je ,da mi ne shrani celotnega arraya ampak samo posamezen tab npr samo vrednost na poiciji 3 1,2 se pa "izgubi" hvala za pomoč

<html>
 
<head>
</head>
<body>

<?php
$x = 0;
$arr = array(0=>0);
session_start();

if (isset($_POST['izbira'])){
	foreach ($_SESSION['izbrani_izdelki'] as $key=>$value){
	echo 'The value of $_SESSION['."'".$key."'".'] is '."'".$value."'".' <br />';

	}
$x = $_SESSION['x'];
	$arr[$x]= $_POST['izbira'];
echo 'The value of $_SESSION['."'".$x."'".'] is '."'".$arr[$x]."'".' <br />';

}
$db = mysqli_connect ('localhost','root','test','blagajna');
$sql = "SELECT * FROM izdelki ";
$rezultat = mysqli_query ($db ,$sql) ;
$x++;
$_SESSION['x'] = $x;
$_SESSION['izbrani_izdelki']=$arr; 
while ($preizkus = mysqli_fetch_array($rezultat)){
	if ($preizkus['pravice'] == 1){
		?>
		<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
		<input type="submit" value="<?php echo $preizkus['ime_izdelka']; ?>" name="izbira">
		<?php 
		}
}
?>
</body>

</html>

pri izpisu pa izgleda tako
The value of $_SESSION['0'] is '0'
The value of $_SESSION['1'] is 'Printer hp 7890'
The value of $_SESSION['2'] is 'Cevapcici'

The value of $_SESSION['0'] is '0'
The value of $_SESSION['2'] is 'Cevapcici'
The value of $_SESSION['3'] is 'Coca cola'
lp

Zgodovina sprememb…

  • spremenilo: Pehko ()

keworkian ::

Nekako ne razumem, kaj bi ti dejansko rad naredil s tole skripto? 1,2 ne dobis zato, ker se vrednost prepise in na koncu ostane 3.
Obscenities in B-Flat

Zgodovina sprememb…

Pehko ::

keworkian je izjavil:

Nekako ne razumem, kaj bi ti dejansko rad naredil s tole skripto? 1,2 ne dobis zato, ker se vrednost prepise in na koncu ostane 3.


torej jaz bi pri tej skripti rad shranjeval vrednosti iz gumbov(katere dobim iz sql baze) katere je uporabnik kliknil v polje in jih pozneje
izpisoval z pomočj tega polja delam pa za projektno nalogo program blagajna ti gumbi tu predstavljajo izdelke izpis bi pa naj biu sprotno prikazovanje tega kaj je uporabnik že vse vnesel

Zgodovina sprememb…

  • spremenilo: Pehko ()

keworkian ::

Ok, zakaj potem delas toliko form? Zakaj mora biti ravno gumb, ce bi lahko naredil checkbox? Ne vem no, meni je res hmm... cudno.
Obscenities in B-Flat

Pehko ::

keworkian je izjavil:

Ok, zakaj potem delas toliko form? Zakaj mora biti ravno gumb, ce bi lahko naredil checkbox? Ne vem no, meni je res hmm... cudno.


ker se mi zdi gumb bolj privlačen in lažji za uporabo

keworkian ::

To je res, da je bolj privlacen, sam imas rajse privlacnejse stvari ali si pa sam sebi jamo kopljes in vanjo pades. Recimo ce bi imel checkbox, nebi imel prakticno nobenega problema, tudi s tem gumbi ne, ker moras dati pod name="izbira[]", da se vrednosti nafilajo v array.
Obscenities in B-Flat

Pehko ::

keworkian je izjavil:

To je res, da je bolj privlacen, sam imas rajse privlacnejse stvari ali si pa sam sebi jamo kopljes in vanjo pades. Recimo ce bi imel checkbox, nebi imel prakticno nobenega problema, tudi s tem gumbi ne, ker moras dati pod name="izbira[]", da se vrednosti nafilajo v array.


sedaj sem dodal izbira[] izpis pa sedaj izgleda takole
The value of $_SESSION['11'] is 'Array'
The value of $_SESSION['12'] is 'Array'
The value of $_SESSION['13'] is 'Array'
The value of $_SESSION['14'] is 'Array'
The value of $_SESSION['15'] is 'Array'
The value of $_SESSION['16'] is 'Array'
The value of $_SESSION['17'] is 'Array'
The value of $_SESSION['18'] is 'Array'
The value of $_SESSION['19'] is 'Array'

sedaj bi me pa še zanimalo če mi lahko poveš kaj še morem spremenit ,da bi namesto Array izpisal podano vrednost(value) v gumbou koda trenutno
<html>
<head>
</head>
<body>

<?php
$x = 0;

session_start();

echo 'x =' . $_SESSION['x']; 
if (isset($_POST['izbira'])){
	
	foreach ($_SESSION['izbrani_izdelki'] as $key=>$value){
	echo 'The value of $_SESSION['."'".$key."'".'] is '."'".$value."'".' <br />';
	$x++;
	}
	$x++;
	$arr[$x]=$_SESSION['izbrani_izdelki'];
	$_SESSION['x'] = $x;

	$_SESSION['izbrani_izdelki'][$x]= $arr[$x];

	echo 'The value of $_SESSION['."'".$x."'".'] is '."'".$arr[$x]."'".' <br />';

}
$db = mysqli_connect ('localhost','root','test','blagajna');
$sql = "SELECT * FROM izdelki ";
$rezultat = mysqli_query ($db ,$sql) ;


while ($preizkus = mysqli_fetch_array($rezultat)){
	if ($preizkus['pravice'] == 1){
		?>
		<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
		<input type="submit" value="<?php echo $preizkus['ime_izdelka']; ?>" name="izbira[]"
		<?php 
		}
}
?>
</body>

</html>

hvala za pomoč LP

Zgodovina sprememb…

  • spremenilo: Pehko ()

Ziga Dolhar ::

echo 'The value of $_SESSION['."'".$key."'".'] is '."'".$value."'".' <br />';


$value je array. Izpiši ga z ustrezno funkcijo (npr. print_r()). Ali pa z var_dump($_SESSION) sploh preveri, kaj imaš notri.
https://dolhar.si/

Pehko ::

Ziga Dolhar je izjavil:


echo 'The value of $_SESSION['."'".$key."'".'] is '."'".$value."'".' <br />';


$value je array. Izpiši ga z ustrezno funkcijo (npr. print_r()). Ali pa z var_dump($_SESSION) sploh preveri, kaj imaš notri.


To je sicer zadovoljiva rešitev ampak veš slučajno še kako kjer bi mi namesto
Array ( [0] => Jagode ) 19 1 izpisalo samo Jagode?

steev ::

$value[0]
:|

Pehko ::

steev je izjavil:

$value[0]


super hvala a je še kako možno ta izpis Coca cola0 1 naredit brez teh dveh številk? 0 je pozicija 1 mi pa vedno izpiše Fructal23 1

Zgodovina sprememb…

  • spremenilo: Pehko ()