Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #16977
| From | Jerry Stuckle <jstucklex@attglobal.net> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: PHP Warning: extract() expects parameter 1 to be array |
| Date | 2016-08-23 08:08 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <npheca$1dn$2@jstuckle.eternal-september.org> (permalink) |
| References | (4 earlier) <210820161026199601%timstreater@greenbee.net> <87pop2unf0.fsf@bsb.me.uk> <10692138.PaQTzsjEax@PointedEars.de> <npg0vd$b3k$1@jstuckle.eternal-september.org> <87oa4kukc5.fsf@ahungry.com> |
On 8/23/2016 1:26 AM, Matthew Carter wrote:
> Jerry Stuckle <jstucklex@attglobal.net> writes:
>
>> On 8/22/2016 3:34 PM, the troll Thomas 'Pointed Head' Lahn wrote:
>>> Ben Bacarisse wrote:
>>>
>>>> […] I prefer the "more structured" version:
>>>>
>>>> if ($argc < 2)
>>>> echo "Please, provide a path to a file\n";
>>>> else if (!file_exists($file))
>>>> echo "Sorry, there is no such file $file\n";
>>>> else if (!is_readable($file))
>>>> echo "$file is not readable\n";
>>>> ...
>>>> else if (($open_file = fopen($file, "r")) === false)
>>>> echo "Sorry, couldn't open $file\n";
>>>> else {
>>>> // All ok. Let's get on with it...
>>>>
>>>> while (...)
>>>> {
>>>> // Main work is here
>>>> }
>>>> }
>>>
>>> This code style is a maintenance nightmare (the missing blocks and the
>>> assignment in the “if” statement doubly so). Do you know what the condition
>>> on line 50 was because of which you wrote “else” on line 100?
>>>
>>
>> Yes - if the code is properly indented and commented (something you
>> wouldn't understand).
>>
>>> Also, PHP is influenced by C, but it is _not_ C. The function should throw
>>> (PHP Standard Library) exceptions like \InvalidArgumentException instead of
>>> echo-ing error conditions without regard to the user’s locale. This will
>>> also get them a stack trace (even better if the Xdebug extension is
>>> installed and enabled) if they do not catch the exception. As a result, the
>>> then-unnecessary “else” statements would vanish in a puff of program logic.
>>>
>>
>> Which would display to a user internal details of your code - a huge
>> security exposure. But you don't understand security, either, do you?
>>
>> In addition, it will immediately stop processing of the page - resulting
>> in invalid HTML being sent to the browser. Something else you don't
>> care about, either.
>>
>>> <http://php.net/manual/en/language.exceptions.php>
>>>
>>
>> Glad you can cut/paste a URL. Too bad you don't understand how write
>> good PHP code.
>
> Details of stack traces are only exposed if the environment
> (production?) is configured to match that of a developer environment
> (such as showing errors vs logging them).
>
> It is also quite easy to wrap your outer-most layer of code input/output
> in a try/catch block and handle:
>
> - Rendering a generic or descriptive error message for the user in the
> catch block
>
> - Manually logging the stack trace (part of the \Exception object) to a
> file or sending as part of an email to the webmaster (if this is not
> configurable in the php.ini of the server for some reason)
>
> - Ensuring the HTML the user receives is still valid
>
> This also allows for easier to extend code in the future, as you end up
> with a single exit point.
>
You obviously didn't read Pointed Head's post, did you?
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
Back to comp.lang.php | Previous | Next — Previous in thread | Find similar | Unroll thread
PHP Warning: extract() expects parameter 1 to be array Alla <modelling.data@gmail.com> - 2016-08-20 09:15 -0700
Re: PHP Warning: extract() expects parameter 1 to be array "R.Wieser" <address@not.available> - 2016-08-20 18:48 +0200
Re: PHP Warning: extract() expects parameter 1 to be array Alla <modelling.data@gmail.com> - 2016-08-20 10:16 -0700
Re: PHP Warning: extract() expects parameter 1 to be array "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-08-20 19:28 +0200
Re: PHP Warning: extract() expects parameter 1 to be array Alla <modelling.data@gmail.com> - 2016-08-20 11:00 -0700
Re: PHP Warning: extract() expects parameter 1 to be array "R.Wieser" <address@not.available> - 2016-08-20 21:05 +0200
Re: PHP Warning: extract() expects parameter 1 to be array Alla <modelling.data@gmail.com> - 2016-08-20 10:58 -0700
Re: PHP Warning: extract() expects parameter 1 to be array Tim Streater <timstreater@greenbee.net> - 2016-08-20 18:21 +0100
Re: PHP Warning: extract() expects parameter 1 to be array "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-08-20 20:16 +0200
Re: PHP Warning: extract() expects parameter 1 to be array "R.Wieser" <address@not.available> - 2016-08-20 21:26 +0200
Re: PHP Warning: extract() expects parameter 1 to be array Tim Streater <timstreater@greenbee.net> - 2016-08-20 22:05 +0100
Re: PHP Warning: extract() expects parameter 1 to be array Alla <modelling.data@gmail.com> - 2016-08-20 22:39 -0700
Re: PHP Warning: extract() expects parameter 1 to be array Tim Streater <timstreater@greenbee.net> - 2016-08-21 10:26 +0100
Re: PHP Warning: extract() expects parameter 1 to be array Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-21 10:10 -0400
Re: PHP Warning: extract() expects parameter 1 to be array Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-21 16:55 +0100
Re: PHP Warning: extract() expects parameter 1 to be array Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-08-22 21:34 +0200
Re: PHP Warning: extract() expects parameter 1 to be array Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-22 19:13 -0400
Re: PHP Warning: extract() expects parameter 1 to be array Matthew Carter <m@ahungry.com> - 2016-08-23 01:26 -0400
Re: PHP Warning: extract() expects parameter 1 to be array Jerry Stuckle <jstucklex@attglobal.net> - 2016-08-23 08:08 -0400
csiph-web