Reply to Re: Session problem

Your name:

Reply:


Posted by Aaron Gray on 12/28/07 19:34

"My Pet Programmer" <anthony@mypetprogrammer.com> wrote in message
news:fl3btb$3hs$1@registered.motzarella.org...
> Aaron Gray said:
>> "My Pet Programmer" <anthony@mypetprogrammer.com> wrote in message
>> news:fl39o0$pkh$1@registered.motzarella.org...
>>> Aaron Gray said:
>>>> Hello, this is my first posting to comp.lang.php, happy crimbo and all
>>>> that :)
>>>>
>>>> I am having problems with sessions, first entry fine but next entry I
>>>> am getting blanks, then next entry I am getting datafields back again,
>>>> and this alternates.
>>>>
>>>> My example is here :-
>>>>
>>>> http://www.aarongray.org/Test/PHP/test.php
>>>>
>>>> And source :-
>>>>
>>>> http://www.aarongray.org/Test/PHP/test.php.txt
>>>>
>>>> Hope I am not doing something too stupid.
>>>>
>>>> Many thanks in advance,
>>>>
>>>> Aaron
>>>>
>>>>
>>> The .txt link is still rendering as PHP, can't see the source, bud.
>>
>> Try :-
>>
>> http://www.aarongray.org/Test/PHP/test.txt
>>
>> Sorry have not done this before !:)
>>
>> Aaron
>>
>>
> For the sake of brevity, I put all the PHP code at the top, here. Just a
> habit of mine. It happens first, so I like it at the top.
>
> if (!isset($_SESSION['mysqlhost']))
> $mysqlhost = 'localhost';
> else
> $mysqlhost = $_SESSION['mysqlhost'];
>
> You should be bracing even single statement blocks, just so you don't get
> confused.
>
>
> if (isset($_SESSION['mysqlusr']))
> $mysqlusr = $_SESSION['mysqlusr'];
>
> This causes a warning because if the session var isn't set, you have an
> undeclared variable you're using later.
>
> if (isset($_SESSION['mysqlpass']))
> $mysqlpass = $_SESSION['mysqlpass'];
>
> Same here, if the session is not set, you have no variable, yet you use it
> anyway.
>
>
> As an aside, if I submitted your form with the enter key instead of
> clicking the button, this would only fire in some browsers,
>
> if (isset($_POST['submitquery']))
> {
>
> $_SESSION['mysqlhost'] = $mysqlhost = $_POST['host'];
> $_SESSION['mysqlusr'] = $mysqlusr = $_POST['user'];
> $_SESSION['mysqlpass'] = $mysqlpass = $_POST['password'];
>
> Just don't do this. Your intention is unclear, and someone will have to
> code after you if you're coding professionally sometime, and this is a
> pain in the butt to read.
> }
>
> Your code should look more like:
>
> <?php
>
> @session_start();
>
> if (isset($_POST['submitquery']) && $_POST['submitquery']) {
> $_SESSION['mysqlhost'] =
> htmlspecialchars(stripslashes($_POST['mysqlhost']));
> $_SESSION['mysqluser'] =
> htmlspecialchars(stripslashes($_POST['mysqluser']));
> $_SESSION['mysqlpass'] =
> htmlspecialchars(stripslashes($_POST['mysqlpass']));
> } // if
>
> $mysqlhost = isset($_SESSION['mysqlhost']) ?
> $_SESSION['mysqlhost'] :
> "localhost";
> $mysqluser= isset($_SESSION['mysqluser']) ?
> $_SESSION['mysqluser'] :
> "";
> $mysqlpass= isset($_SESSION['mysqlpass']) ?
> $_SESSION['mysqlpass'] :
> "";
> print "<pre>";
> print_r($_SESSION);
> print "</pre>";
> ?>
> <html>
> <head>
> <title>Session Test</title>
> </head>
> <body onLoad="document.forms[0].elements['submitquery'].focus()">
> <h1>Session Test</h1>
>
> <form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
>
> <table>
> <tr>
> <td>
> Host:
> <td>
> <input type="text" name="mysqlhost" value="<?php echo
> $mysqlhost; ?>"/><br/>
> </td>
> <tr>
> <td>
> User:
> <td>
> <input type="text" name="mysqluser" value="<?php echo
> $mysqluser; ?>"/><br/>
> </td>
> <tr>
> <td>
> Password:
> <td>
> <input type="password" name="mysqlpass" value="<?php echo
> $mysqlpass; ?>"/><br/>
> </td>
> </tr>
> </table>
>
> <p>
> <input type="submit" name="submitquery" value="Submit Query" />
> </p>
> </form>
> </body>
> </html>
>
> And you'll get better results.

Thanks Anthony,

That works fine, good programming practices too.

But when I add the rest of my code it fails to fill in the form feilds,
cannot fathom why.

Aaron

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация