[ slobodnium @ 01.02.2010. 10:54 ] @
Imam stranicu poruc.php u kojoj se izlistaju svi proizvodi u tabeli sa specifikacijama slikama i imaju formu u kojoj imam kolicinu i submit dugme. kada neko unese kolicinu i klikne na submit forma salje na procesor.php na kojoj bi trebalo za taj $id koji je u tom polju da podesi kolicinu i snimi u sesiju. Na toj stranici su ok vrednosti pravi ID i prava KOLICINA ali kada se vrati na poruc.php u polju za kolicinu ne ubaci pravu vrednost

ovo je procesor.php

<?php
session_start();
$idi=$_GET['idi'];
$izbroj=$_GET['izbroj'];

$_SESSION[$idi]=$izbroj;
header ("Location: poruc.php");

?>

e sad $idi mi je ustvari ID proizvoda i to lepo procita na toj procesor strani prosledi lepo i koji je id i koja je kolicina sve je ok na toj strani
ali kad se vrati na stranicu poruc.php u poljima za kolicine nece da stoji ta vrednost :(

<FORM action=\"procesor.php\" method=\"GET\"><input type=\"text\" name=\"izbroj\" id=\"izbroj\" size=\"2\" value=".$kolicina."><input TYPE=\"hidden\" VALUE=$id NAME=\"idi\"><input type=\"SUBMIT\" value=\"DODAJ\" /></FORM>

a za kolicinu imam code koji je u petlji pre iscrtavanja tog cella tabele

if(isset($_SESSION[$id]))
$_SESSION[$id]=$_SESSION[$id];
else
$kolicina=0;


u svakom polju proizvoda ispise mi 0 umesto da zameni vrednost sa vrednoscu iz sesije za taj id :(

gde sam pogresio ?
anyhelp

[Ovu poruku je menjao slobodnium dana 02.02.2010. u 15:52 GMT+1]
[ Jbyn4e @ 01.02.2010. 11:14 ] @
Daj CEO kod stranica.

Inace, tipujem da fali session_start u poruc.php.
[ slobodnium @ 01.02.2010. 11:33 ] @
nije ;) tu je na samom pocetku

Code:

<?php
include ("putanja..../sifre.inc");
session_start();
$gdesi = curPageURL();
?>

....

pa deo koda
Code:

<table class="price" border=0 cellpadding=0 cellspacing=0>
<tr>  <td width="7"><IMG SRC="img/kutija-11.gif"></td><td class="rowm">Slika</td><td class="rowm">Šifra</td><td class="rowm">Naziv</td><td class="rowm">Kategorija</td><td class="rowm">Opis</td><td width="7"><IMG SRC="img/kutija-12.gif"></td></tr>

<?php

    $db = mysql_connect($server, $proiz,$proizpass);
    mysql_select_db($baza,$db);
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
$query="SELECT * FROM proizvodi WHERE kategorija = $vrsta";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$id=mysql_result($result,$i,"id");
$slika=mysql_result($result,$i,"Slika");
$sifra=mysql_result($result,$i,"Sifra");
$naziv=mysql_result($result,$i,"Naziv");
$kategorija=mysql_result($result,$i,"Kategorija");

switch ($kategorija) {
// ovde mi ide cela lista kategorija
    case "1": $kategorija = "kategorijeeee"; break;
}


$opis=mysql_result($result,$i,"Opis");
if(isset($_SESSION[$id]))
$_SESSION[$id]=$_SESSION[$id];
else
$kolicina=0;
echo "<tr class=\"row1\">
          <td width=\"7\" background=\"img/kutija-vertikalno1.gif\"></td><td class=\"naziv\"><A rel=\"ibox\" href=\"img/proizvodi/$slika\"><IMG SRC=\"img/proizvodi/$slika\" border=0 width=\"105\" height=\"105\"></a></td><td class=\"naziv\">$sifra</td><td class=\"naziv\">$naziv</td><td class=\"naziv\">$kategorija</td><td class=\"naziv\">$opis</td><td class=\"naziv\"><FORM action=\"procesor.php\" method=\"GET\"><input type=\"text\" name=\"izbroj\" id=\"izbroj\" size=\"2\" value=".$kolicina."><input TYPE=\"hidden\" VALUE=$id NAME=\"idi\"><input type=\"SUBMIT\" value=\"DODAJ\" /></FORM></td><td width=\"7\" background=\"img/kutija-vertikalno2.gif\"></td>
              </tr>
      <tr><td width=\"7\" height=\"10\"><IMG SRC=\"img/kutija-levo.gif\"></td><td background=\"img/kutija-sredina.gif\"></td><td background=\"img/kutija-sredina.gif\"></td><td background=\"img/kutija-sredina.gif\"></td><td background=\"img/kutija-sredina.gif\"></td><td background=\"img/kutija-sredina.gif\"></td><td width=\"7\" height=\"10\"><IMG SRC=\"img/kutija-desno.gif\"></td></tr>
";
$i++;
}
?>
    
