Re: Counter reset or not? UPDATE [message #182492] |
Thu, 08 August 2013 19:10 |
bill
Messages: 310 Registered: October 2010
Karma:
|
Senior Member |
|
|
Hi,
In troubleshooting the above, I've ended up creating two pages of as
minimal code as I know how to make it <g>. I now have working code,
BUT(t), it's throwing a warning I don't know how to address. ALL work is
being done on my Local Apache Server (XAMPP) and PHP 5.3 (same as my
Remote Server uses).
The session is almost working, and it IS incrementing properly. This is
a code sample I picked up at php.net and it's supposedly applicable to
version 4 and 5. I've removed the href to link to the next page and
instead am now using a Submit Button: Same identical results whether the
link line exists or not so I removed it and things still work the same.
By being as basic with the code as I have been, I've removed the
implications of anything else in the code effecting it.
Page 1: PHP code:\
============
<?php
session_start();
// counter1.php
if (empty($_SESSION['cntr'])) {
$_SESSION['cntr'] = 1;
} else {
$_SESSION['cntr']++;
}
?>
<p>
Hello visitor, you have seen this page <?php echo $_SESSION['cntr']; ?>
times.
</p>
<form action="counter2.php" method="post">
Type something: <input type="text" name = "type" <br />
<p> <input type="submit" value="NEXT">
<input type= "reset" value="Clear Form" /> <br />
</form>
</body>
</html>
======= end =========
Page 2: PHP:
<?php
session_start();
// counter2.php
echo $_SESSION["cntr"]. " Before increment. <br />";
$_SESSION["cntr"] = $_SESSION["cntr"]+ "1";
echo $_SESSION["cntr"] . " After increment";
?>
Next (Submit button) here.
========== end ==========
It's acting strangely, at least to me. The first time I run, nothing
initialized, Counter1.php, the results are:
======== start =================
Warning: session_start() [function.session-start]: Cannot send session
cookie - headers already sent by (output started at
C:\xampp\htdocs\counter1.php:2) in C:\xampp\htdocs\counter1.php on line 3
Warning: session_start() [function.session-start]: Cannot send session
cache limiter - headers already sent (output started at
C:\xampp\htdocs\counter1.php:2) in C:\xampp\htdocs\counter1.php on line 3
Hello visitor, you have seen this page 1 times.
Type something:
============ end =============
The input statement and Forms structure is only so I can use Submit
instead of the link the original code used.
======== start =================
If I click Submit (Next), the second page displays:
Notice: Undefined index: cntr in C:\xampp\htdocs\counter2.php on line 4
Before increment: <nothing>
Notice: Undefined index: cntr in C:\xampp\htdocs\counter2.php on line 5
1 After increment
============ end =============
Now, reloading/refreshing counter1.php results in the following screen
display:
============== start ==========
Warning: session_start() [function.session-start]: Cannot send session
cache limiter - headers already sent (output started at
C:\xampp\htdocs\counter1.php:2) in C:\xampp\htdocs\counter1.php on line 3
Hello visitor, you have seen this page 2 times.
Next (Submit)
=============== end =========
Now counter2.php, the 2nd page, works as I expected and shows:
=========== start ============
2 Before increment.
3 After increment
=========== End =============
And so on, adinfinitum.
So the counter IS incrementing and displaying properly on the
counter1.php page with the exception now only one Warning appears, not
two as in the first time it's run, where there were two statements
returned.
An interesting sidelight is:
Should I run a different script, the original one I asked questions
with, IT ALSO shows the incrementing count! I suppose it makes sense
since the session is never Unset in the new code, but a cute happening
anyway IMO; something to keep in mind!
So, to synopsize:
The very first time counter1.php runs, the counter show "1" as
expected, and two Warnings about headers already sent.
Clicking to go to the next page, show the two errors as above,
And after that, the first page shows only one Warning, and the 2nd
page works flawlessly. That will continue until the session is closed or
the browser closed.
Any solutions, thoughts, comments certainly appreciated!
Twayne`
|
|
|