Re: Weird problems passing variables

From: Date: Sun, 19 Aug 2001 03:15:50 +0000
Subject: Re: Weird problems passing variables
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-63333@lists.php.net to get a copy of this message
> I've got some strange problems whilst passing variables from forms into my > php-script. When I use IE5 it works like a charm. Using Opera or IE4* the > referred "action" script crashes due to memory restrictions on the server, > in a function I use to get all the dates between two given dates, presumably > due to my while condition never turning false. This lead me to believe that > my variables were being gargled in some way as to make the parsing fail, > this is however not the case as far as I can tell. Are you printing out the data?... > This is the function I use to retrieve all the dates inbetween $from and $to > inclusive (yes, it's butt ugly, I know, but I'm in kinda of a hurry, my > deadline is approaching ;) : > > /* > Function geDates(from, to) takes strings containing dates in the form > "YYYY-MM-DD" > and returns an array containing the dates between "from" and "to" > inclusive > */ > > function getDates($from, $to) { > (int) $year=substr($from,0,4)+0; /* Adding the zero is a kluge to force > away leading zeros */ > (int) $month=substr($from,5,2)+0; > > (int) $day=substr($from,8,2)+0; > > $datearray[0]=$from; > $current=$from; > while($current!=$to) { > $day=$day+1; > if(checkdate($month, $day, $year)) { > $current=zeroPadDate($year, $month, $day); > $datearray[]=$current; > } else { > $month=$month+1; > $day=1; > if (checkdate($month, $day, $year)) { > $current=zeroPadDate($year, $month, $day); > $datearray[]=$current; > } else { > $year=$year+1; > $month=1; > $current=zeroPadDate($year, $month, $day); > $datearray[]=$current; > } > } > > } > return $datearray; > } Uhhh. You're working *WAY* too hard :-) function getDates($from, $to){ # Change the 1's to 0's to turn off debugging output: if (1){ echo "Computing Dates Between '$from' and '$to'<BR>\n"; } $year = substr($from, 0, 4); $month = substr($from, 5, 2); $day = substr($from, 8, 2); $start = mktime(0, 0, 0, $month, $day, $year); $year = substr($to, 0, 4); $month = substr($to, 5, 2); $day = substr($to, 8, 2); $end = mktime(0, 0, 0, $month, $day, $year); # Change this to <= to get the $end date included: while ($start < $end){ $datearray[] = date('Y-m-d', $start); if (1){ echo $datearray[count($datearray)-1], "<BR>\n"; } $day++; # Let PHP worry about wrapping days and months and leap years $start = mktime(0, 0, 0, $month, $day, $year); } return $datearray; ?> > /* Accessory function to getDates above. */ > > function zeroPadDate($year, $month, $day) { > if ($month<10) $mstr="0$month"; > if ($day<10) $dstr="0$day"; > return "$year-$mstr-$dstr"; > } You don't need this function. :-) > What could it possibly be due to? Are there any differencies in the way the > above mentioned browsers pass the form variables? > > If you do find it in your heart to help me out with this one, please also > reply by e-mail to webmaster@palladiumbio.com > > Thanks in advance, > > Claes Andersson > Webmaster, www.palladiumbio.com > > PS Exchanging "GET" and "POST" in the referring form made no difference in > the world DS > > > -- WARNING richard@zend.com address is an endangered species -- Use ceo@l-i-e.com Wanna help me out? Like Music? Buy a CD: http://l-i-e.com/artists.htm Volunteer a little time: http://chatmusic.com/volunteer.htm

« previous php.general (#63333) next »