</table>            



to je to ostatak stranice koji je izostavljen je samo iscrtavanje html kod nebitno za glavni 'code' stranice



[Ovu poruku je menjao flylord dana 01.02.2010. u 13:29 GMT+1]
[ dakipro @ 01.02.2010. 11:37 ] @
Da pitam, jel si siguran da ovaj deo koda treba ovako da stoji?

if(isset($_SESSION[$id]))
$_SESSION[$id]=$_SESSION[$id];
else
$kolicina=0;

Mislim, koja je svrha uopste ovog if-a?
Ako je setovano u sesiji, setovano je, mozes da napises sve ovo samo sa

$kolicina=0;

-----
Nema potrebe za if-om.

Ili mozda treba:


if(isset($_SESSION[$id]))
$kolicina=$_SESSION[$id];
else
$kolicina=0;
[ slobodnium @ 01.02.2010. 11:54 ] @
uf tu je bila mala greska ali opet ne radi

if(isset($_SESSION[$id]))
$kolicina=$_SESSION[$id];
else
$kolicina=0;

trebalo bi ovako

ako postoji podesena kolicina za taj $id
onda je promenljiva $kolicina jednako toj vrednosti id iz sesije
ako ne onda je kolicina 0 ... ovo je da ne bi za sve proizvode smestao vrednost u sesiju vec samo one chija je vrednost razlicita od nule

[ Jbyn4e @ 01.02.2010. 22:19 ] @
Da li si svestan da koristis u jednom slucaju id a u drugom idi?
I KAD postavljas session za id? Nesto nisam primetio u kodu da mu dodeljujes vrednost ikakvu?

I uspeo si totalno da me zbunis cemu sta sluzi. Sta konkretno radi procesor.php? Uzima DVE get promenljive i pravi JEDNU sesion promenljivu? Cemu promenljive $idi i $izbroj koje se ne prenose (osim ako si mislio da se sa header funcijom i one prenose?)
[ Jbyn4e @ 02.02.2010. 09:11 ] @

jesam svestan sam i svesno sam to uradio, nisam zeleo da diram promenljivu id tako da sam u formi stavio jedno hidden polje koje se zove idi a ima vrednost id i to lepo radi tj na procesor.php stranici lepo iscita vrednost id napr. 30 i kolicinu koja je uneta 100 na primer. e sad to bi trebalo da snimi u sesiju tipa

$_SESSION['30']=100;

id je id proizvoda u ovom primeru 30 a kolicina je 100 tako da u sesiji imam snimljeno to

vrednost za id se cita iz baze u petlji , imam tabelu i petlju u kojoj iscrtava cellove sa proizvodima, znaci lepo cita iz baze id, vrstu, sliku, opius sta ti znam vec sve to radi ok... tako da sam unutar te petlje gde iscrtava cell u svaki taj cell stavio jednu formu za unos kolicine i sve to lepo radi... mislim lepo prenese sa GET na drugu stranicu vrednost koji je id i koja je kolicina uneta

