Professional Web Applications Themes

Sessions - PHP Development

Hi All, I'm struggling with a session problem and I'm not sure where I should be looking for the answer. Most of my pages begin like this: ==================================== include_once('cfheader.php'); $feedback = cfHeader("Main Page"); //Start of page code ==================================== The cfheader.php file begins like this: ==================================== <?PHP session_start(); function cfHeader($Title,$Protect=false) { $feedback=""; //IF we're loggin on then destory and get new session if (IsSet($_POST['login'])) { include_once('userreg.inc'); session_destroy(); //Destroy current session before continuing $feedback =do_login(); } if ($Protect==true && !IsSet($_SESSION['name'])) { //No Session. echo "<META HTTP-EQUIV='refresh' content='2;URL=mypage.php'>"; //Redirect exit; } ==================================== This works fine on my development PC, (PHP v 4.3.1) and ...

  1. #1

    Default Sessions

    Hi All,

    I'm struggling with a session problem and I'm not sure where I should be
    looking for the answer.

    Most of my pages begin like this:
    ====================================

    include_once('cfheader.php');
    $feedback = cfHeader("Main Page");
    //Start of page code
    ====================================
    The cfheader.php file begins like this:

    ====================================
    <?PHP
    session_start();
    function cfHeader($Title,$Protect=false)
    {
    $feedback="";
    //IF we're loggin on then destory and get new session
    if (IsSet($_POST['login']))
    {
    include_once('userreg.inc');
    session_destroy(); //Destroy current session before continuing
    $feedback =do_login();
    }
    if ($Protect==true && !IsSet($_SESSION['name']))
    {
    //No Session.
    echo "<META HTTP-EQUIV='refresh' content='2;URL=mypage.php'>"; //Redirect
    exit;
    }
    ====================================


    This works fine on my development PC, (PHP v 4.3.1) and on my primary test
    site (PHP v4.2.2).
    However when I try it on the target site (PHP v4.1.2) then I find that
    immediately after starting the session everything works fine, however when I
    move to any other page the session information is lost and I'm redirected to
    log in again.

    I was looking over the PHPInfo but to be honest I can't see what it is
    that's different.

    All help is gratefully appreciated.

    regards,
    Dave


    ---
    Outgoing mail is certified Virus Free.
    Checked by AVG anti-virus system ([url]http://www.grisoft.com[/url]).
    Version: 6.0.497 / Virus Database: 296 - Release Date: 04/07/2003


    Dave Alger Guest

  2. #2

    Default Re: [PHP] Sessions

    You need to make sure that when you are being directed to the other pages that the session
    name and session id are being passed. Check session.use_trans_sid in the sessions section
    of phpinfo(). The session name and id are available globally after a session has been
    started as the constant SID. If you are posting form data, make sure there is an input
    for the session name with a value of the session id, etc.

    Hope that helps.

    --
    Jason k Larson


    Dave Alger wrote:
    > Hi All,
    >
    > I'm struggling with a session problem and I'm not sure where I should be
    > looking for the answer.
    >
    > Most of my pages begin like this:
    > ====================================
    >
    > include_once('cfheader.php');
    > $feedback = cfHeader("Main Page");
    > //Start of page code
    > ====================================
    > The cfheader.php file begins like this:
    >
    > ====================================
    > <?PHP
    > session_start();
    > function cfHeader($Title,$Protect=false)
    > {
    > $feedback="";
    > //IF we're loggin on then destory and get new session
    > if (IsSet($_POST['login']))
    > {
    > include_once('userreg.inc');
    > session_destroy(); //Destroy current session before continuing
    > $feedback =do_login();
    > }
    > if ($Protect==true && !IsSet($_SESSION['name']))
    > {
    > //No Session.
    > echo "<META HTTP-EQUIV='refresh' content='2;URL=mypage.php'>"; //Redirect
    > exit;
    > }
    > ====================================
    >
    >
    > This works fine on my development PC, (PHP v 4.3.1) and on my primary test
    > site (PHP v4.2.2).
    > However when I try it on the target site (PHP v4.1.2) then I find that
    > immediately after starting the session everything works fine, however when I
    > move to any other page the session information is lost and I'm redirected to
    > log in again.
    >
    > I was looking over the PHPInfo but to be honest I can't see what it is
    > that's different.
    >
    > All help is gratefully appreciated.
    >
    > regards,
    > Dave
    >
    >
    > ---
    > Outgoing mail is certified Virus Free.
    > Checked by AVG anti-virus system ([url]http://www.grisoft.com[/url]).
    > Version: 6.0.497 / Virus Database: 296 - Release Date: 04/07/2003
    >
    >
    >
    Jason K Larson Guest

  3. #3

    Default RE: [PHP] Sessions


    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Here is a good session tutorial, maybe it will help you see something
    your missing.

    [url]http://www.sitepoint.com/article/319[/url]


    - ---
    Aaron Axelsen
    AIM: AAAK2
    Email: [email]axelseaaamadmax.com[/email]

    Want reliable web hosting at affordable prices?
    [url]www.modevia.com[/url]

    Web Dev/Design Community/Zine
    [url]www.developercube.com[/url]



    - -----Original Message-----
    From: Jason k Larson [mailto:jlarsoncandlefire.org]
    Sent: Tuesday, July 08, 2003 11:15 AM
    To: Dave Alger
    Cc: [email]php-generallists.php.net[/email]
    Subject: Re: [PHP] Sessions


    You need to make sure that when you are being directed to the other
    pages that the session
    name and session id are being passed. Check session.use_trans_sid in
    the sessions section
    of phpinfo(). The session name and id are available globally after a
    session has been
    started as the constant SID. If you are posting form data, make sure
    there is an input
    for the session name with a value of the session id, etc.

    Hope that helps.

    - --
    Jason k Larson


    Dave Alger wrote:
    > Hi All,
    >
    > I'm struggling with a session problem and I'm not sure where I
    > should be looking for the answer.
    >
    > Most of my pages begin like this:
    > ====================================
    >
    > include_once('cfheader.php');
    > $feedback = cfHeader("Main Page");
    > //Start of page code
    > ====================================
    > The cfheader.php file begins like this:
    >
    > ====================================
    > <?PHP
    > session_start();
    > function cfHeader($Title,$Protect=false)
    > {
    > $feedback="";
    > //IF we're loggin on then destory and get new session
    > if (IsSet($_POST['login']))
    > {
    > include_once('userreg.inc');
    > session_destroy(); //Destroy current session before continuing
    > $feedback =do_login();
    > }
    > if ($Protect==true && !IsSet($_SESSION['name']))
    > {
    > //No Session.
    > echo "<META HTTP-EQUIV='refresh' content='2;URL=mypage.php'>";
    > //Redirect
    > exit;
    > }
    > ====================================
    >
    >
    > This works fine on my development PC, (PHP v 4.3.1) and on my
    > primary test site (PHP v4.2.2). However when I try it on the
    > target site (PHP v4.1.2) then I find that immediately after
    > starting the session
    > everything works fine, however when I move to any other page the
    > session information is lost and I'm redirected to log in again.
    >
    > I was looking over the PHPInfo but to be honest I can't see what it
    > is that's different.
    >
    > All help is gratefully appreciated.
    >
    > regards,
    > Dave
    >
    >
    > ---
    > Outgoing mail is certified Virus Free.
    > Checked by AVG anti-virus system (http://www.grisoft.com).
    > Version: 6.0.497 / Virus Database: 296 - Release Date: 04/07/2003
    >
    >
    >

    - --
    PHP General Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php

    -----BEGIN PGP SIGNATURE-----
    Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>

    iQA/AwUBPwru1rrnDjSLw9ADEQJ1BACdHrNZ0thj/W4eCgEhc800ufxhsTQAoLlm
    TyX4yM46n8VgUMQNQtbwHKC8
    =E8V5
    -----END PGP SIGNATURE-----


    Aaron Axelsen Guest

  4. #4

    Default Re: Sessions


    Thanks to all who posted.

    Well, I managed to track down the problem. The PHP system was set to use
    /tmp for its session.save_path but there was no /tmp directiory.
    Strange because on my test site I don't have a /tmp directory... I'm
    guessing my ISP has taken care of that separately.
    Anyway I created a tmp folder and everything seems fine.

    Thanks again.

    Dave



    ---
    Outgoing mail is certified Virus Free.
    Checked by AVG anti-virus system ([url]http://www.grisoft.com[/url]).
    Version: 6.0.497 / Virus Database: 296 - Release Date: 04/07/2003


    Dave Alger Guest

  5. #5

    Default Sessions

    This is probably really simple question for someone with some ASP experience.

    I have created a file
    SetSessions.inc

    And this is the body of the file

    <%
    'Set session objects

    Function SetRefBy()
    dim rs
    if Session("RefBy").value="" then
    session("RefBY")="<OPTION>Test Sessions</OPTION>"
    End if
    SetRefBy=Session("RefBy").value
    End function

    %>

    Every time when I call function SetRefBy I receive the message
    Microsoft VBScript runtime (0x800A01A8)
    Object required: 'Session(...)'
    /Include/SetSessions.inc, line 8

    Any ideas, it has to be trivial, but not for me:)???

    Thanks!!!
    Nevena Guest

  6. #6

    Default Re: Sessions

    get rid of the '.value'


    GAJ


    Jaxon Guest

  7. #7

    Default sessions

    I have a little problem whit this script

    ....................

    $sql="INSERT INTO tranzactii (name, email) values ('".$_POST['name']."','".$_POST['email']."')";
    $result=mysql_query($sql);
    $id_transaction=mysql_insert_id();

    for ($i=0; $i < count($_SESSION['id_product']); $i++)
    {
    if ($_SESSION['nr'][$i] > 0)
    {
    $sql1="INSERT INTO sales values ('".$id_tranzactie."','".$_SESSION['id_product'][$i]."','".$_SESSION['nr'][$i]."')";
    mysql_query($sql1);
    }
    }
    -------------------
    The probem is that if i have more products only first id_product is insert into table sales. The rest id_product are inserted with 0.

    How can I get over it?

    Phpu Guest

  8. #8

    Default Sessions

    Hi!

    I started to use the php own session functions today.

    Now I am getting such lines in the address bar:

    /pages/news.php?option=1015&PHPSESSID=PHPSESSID=d117dba20 8d4b205cd4e521f606b
    b44e#result

    Why do I get "PHPSESSID=PHPSESSID=" ?

    Thank you.

    Webmaster
    Webmaster Guest

  9. #9

    Default Re: Sessions

    Hello,

    de (Webmaster) wrote 

    Do you set them manual, does the server auto start a session?

    What are the settings for session in your ino file?

    Polleke
    Paul Guest

  10. #10

    Default Re: [PHP] Sessions

    Webmaster wrote: 

    Probably because you have

    /pages/news.php?option=1015&PHPSESSID=<?=SID?>

    in your code when it should be:

    /pages/news.php?option=1015&<?=SID?>

    --
    ---John Holmes...

    Amazon Wishlist: www.amazon.com/o/registry/3BEXC84AB3A5E/

    php|architect: The Magazine for PHP Professionals www.phparch.com
    John Guest

  11. #11

    Default Sessions

    Hi,

    I'm trying to track down some issues with my site, and am trying to decide
    if it's a session variable issue. On a random basis, it appears that session
    vars are being dumped, deleted, or unset, as the site will break. Queries
    based on session vars don't work, session vars not being displayed, etc.
    This seems to happen most often after a page has been idle for a couple of
    minutes and a refresh is done on the page.

    This is on a hosted site. I have checked the configuration settings with
    phpinfo(); and session support is enabled.

    On all pages where I use $_SESSION[<varname>], I have <?php
    session_start();?>. This has been double checked.

    1) Do session vars timeout, or can they be set to timeout after a certain
    length of time?
    2) Is there anything other than session_start(); that needs to be done when
    using session vars?
    3) What other things can I check for?

    Thanks,
    James
    James Guest

  12. #12

    Default Re: [PHP] Sessions

    > I'm trying to track down some issues with my site, and am trying to decide 

    Most things are explained well by the online manual, and you should read and
    re-read the session doentation. That said, I'll also say that the
    doentation on sessions is not as informative as I'd like it to be, and I
    still get reports of sessions expiring before they should.

    Look at the output from echo phpinfo() and check these session configuration
    options:

    session.cookie_lifetime -- should be 0, lasts until quitting the browser
    session.use_cookies -- should be on
    session.use_trans_sid -- should be on

    Some things aren't explained very well, like what does
    "session.gc_maxlifetime" mean? The maximum time before garbage collection to
    remove session data that hasn't been used? But to minimize the chance of
    garbage collection on a shared server wrecking your sessions, you can
    specify a directory for saving session data. Create a directory (on the same
    level as your directory of publicly-viewable files if you can) and before
    the 'session_start();' line, do 'session_save_path("../my_sessions_dir");'.

    Also be aware that cirstances on the client side can mess with session
    cookies and cause the session to be lost, like using Internet Explorer with
    Entourage in Mac OS X.

    --
    Lowell Allen
    Lowell Guest

  13. #13

    Default RE: [PHP] Sessions

    Hi,

    I checked the session settings with phpinfo(); I get the following values:
    session_save_path = /tmp
    session.use_cookies = On
    session.use_trans_sid = 1

    I've created a folder on the same level as all the pages called
    "ccb_sessions" and have CHMOD it to 777.
    I have added the following snippet above session_start: <?php
    session_save_path("/ccb_sessions");?>
    When navigating to my test page I get the following error:

    Warning: open(/ccb_sessions/sess_bbbfa69631155d4097e0b0012c857c4a, O_RDWR)
    failed: No such file or directory (2) in
    /home/.paco/campuscb/campuscorkboard.com/MemberAccountDetails.php on line 2

    Checking with my FTP client that file is there and has CHMOD values of 777.
    I've done a Google search for "No such file or directory", found a bunch of
    stuff for Python, nothing for PHP.

    I then closed the browser, FTP'd to the ccb_sessions folder, deleted the
    sess_bbbfa69631155d4097e0b0012c857c4a file and changed the session_save_path
    to session_save_page("ccb_session");. When going to the test page, it
    appears to loop several times, then gives me a "The page cannot be
    displayed" message.

    The server is (from phpinfo())Linux gaia 2.2.20, Server API is Apache.

    Other ideas?
    Thanks,
    James

    -----Original Message-----
    From: Lowell Allen [mailto:com]
    Sent: Friday, October 10, 2003 6:23 PM
    To: PHP
    Subject: Re: [PHP] Sessions

     

    Most things are explained well by the online manual, and you should read and
    re-read the session doentation. That said, I'll also say that the
    doentation on sessions is not as informative as I'd like it to be, and I
    still get reports of sessions expiring before they should.

    Look at the output from echo phpinfo() and check these session configuration
    options:

    session.cookie_lifetime -- should be 0, lasts until quitting the browser
    session.use_cookies -- should be on session.use_trans_sid -- should be on

    Some things aren't explained very well, like what does
    "session.gc_maxlifetime" mean? The maximum time before garbage collection to
    remove session data that hasn't been used? But to minimize the chance of
    garbage collection on a shared server wrecking your sessions, you can
    specify a directory for saving session data. Create a directory (on the same
    level as your directory of publicly-viewable files if you can) and before
    the 'session_start();' line, do 'session_save_path("../my_sessions_dir");'.

    Also be aware that cirstances on the client side can mess with session
    cookies and cause the session to be lost, like using Internet Explorer with
    Entourage in Mac OS X.

    --
    Lowell Allen

    --
    PHP General Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
    James Guest

  14. #14

    Default RE: [PHP] Sessions - more testing

    I've read Nelson's message and have added the following lines:

    ini_set('session.save_path','ccb_sessions');
    ini_set('session.use_trans_sid','off');
    ini_set('session.gc_maxlifetime', '3600');

    And still get the same page not found error.

    James



    -----Original Message-----
    From: James Johnson [mailto:net]
    Sent: Saturday, October 11, 2003 3:46 PM
    To: 'Lowell Allen'; 'PHP'
    Subject: RE: [PHP] Sessions


    Hi,

    I checked the session settings with phpinfo(); I get the following values:
    session_save_path = /tmp session.use_cookies = On session.use_trans_sid = 1

    I've created a folder on the same level as all the pages called
    "ccb_sessions" and have CHMOD it to 777. I have added the following snippet
    above session_start: <?php session_save_path("/ccb_sessions");?>
    When navigating to my test page I get the following error:

    Warning: open(/ccb_sessions/sess_bbbfa69631155d4097e0b0012c857c4a, O_RDWR)
    failed: No such file or directory (2) in
    /home/.paco/campuscb/campuscorkboard.com/MemberAccountDetails.php on line 2

    Checking with my FTP client that file is there and has CHMOD values of 777.
    I've done a Google search for "No such file or directory", found a bunch of
    stuff for Python, nothing for PHP.

    I then closed the browser, FTP'd to the ccb_sessions folder, deleted the
    sess_bbbfa69631155d4097e0b0012c857c4a file and changed the session_save_path
    to session_save_page("ccb_session");. When going to the test page, it
    appears to loop several times, then gives me a "The page cannot be
    displayed" message.

    The server is (from phpinfo())Linux gaia 2.2.20, Server API is Apache.

    Other ideas?
    Thanks,
    James

    -----Original Message-----
    From: Lowell Allen [mailto:com]
    Sent: Friday, October 10, 2003 6:23 PM
    To: PHP
    Subject: Re: [PHP] Sessions

     

    Most things are explained well by the online manual, and you should read and
    re-read the session doentation. That said, I'll also say that the
    doentation on sessions is not as informative as I'd like it to be, and I
    still get reports of sessions expiring before they should.

    Look at the output from echo phpinfo() and check these session configuration
    options:

    session.cookie_lifetime -- should be 0, lasts until quitting the browser
    session.use_cookies -- should be on session.use_trans_sid -- should be on

    Some things aren't explained very well, like what does
    "session.gc_maxlifetime" mean? The maximum time before garbage collection to
    remove session data that hasn't been used? But to minimize the chance of
    garbage collection on a shared server wrecking your sessions, you can
    specify a directory for saving session data. Create a directory (on the same
    level as your directory of publicly-viewable files if you can) and before
    the 'session_start();' line, do 'session_save_path("../my_sessions_dir");'.

    Also be aware that cirstances on the client side can mess with session
    cookies and cause the session to be lost, like using Internet Explorer with
    Entourage in Mac OS X.

    --
    Lowell Allen

    --
    PHP General Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php

    --
    PHP General Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
    James Guest

  15. #15

    Default Re: [PHP] Sessions

    > I checked the session settings with phpinfo(); I get the following values: 

    [snip]
     

    I think you need to provide a full directory path. I looked at my code and
    here's exactly what I do. First, I include some functions with a
    require_once() statement. One of the functions is prepath():

    function prepath($url) {
    $prepath = "";
    if (substr_count($url, "/")) {
    for ($i = 1; $i < substr_count($url, "/"); $i++) {
    $prepath .= "../";
    }
    }
    return $prepath;
    }

    That lets me use the same statement in different directories. Then the page
    actually starts like this:

    require_once($req_fns);
    session_save_path(prepath($PHP_SELF) . "../ccb_sessions");
    session_start();

    Note that when I said my session data directory is on the same level as my
    publicly viewable files (public_html), I mean that the session directory is
    not contained within public_html, but is outside it at the same directory
    level on the server.

    HTH

    --
    Lowell Allen
    Lowell Guest

  16. #16

    Default Sessions

    Please can someone provide a nice simple script to test if my php is setup
    properly for sessions. Just a little 2 page thing to prove that it is me
    that is the problem would be excellent. Thanks.

    Dan


    Dan Walker Guest

  17. #17

    Default Re: Sessions

    On Sat, 8 Nov 2003 17:00:04 +0000 (UTC), "Dan Walker" <dan.j.walkertalk21.com>
    wrote:
    >Please can someone provide a nice simple script to test if my php is setup
    >properly for sessions. Just a little 2 page thing to prove that it is me
    >that is the problem would be excellent. Thanks.
    <?php session_start(); ?>
    <pre>
    <?php
    if (isset($_SESSION['test']))
    echo "Previous session variable value: {$_SESSION['test']}\n";

    $_SESSION['test'] = rand(1,100);
    echo "New session variable value: {$_SESSION['test']}\n";
    ?>
    </pre>

    --
    Andy Hassall (andyandyh.co.uk) icq(5747695) ([url]http://www.andyh.co.uk[/url])
    Space: disk usage ysis tool ([url]http://www.andyhsoftware.co.uk/space[/url])
    Andy Hassall Guest

  18. #18

    Default Re: Sessions

    That is excellent. This at least proves that it is me at fault.

    Thank you so much.

    Dan
    "Andy Hassall" <andyandyh.co.uk> wrote in message
    news:lk9qqv0cbfek50snve9jn78vmqbgp90iip4ax.com...
    > On Sat, 8 Nov 2003 17:00:04 +0000 (UTC), "Dan Walker"
    <dan.j.walkertalk21.com>
    > wrote:
    >
    > >Please can someone provide a nice simple script to test if my php is
    setup
    > >properly for sessions. Just a little 2 page thing to prove that it is me
    > >that is the problem would be excellent. Thanks.
    >
    > <?php session_start(); ?>
    > <pre>
    > <?php
    > if (isset($_SESSION['test']))
    > echo "Previous session variable value: {$_SESSION['test']}\n";
    >
    > $_SESSION['test'] = rand(1,100);
    > echo "New session variable value: {$_SESSION['test']}\n";
    > ?>
    > </pre>
    >
    > --
    > Andy Hassall (andyandyh.co.uk) icq(5747695) ([url]http://www.andyh.co.uk[/url])
    > Space: disk usage ysis tool ([url]http://www.andyhsoftware.co.uk/space[/url])

    Dan Walker Guest

  19. #19

    Default Re: Sessions

    Dan Walker wrote:
    > Please can someone provide a nice simple script to test if my php is setup
    > properly for sessions. Just a little 2 page thing to prove that it is me
    > that is the problem would be excellent. Thanks.
    I use this:

    <?php
    session_start();

    if (isset($_GET['reset'])) {
    unset($_SESSION['counter']);
    session_unset();
    session_destroy();
    session_start();
    $_SESSION['counter'] = 0;
    }
    if (!isset($_SESSION['counter'])) {
    $_SESSION['counter'] = 0;
    }

    echo 'SID = ', session_id(), '<br/>counter: ',
    $_SESSION['counter'], '<br/>';
    echo '<a href="', $_SERVER['PHP_SELF'], '">add one</a> -- <a ',
    'href="', $_SERVER['PHP_SELF'], '?reset">reset</a>';
    ++$_SESSION['counter'];
    ?>


    But I don't know why session_id doesn't change at every reset :o

    --
    ..sig
    Pedro Graca Guest

  20. #20

    Default Sessions

    I am confused. What is the differance between cookies and sessions. I
    know cookies are on the client and sessions on the server (where do
    server cookies come in?)?

    Can anyone give some real examples as the technical explanations are
    well - technical and I am not sure that I understand the point!

    Thanks...
    James Guest

Page 1 of 2 12 LastLast

Similar Threads

  1. CGI::Sessions : Deleting expired sessions
    By Vito Corleone in forum PERL Modules
    Replies: 1
    Last Post: June 15th, 02:49 PM
  2. Replies: 4
    Last Post: November 22nd, 08:36 PM
  3. Database sessions and file sessions
    By Cditty in forum PHP Development
    Replies: 1
    Last Post: September 9th, 01:34 AM
  4. Relationship between IIS Sessions and ASP.NET Sessions?
    By Luther Miller in forum ASP.NET General
    Replies: 0
    Last Post: August 8th, 03:22 PM
  5. sessions help
    By Dante o. cabrera h. in forum PHP Development
    Replies: 1
    Last Post: July 18th, 12:53 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139