idi i izbroj su ustvari kopirane vrednosti id i kolicine promenio sam naziv da bi napravio druge promenljive a ne originalne da ne bi ja brkao neke stvari

kako se one prenose , pa nije poenta da se one prenesu vec njihove vrednosti

<?php
session_start();
$idi=$_GET['idi'];
$izbroj=$_GET['izbroj'];

$_SESSION[$idi]=$izbroj;
header ("Location: poruc.php");

?>

tj da se njihove vrednosti snime u sesiju

znachi imam promenljivu $id i $kolicina recimo nebitno , meni ne treba $_SESSION['$id']= vec da vrednost tog id bude promenljiva sesije $_SESSION['30']=
zato mi i nisu bitne koja je na drugoj strani promenljiva tj kako se zove sve dok sam je ja lepo preneo na nju a to radi e sad ovo 30 oznacava koji je proizvod tj proizvod sa id 30 u bazi

nisam siguran da li sam ja lepo napisao tj da li u sesije moze da se tako upisuje i koja je forma za upis promenljive (kada ne znam koja je unapred) tj dal i je ispravno

$_SESSION[$idi] da li ce to znaci da ako je $idi=30 onda biti upisano $_SESSION['30'] ??? jer je to ono sto meni treba u sesiji bude upisano

$_SESSION['30']=100; na primer

tako da kad ucita prvu stranu kada naidje na cell koji ima id 30 da onda procita iz sesije koja je njegova vrednost tj u ovom slucaju 100 i nju upise u text field of forme koja sluzi za kolicinu ...

uff ne znam da li sam lepo objasnio

[ slobodnium @ 02.02.2010. 09:13 ] @
ovo sam ja napisao nisam video da nisam logovan ;)
[ slobodnium @ 02.02.2010. 11:58 ] @

postavio sam error loging i nema greske

ali mi na poruc.php array je prazan :(

Array
(
)

:(

na stranici procesor.php kada uradim echo $idi i echo $izbroj dobijem tacne vrednosti

zasto onda

$_SESSION[$idi]=$izbroj;

nece da upise te vrednosti

na primer $idi 30 i $izbroj 100

zasto onda

$_SESSION[$idi]=$izbroj;

nije jednako

$_SESSION['30']=100;

ako su moje vrednosti $idi 30 i $izbroj 100 kao sto echo prikaze da je na toj stranici procesor.php

[ dakipro @ 02.02.2010. 12:04 ] @
Probaj u zasebnom fajlu pa vidi da li zaista dobijas tako:

$idi = 30;
$izbroj = 100;
$_SESSION[$idi]=$izbroj;

var_dump($_SESSION);

Ne bi trebalo da ima veze, ali probaj ipak

$_SESSION[30]=100;
ne

$_SESSION['30']=100;
[ slobodnium @ 02.02.2010. 13:23 ] @

taj tvoj kod prijavljuje istu gresku kao i onaj moj kod i tu nesto kochi tj


Notice: Unknown: Skipping numeric key 30. in Unknown on line 0


znaci istu tu gresku prijavljuje i onaj moj code na stranici procesor.php kada uzme sa get promenljive i pokusa da ih stavi znaci da je nesto drugo problem ne znam da li mozda ne moze numeric key da bude ime vrednosti sesije ili kako se to vec zove $_SESSION[xxx] mozda xxx ne moze biti broj ?!?!? ne razumem se pa ne znam. da li neko zna sta predstavlja gore ispisana greshka ?

[ dakipro @ 02.02.2010. 13:43 ] @
Jel si stavio samo ovaj kod u posebnom fajlu?
Jel si stavio session_start?
[ slobodnium @ 02.02.2010. 13:51 ] @

source code od proba.php

<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
session_start();
$idi = 30;
$izbroj = 100;
$_SESSION[$idi]=$izbroj;

var_dump($_SESSION);
?>

output je sledeci

array(1) { [30]=> int(100) }
Notice: Unknown: Skipping numeric key 30. in Unknown on line 0

on jeste kreirao tu jednu vrednost ali dzaba to kada izbaci ovu gresku jer sta se desava ako u tom code stavim header da se iz ove strane vrati na prvu stranicu opet ce mu array biti prazan zbog ove greske koju dole izbacuje

[ slobodnium @ 02.02.2010. 14:03 ] @

napravio sam novi fajl kao sto si ti rekao nazvao ga proba.php

--------------------proba.php-----------------------
<?php
session_start();
$idi = 30;
$izbroj = 100;
$_SESSION[$idi]=$izbroj;
header ("Location: proba2.php");
?>
-----------------------------------------------------


na njegovom kraju stavio header da pozove proba2.php sa sledecim sadrzajem

--------------------proba2.php-----------------------
<?php
session_start();
var_dump($_SESSION);
?>
-----------------------------------------------------


i rezultat je opet

array(0) { }

prazan


[ dakipro @ 02.02.2010. 14:04 ] @
Probaj da promenis verziju php-a, ili jos bolje probaj da dodas jednu dubinu nizu, da bude recimo $_SESSION['proizvodi'] pa ovde stavljaj po idjevima. Usput, ovo je inace i nekako logicnija organizacija niza.
Pogledaj i google sta kaze za False bug u php-u i u kojoj verziji, mozda nesto povezes odatle
Google: "Notice: Unknown: Skipping numeric key 30. in Unknown on line 0"
[ slobodnium @ 02.02.2010. 14:11 ] @

verzija php 5.2.8 i ja ne mogu da je menjam u pitanju je tudji hosting

probao sam na mom serveru

gde je verzija php 5.2.11 i ista stvar se desava

kada ode na proba2.php onda je array prazan :(
[ dakipro @ 02.02.2010. 14:21 ] @
Jel si probao i podniz da napravis?
$_SESSION['proizvodi'][$idi] = $broj;
[ slobodnium @ 02.02.2010. 14:38 ] @

ne znam bas toliko dobro php ne znam sta je pod niz

kako da napisem posle deo code da proveri da li je setovan pod niz za $id i ako jeste da onda vrednost tog podniza od to $id dodeli promenljivoj $kolicina ukoliko nije onda $kolicina=0

[ dakipro @ 02.02.2010. 14:42 ] @
Ma mislio sam na multidimenzionalni niz, kao sto sam ti napisao:
$_SESSION['proizvodi'][$idi] = $broj;

a posle proveris da li postoji 'proizvodi' ili samo proveris isset($_SESSION['proizvodi'][$idi]) ili kombinaciju, probaj redom sta radi i kad kako, zavisi od strukture koda


session_start();
$idi = 30;
$izbroj = 100;
$_SESSION['proizvodi'][$idi]=$izbroj;
header ("Location: proba2.php");
[ slobodnium @ 02.02.2010. 14:51 ] @

uspeo sam konacno, hvala dakipro na pomoci a i ostalimaaaaa


uzdravlje sve naj
[ dakipro @ 02.02.2010. 15:04 ] @
A kako si na kraju resio, visedimenzionalnim nizom?
[ slobodnium @ 03.02.2010. 09:10 ] @

Da sa vishe dimenzionalnim nizom, izgleda ne moze nikako numeric da se smesti kao ime promenljive u sesiji tj $_SESSION[<numeric>] nikako nece da prihvati

probao sam prvo da mu dodam neki string "proizvod".$idi i da to smestim kao novi string umesto <numeric> i radilo je

posle sam napravio vishe dimenzionalni niz kao sto si napisao i radilo je i tako

now back to coding ;)

hvala josh jednom