php-general Digest 7 Jan 2007 15:25:03 -0000 Issue 4556

2007-01-07 Thread php-general-digest-help

php-general Digest 7 Jan 2007 15:25:03 - Issue 4556

Topics (messages 246701 through 246701):

Re: Windows directory listings
246701 by: Jochem Maas

Administrivia:

To subscribe to the digest, e-mail:
[EMAIL PROTECTED]

To unsubscribe from the digest, e-mail:
[EMAIL PROTECTED]

To post to the list, e-mail:
php-general@lists.php.net


--
---BeginMessage---
Beauford wrote:
 Hi,
 
 I am trying to write a script that reads a directory on Windows. All the PHP
 functions I have looked at all seem to work with the Linux dietary

it sounds more like you have found an examples that show windows
being used (i.e. windows file paths).

 structure. Is there another way to do this.

you must be reading a manual that only exists in your particular parallel
universe, all relevant php function work in windows as well as linux:

http://php.net/manual/en/ref.filesystem.php
http://php.net/dir

 
 Thanks
 
---End Message---


Re: [PHP] Windows directory listings

2007-01-07 Thread Jochem Maas
Beauford wrote:
 Hi,
 
 I am trying to write a script that reads a directory on Windows. All the PHP
 functions I have looked at all seem to work with the Linux dietary

it sounds more like you have found an examples that show windows
being used (i.e. windows file paths).

 structure. Is there another way to do this.

you must be reading a manual that only exists in your particular parallel
universe, all relevant php function work in windows as well as linux:

http://php.net/manual/en/ref.filesystem.php
http://php.net/dir

 
 Thanks
 

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



Re: [PHP] Exceptions: How much is too much.

2007-01-07 Thread Craige Leeder

Thanks.

Does anybody else have any input? Not to be pushy, but I'm in the
middle of programming a framework for a site.

- Craige

On 1/5/07, Paul Scott [EMAIL PROTECTED] wrote:


On Fri, 2007-01-05 at 00:44 -0500, Craige Leeder wrote:
 The question is: How much is too much. Should I use Exceptions to
 handle all of my error reporting/triggering? How about catching them?
 I mean, if I'm using Exceptions for all of my error handling, I could
 easily end up wrapping my entire script in a try block(or at least
 having almost all my end-code within a number of them).

Not sure if I am doing it correctly either, but, what I do is use
try/catch blocks to instantiate all of the objects that I need and then
let the script take over. I also use exceptions to handle SQL errors in
my db abstraction object(s). That way, only real messes are caught and
the script then displays a graceful exit page to the user instead of
screen vomit that may scare them off.

--Paul



All Email originating from UWC is covered by disclaimer 
http://www.uwc.ac.za/portal/uwc2006/content/mail_disclaimer/index.htm





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



[PHP] Re: Question regarding include() and symlinks to directories

2007-01-07 Thread spam
On  6 Jan 2007, [EMAIL PROTECTED] wrote:

 On Thu, January 4, 2007 2:47 pm, Karl Pfl=E4sterer wrote:
 In my opinion include() should respect symlinks to directories and not
 dereference them before finding the file to include. Or am I wrong
 here?
 The PHP version is 5.1.6 (will soon be updated).

 WHOOPS!

 My fingers slipped and I keyboarded to Send button.

 SORRY!

 ... and use full pathname when you go to read a file.

 Anything else is more like playing an Adventure Game than Programming.

IMO you're absolutely right, but I didn't ask the question out of sheer
curiosity but it has to do with the way script files (here at work) find
the right files to include for navigation, banners etc.  Symlinks to
files and directories are used a lot and sometimes it's very convenient
to include some files with an absolute path (the files which are the
same for all) and some files with a relative path (the files specific
for one page).  mod_include had been used before PHP and it was common
to use this technique.


   KP

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



[PHP] Re: Question regarding include() and symlinks to directories

2007-01-07 Thread spam
On  5 Jan 2007, [EMAIL PROTECTED] wrote:


 On Fri, 2007-01-05 at 22:07 +0100, Jochem Maas wrote:
 reply at the bottom ...
 
 (Karl Pflästerer) wrote:
  Hi
  let's say we have the follwing directory structure:
  directory test, with to subdirectories: a and b; both have ssi
  subdirectory; a has also a subdirectory c with an index.php file in it
  and in b we habe a symbolic link to a/c.
  
  On the shell it looks like this:
  ,
  | /htdocs/testls -gG *
  | a:
  | total 8
  | drwxr-xr-x  2 4096 Jan  4 20:55 c
  | drwxr-xr-x  2 4096 Jan  4 20:51 ssi
  | 
  | b:
  | total 4
  | lrwxrwxrwx  16 Jan  4 20:53 c - ../a/c
  | drwxr-xr-x  2 4096 Jan  4 20:53 ssi
  | ~/htdocs/testcat a/ssi/a.inc
  | In directory a
  | 
  | ~/htdocs/testcat b/ssi/a.inc
  | In directory b
  `
  
  As you see whe have an a.inc in each ssi. If we call now the index.php
  which does nothing more than to:
include('../ssi/a.inc')
  what would you expect to read if you called b/c/index.php? I expected to
  read 'In directory b' but I read 'In directory a'.
  
  ,
  | ~/htdocs/test(cd a/c  php -f index.php )
  | In directory a
  | 
  | 
  | ~/htdocs/test(cd b/c  php -f index.php )
  | In directory a
  `
  
  In my opinion include() should respect symlinks to directories and not
  dereference them before finding the file to include. Or am I wrong here?
 
 I have tested using your exact description and get the result, you can
 be fairly certain this is not something specific to your server/machine.
 
 I would tend to agree with your premise - but the php devs may have
 decided against this behaviour on purpose.

 PHP needs to dereference symlinks so it knows exactly where it is in
 case of security violations. This prevents symlinking into paths for
 which you don't have access... especially important on shared hosts. 

I always thought this kind of check would only be done if you used
safe_mode. If you're not a shared host there's no need for this kind of
check. Everyone who has the ability to place a php script on the server
also has shell access (here at work at least).  To explain why I asked
about this behaviour (so it's not only a convoluted example I showed but
a simplified version of an existing directory structure (if it would be
done that way today is another question)) see also MID
[EMAIL PROTECTED].




 Cheers,
 Rob.
 -- 
 ..
| InterJinn Application Framework - http://www.interjinn.com |
 ::
| An application and templating framework for PHP. Boasting  |
| a powerful, scalable system for accessing system services  |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for   |
| creating re-usable components quickly and easily.  |
 `'

   KP

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



Re: [PHP] Re: Question regarding include() and symlinks to directories

2007-01-07 Thread Robert Cummings
On Sun, 2007-01-07 at 19:39 +0100, [EMAIL PROTECTED] wrote:
 On  5 Jan 2007, [EMAIL PROTECTED] wrote:
 
 
  On Fri, 2007-01-05 at 22:07 +0100, Jochem Maas wrote:
  reply at the bottom ...
  
  (Karl Pflästerer) wrote:
   Hi
   let's say we have the follwing directory structure:
   directory test, with to subdirectories: a and b; both have ssi
   subdirectory; a has also a subdirectory c with an index.php file in it
   and in b we habe a symbolic link to a/c.
   
   On the shell it looks like this:
   ,
   | /htdocs/testls -gG *
   | a:
   | total 8
   | drwxr-xr-x  2 4096 Jan  4 20:55 c
   | drwxr-xr-x  2 4096 Jan  4 20:51 ssi
   | 
   | b:
   | total 4
   | lrwxrwxrwx  16 Jan  4 20:53 c - ../a/c
   | drwxr-xr-x  2 4096 Jan  4 20:53 ssi
   | ~/htdocs/testcat a/ssi/a.inc
   | In directory a
   | 
   | ~/htdocs/testcat b/ssi/a.inc
   | In directory b
   `
   
   As you see whe have an a.inc in each ssi. If we call now the index.php
   which does nothing more than to:
 include('../ssi/a.inc')
   what would you expect to read if you called b/c/index.php? I expected to
   read 'In directory b' but I read 'In directory a'.
   
   ,
   | ~/htdocs/test(cd a/c  php -f index.php )
   | In directory a
   | 
   | 
   | ~/htdocs/test(cd b/c  php -f index.php )
   | In directory a
   `
   
   In my opinion include() should respect symlinks to directories and not
   dereference them before finding the file to include. Or am I wrong here?
  
  I have tested using your exact description and get the result, you can
  be fairly certain this is not something specific to your server/machine.
  
  I would tend to agree with your premise - but the php devs may have
  decided against this behaviour on purpose.
 
  PHP needs to dereference symlinks so it knows exactly where it is in
  case of security violations. This prevents symlinking into paths for
  which you don't have access... especially important on shared hosts. 
 
 I always thought this kind of check would only be done if you used
 safe_mode. If you're not a shared host there's no need for this kind of
 check. Everyone who has the ability to place a php script on the server
 also has shell access (here at work at least).  To explain why I asked
 about this behaviour (so it's not only a convoluted example I showed but
 a simplified version of an existing directory structure (if it would be
 done that way today is another question)) see also MID
 [EMAIL PROTECTED].

I don't know for sure, I made some assumptions as a case example of why
the dereferencing might occur. Either way though, if you have one
behaviour in one situation, for portability, you had best have the same
behaviour in every situation :) Another question might be... does apache
dereference? If so, maybe PHP is just following suit :)

Cheers,
Rob.
-- 
..
| InterJinn Application Framework - http://www.interjinn.com |
::
| An application and templating framework for PHP. Boasting  |
| a powerful, scalable system for accessing system services  |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for   |
| creating re-usable components quickly and easily.  |
`'

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



[PHP] PHP Manipulation of WMV

2007-01-07 Thread Casey Chu

Hello. Is there a way to manipulate WMV files with PHP? I need to do
so with an include().

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



Re: [PHP] PHP Manipulation of WMV

2007-01-07 Thread Jochem Maas
Casey Chu wrote:
 Hello. Is there a way to manipulate WMV files with PHP? I need to do
 so with an include().

the mind boggles as to what the correlation is between needing to
manipulate a file and having to use include.

with regard to file manipulation - a file is a file is a file, if
you can read from it and write to it then you can manipulate... undoubtedly
that's not very helpful.

try explaining what it is that you want to do with the WMV, there may be
a way to do it.



 

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



Re: [PHP] PHP Manipulation of WMV

2007-01-07 Thread Casey Chu

Okay, sorry if I wasn't clear. I need to get frames from a WMV
dynamically with PHP. If the way to do is not a native PHP function, I
need to use an include() to get the functions because I can't use
extensions.

On 1/7/07, Jochem Maas [EMAIL PROTECTED] wrote:

Casey Chu wrote:
 Hello. Is there a way to manipulate WMV files with PHP? I need to do
 so with an include().

the mind boggles as to what the correlation is between needing to
manipulate a file and having to use include.

with regard to file manipulation - a file is a file is a file, if
you can read from it and write to it then you can manipulate... undoubtedly
that's not very helpful.

try explaining what it is that you want to do with the WMV, there may be
a way to do it.








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



Re: [PHP] PHP Manipulation of WMV

2007-01-07 Thread Jochem Maas
Casey Chu wrote:
 Okay, sorry if I wasn't clear. I need to get frames from a WMV
 dynamically with PHP. If the way to do is not a native PHP function, I
 need to use an include() to get the functions because I can't use
 extensions.

extracting frames from a video file/stream is not quite at the same level
of complexity as say extract a substring from a string - if you get my point.

you will need to have the ffmpeg program available on your system, get your
sys admin to install if it's not there.

doing a quick search I found the following class which acts as a wrapper to
the ffmpeg command line program (and as the blurb mentions doesn't require
recompiling php or loading extensions):

https://trac.phpgraphy.org/trac/browser/phpgraphy/trunk/base/include/yorsh-ffmpeg-wrapper.class.php?rev=367

there are probably other similar bits of code out and about if you do
a thorough search.

no doubt there are alternative programs that do what ffmpeg does but ffmepg
is the only [free] one I could think of right now.

 
 On 1/7/07, Jochem Maas [EMAIL PROTECTED] wrote:
 Casey Chu wrote:
  Hello. Is there a way to manipulate WMV files with PHP? I need to do
  so with an include().

 the mind boggles as to what the correlation is between needing to
 manipulate a file and having to use include.

 with regard to file manipulation - a file is a file is a file, if
 you can read from it and write to it then you can manipulate...
 undoubtedly
 that's not very helpful.

 try explaining what it is that you want to do with the WMV, there may be
 a way to do it.



 



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



Re: [PHP] Exceptions: How much is too much.

2007-01-07 Thread Roman Neuhauser
# [EMAIL PROTECTED] / 2007-01-07 13:17:23 -0500:
 On 1/5/07, Paul Scott [EMAIL PROTECTED] wrote:
 On Fri, 2007-01-05 at 00:44 -0500, Craige Leeder wrote:
  The question is: How much is too much. Should I use Exceptions to
  handle all of my error reporting/triggering? How about catching them?
  I mean, if I'm using Exceptions for all of my error handling, I could
  easily end up wrapping my entire script in a try block(or at least
  having almost all my end-code within a number of them).
 
 Not sure if I am doing it correctly either, but, what I do is use
 try/catch blocks to instantiate all of the objects that I need and then
 let the script take over. I also use exceptions to handle SQL errors in
 my db abstraction object(s). That way, only real messes are caught and
 the script then displays a graceful exit page to the user instead of
 screen vomit that may scare them off.
 
 Does anybody else have any input? Not to be pushy, but I'm in the
 middle of programming a framework for a site.

I didn't see a real question in your original email. Otherwise, the
answer is 42.

-- 
How many Vietnam vets does it take to screw in a light bulb?
You don't know, man.  You don't KNOW.
Cause you weren't THERE. http://bash.org/?255991

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



Re: [PHP] OT - web based project management tool

2007-01-07 Thread Roman Neuhauser
# [EMAIL PROTECTED] / 2007-01-07 21:34:48 +0200:
 What project management tool do you use for your project? Is dotProject
 (www.dotproject.org http://www.dotproject.org/ ) only alternative?

trac is popular.

-- 
How many Vietnam vets does it take to screw in a light bulb?
You don't know, man.  You don't KNOW.
Cause you weren't THERE. http://bash.org/?255991

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



Re: [PHP] OT - web based project management tool

2007-01-07 Thread Jochem Maas
Peter Lauri wrote:
 Hi,
 
  
 
 What project management tool do you use for your project? Is dotProject
 (www.dotproject.org http://www.dotproject.org/ ) only alternative?

I don't understand the second part of your question and I don't see that
dotproject.org is even a tool for project management.
(It might be my temporary blindness that's to blame :-)

2 project management tools I've used are:

sourceforge http://www.vasoftware.com/sourceforge/
trachttp://trac.edgewall.org/

and for code control - CVS or SVN, both the above [can] integrate CVS and SVN.

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



Re: [PHP] Search script problem

2007-01-07 Thread Jochem Maas
Wikus Moller wrote:
 Hi.
 
 I am having problems with a script I wrote which searches keywords
 from a field in a mysql db table.
 
 It is a very simple,  one-page script. My site is a toplist, very
 basic, still in it's infancy. When I go to the page, key in the
 keywords and press submit, the head, body etc. part of the result
 script is shown, but no results.
 , although there are rows in my database containing the `keyword` field
 data.
 
 Below is the script, please see if you find any errors, it could be
 that I just made a stupid mistake.

imho your first stupid mistake was writing a script that bloody
unmanagable.

1. check you input
2. do some processing
3. ouput your page (including any error msgs from step 1 and 2)

this is in contrast to the tactic your using, namely: dump some output,
do something, dump more output, perform a query, dump some output, do
stuff, dump some output in a loop, do stuff, dump some output, etc.

P.

read on ...

 
 ?php
 
 echo ?xml version=\1.0\ encoding=\UTF-8\?;
 echo !DOCTYPE HTML PUBLIC \-//W3C//DTD XHTML Mobile 1.0//EN\
 \http://www.wapforum.org/DTD/xhtml-mobile10.dtd\;;
 echo html xmlns=\http://www.w3.org/1999/xhtml\;;
 
 error_reporting(E_ALL ^ E_NOTICE);
 
 $pwd = $_GET[pwd];
 $uid = $_GET[uid];
 $action = $_GET[action];
 $cid = $_GET[cid];
 $sid = $_GET[sid];
 $var = $_GET[q];


echo 'is this your expected input? : pre';
var_dump($_GET)
echo '/pre';

 
 include (function.php);
 include (config.php);
 connect($dbserver,$dbname,$dbuser,$dbpass);
 
 
 
 /Search main page
 if(!isset($var)){
 echo head;
 echo titleSearch Engine/title;
 echo style type=\text/css\
 .m3 {background-color: #291C6F;}
.n1 {background-color: #A0A0A0;}
.n2 {background-color: #88;}
 .c2 {color: #00;}
 .m2 {color: #91D0FF;}
 body   {font-family: Arial, sans-serif;
 font-size: 12px;
 color: #ff;
 background-color: #33;
 margin-left: 0px;
 margin-right: 0px;
 margin-top: 0px;}
 .ct1 {font-family: Arial, sans-serif;
 font-size: 12px;
 color: #800080;}
 .cre {background-color: #1300A4;
 padding: 2px 2px 2px 2px;
 margin: 3px 0 0;
 font-size: 12px;
 color:#00;
 text-align: center;
 border-width:1px 0;
 border-style:solid;
 border-color:#00;}

use a css file and save a bit of band width (and scrolling in my case).

 /style;
 echo /head;
 echo body;
 echo table;
 echo div class=\cre\;
 echo bSearch Engine/b/div;
 echo form method=\GET\
 action=\search.php?uid=$uidamp;pwd=$pwd\; ///the uid and pwd is
 nessecary cause my member features are very basic and the urls is used
 to keep the user 'logged in'

basic is the wrong word if your are thinking in terms of security -
non-existent is closer to the truth. http://phpsec.org is a good place to
and learn about security on all [php] fronts

 echo Keywords: input type=\text\ name=\q\ /br/;
 echo input type=\submit\ name=\Submit\/;
 echo /form;
 echo /table;
 echo div class=\cre\img src=\images/home.gif\ alt=\*\/a
 href=\index.php?uid=$uidamp;pwd=$pwd\Home/a/div;
 echo /body;
 echo /html;
 }
 
 ///Display Results
 
 if(isset($var)){

the following line is pointless given the line about and the
fact that you have already set $var in exactly the same way at the
top of your script.

 $var = $_GET[q];
 $trimmed = trim($var); //trim whitespace from the stored variable
 echo head;
 echo titleSearch Results/title;
 echo style type=\text/css\
 .m3 {background-color: #291C6F;}
.n1 {background-color: #A0A0A0;}
.n2 {background-color: #88;}
 .c2 {color: #00;}
 .m2 {color: #91D0FF;}
 body   {font-family: Arial, sans-serif;
 font-size: 12px;
 color: #ff;
 background-color: #33;
 margin-left: 0px;
 margin-right: 0px;
 margin-top: 0px;}
 .ct1 {font-family: Arial, sans-serif;
 font-size: 12px;
 color: #800080;}
 .cre {background-color: #1300A4;
 padding: 2px 2px 2px 2px;
 margin: 3px 0 0;
 font-size: 12px;
 color:#00;
 text-align: center;
 border-width:1px 0;
 border-style:solid;
 border-color:#00;}
 /style;
 echo /head;
 echo body;
 echo div class=\cre\;
 echo bSearch Results/b/div;
 echo table;
 // Get the search variable from URL
 
 
 
 // check for an empty string and display a message.
 if ($trimmed == )
  {
  echo Please enter a search...;
  exit;
  }
 
 
 
 if($pg==0)$pg=1;
  $pg--;
  $lmt = $pg*20;
  $pg++;
  $cou =$lmt+1;

is your table called 'table'? that is the WORST name in the world for
a table - and it will break your queries unless you stick them in 

Re: [PHP] OT - web based project management tool

2007-01-07 Thread Jochem Maas
Skip Evans wrote:
 I use dotProject, and what I like most about it is it is quite easy to
 modify and enhance. For example, it uses a PDF library (name escapes me
 at the moment) and in 2 hours I wrote a quite nice invoicing module for it.
 
 I know, I think there is already one out there, but I like to add my own
 features and stuff, and was also very curious to see just how easy dP
 was to modify/enhance, and I found it quite easy.

ah, so dotproject is a project management tool ...
it's just that the site is at dotproject.net and not
dotproject.org

 
 Just my two bits.
 
 Skip
 
 Jochem Maas wrote:
 Peter Lauri wrote:

 Hi,



 What project management tool do you use for your project? Is dotProject
 (www.dotproject.org http://www.dotproject.org/ ) only alternative?


 I don't understand the second part of your question and I don't see that
 dotproject.org is even a tool for project management.
 (It might be my temporary blindness that's to blame :-)

 2 project management tools I've used are:

 sourceforge http://www.vasoftware.com/sourceforge/
 trachttp://trac.edgewall.org/

 and for code control - CVS or SVN, both the above [can] integrate CVS
 and SVN.

 

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



Re: [PHP] Search script problem

2007-01-07 Thread Jochem Maas
please keep it on the list.

Wikus Moller wrote:
 Let me repeat myself, SIMPLE, this was just the starting point.

niether 'simple' or 'starting point' equate to 'ugly' or 'shit'
though do they. even simple scripts deserve error checking and
a managable layout.

I wasn't pointing that out to make you feel bad but to give you a
leg up in better script writing ...

 
 The error was caused due to a field being created after there were
 already rows in the table.

that *shouldn't* cause you any errors. the most likely reason it
did is your scripts assumption of the physical field order of your table.

I would recommend not using mysql_fetch_array() instead switch to
mysql_fetch_assoc() and reference the elements in the returned array
by name rather than by number - this has 2 advantages:

1. you won't get bitten by fields that were added to the table after
the script was written.
2. the output you generate using the returned array is alot more understandable:

e.g. $row['name'] as compared to $row[0]

 
 It works like a dream and now I will correct the errors you pointed
 out and which you assumed I didn't know and which had no relevance to
 my query after I stated so boldly that it was simple.

a. I merely assumed that you *may* not be aware of the things I pointed
out, if you are aware of those points then there was really no harm done,
if you weren't then you would have been armed some new info ...

b. you can't control the answer, only the question, stop trying :-)

 
 Thanks

...

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



RE: [PHP] Windows directory listings

2007-01-07 Thread Beauford
Maybe I should clarify. When I use a windows path (c:\whatever) I get an
error that it can't find the path. In Linux the same code works fine
(/usr/local/whatever).

Here is all the relevent info.

Warning: opendir(f:\downloads\): failed to open dir: Invalid argument in
c:\web\index.php on line 30

* This is line 30 - if ( $handle = opendir ( $page ) ) 

This is the code:

$page = f:\\downloads;
// $mode : FULL|DIRS|FILES
// $d : must not be defined

$display = searchdir($page);

$num = count($display);
$i = 0;

for($i = 0; $i = $num; $i++) { echo $i. .$display[$i].br; }



function searchdir ( $page , $maxdepth = -1 , $mode = FILES , $d = 0 ) {
   if ( substr ( $page , strlen ( $page ) - 1 ) != '\\' ) { $page .= '\\' ;
}  
   $dirlist = array () ;
   if ( $mode != FILES ) { $dirlist[] = $page ; }
   if ( $handle = opendir ( $page ) ) 
   {
   while ( false !== ( $file = readdir ( $handle ) ) )
   {
   if ( $file != '.'  $file != '..' )
   {
   $file = $file ;
   if ( ! is_dir ( $file ) ) { if ( $mode != DIRS ) {
$dirlist[] = $file ; } }
   elseif ( $d =0  ($d  $maxdepth || $maxdepth  0) )
   {
   $result = searchdir ( $file . '\\' , $maxdepth , $mode ,
$d + 1 ) ;
   $dirlist = array_merge ( $dirlist , $result ) ;
   }
   }
   }
   closedir ( $handle ) ;
   }
   if ( $d == 0 ) { natcasesort ( $dirlist ) ; }
   return ( $dirlist ) ;
}

?

 -Original Message-
 From: Jochem Maas [mailto:[EMAIL PROTECTED] 
 Sent: January 7, 2007 10:25 AM
 To: Beauford
 Cc: PHP
 Subject: Re: [PHP] Windows directory listings
 
 Beauford wrote:
  Hi,
  
  I am trying to write a script that reads a directory on 
 Windows. All 
  the PHP functions I have looked at all seem to work with the Linux 
  dietary
 
 it sounds more like you have found an examples that show 
 windows being used (i.e. windows file paths).
 
  structure. Is there another way to do this.
 
 you must be reading a manual that only exists in your 
 particular parallel universe, all relevant php function work 
 in windows as well as linux:
 
   http://php.net/manual/en/ref.filesystem.php
   http://php.net/dir
 
  
  Thanks
  
 
 
 

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



[PHP] XML API, libcurl, POST Help Needed

2007-01-07 Thread Richard Luckhurst
Hi List

I have been given a rather urgent problem to solve for one of our clients. I
have to be able to connect to a server that deals with a section of the travel
industry and send and receive XML data. The API is quite poorly written and I am
finding it hard to get sense out of the companies help desk. I would appreciate
the help of the list in getting me pointed in the right direction.

The API expects a custom header and then a request. I have built the header and
I think it is OK. The request is an XML request and this is where I believe I am
having problems. I am getting an error response from the server telling me I
have invalid XML.

I am really stumped with the XML part. I have no idea how to code this section
and it appears what I am doing is not correct. I have spent days searching the
net looking for clues and so far have not succeeded.

I would appreciate help and guidance. If anyone needs any more information
please do not hesitate to ask.

This is what I have so far (note I have hidden usernames and passwords)

?php

$url = stagingxml.infosys.de;
$port = 10816;

/*
* HTTP Header Components
* Each part of the custom header is defined in the API document
*/

$length = Content-Length: 502;
$a_encoding = Accept-Encoding: gzip;
$t_encoding = Transfer-Encoding: identity;
$accessmode = Accessmode: agency;
$accessid = Accessid: XXX XXX_layout;
$accept = Accept: application/xml;
$charset = Accept-Charset: iso-8859-1, utf-8;
$host = $test_url;
$session = Session: ;
$api = Api-Version: 3.4;
$connection = Connection: Close;
$authorization = Authorization: A Base 64 representation of username, 
password;
$authmode = Authmode: pwd;

/*
* Build HTTP Header to use in CURLOPT_HTTPHEADER
*/

$headers[] = $length;
$headers[] = $a_encoding;
$headers[] = $t_encoding;
$headers[] = $accessmode;
$headers[] = $accessid;
$headers[] = $accept;
$headers[] = $charset;
$headers[] = $session;
$headers[] = $api;
$headers[] = $connection;
$headers[] = $authorization;
$headers[] = $authmode;

$xmlstr = '?xml version=1.0 encoding=UTF-8?fareRequest 
da=falsevcrs/fareTypes/tourOps/flightsflight depApt=FRA 
dstApt=LON depDate=2007-01-26//flightspaxespax surname=Smith 
firstname=John dob=1945-12-12 
gender=M//paxespaxTypes/optionslimit20/limitoffset0/offsetwaitOnListwaitOnALL/waitOn/waitOnList/optionscoses//fareRequest';

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_PORT, $port);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, urlencode($xmlstr));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_TIMEOUT, 40);
curl_setopt($curl, CURLOPT_VERBOSE, 1);

$response = curl_exec($curl);
if(curl_errno($curl))
{
print curl_error($curl);
}
else
{
curl_close($curl);
}

print $response\n\n\n;

?

I thank you in advance for any help.



Regards,
Richard Luckhurst
Exodus Systems - Sydney, Australia.
[EMAIL PROTECTED]

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



Re: [PHP] OT - web based project management tool

2007-01-07 Thread Skip Evans
I use dotProject, and what I like most about it is 
it is quite easy to modify and enhance. For 
example, it uses a PDF library (name escapes me at 
the moment) and in 2 hours I wrote a quite nice 
invoicing module for it.


I know, I think there is already one out there, 
but I like to add my own features and stuff, and 
was also very curious to see just how easy dP was 
to modify/enhance, and I found it quite easy.


Just my two bits.

Skip

Jochem Maas wrote:

Peter Lauri wrote:


Hi,



What project management tool do you use for your project? Is dotProject
(www.dotproject.org http://www.dotproject.org/ ) only alternative?



I don't understand the second part of your question and I don't see that
dotproject.org is even a tool for project management.
(It might be my temporary blindness that's to blame :-)

2 project management tools I've used are:

sourceforge http://www.vasoftware.com/sourceforge/
trachttp://trac.edgewall.org/

and for code control - CVS or SVN, both the above [can] integrate CVS and SVN.



--
Skip Evans
Big Sky Penguin, LLC
61 W Broadway
Butte, Montana 59701
406-782-2240

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



[PHP] Syntax Error

2007-01-07 Thread JD
Can someone help me figure out why I can't run this on MySQL.  I get a 
syntax error.

list($qh,$num) = dbQuery(SELECT password AS passwd1, 
$DATABASE_PASSWORD_FUNCTION('$password') AS passwd2 .

FROM $USER_TABLE WHERE username='$username');

$data = dbResult($qh);

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



Re: [PHP] Syntax Error

2007-01-07 Thread Chris

JD wrote:
Can someone help me figure out why I can't run this on MySQL.  I get a 
syntax error.


list($qh,$num) = dbQuery(SELECT password AS passwd1, 
$DATABASE_PASSWORD_FUNCTION('$password') AS passwd2 .


FROM $USER_TABLE WHERE username='$username');

$data = dbResult($qh);


You've already posted this on the php-db list and had two responses. No 
need to send it to all php mailing lists you can find.


--
Postgresql  php tutorials
http://www.designmagick.com/

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



Re: [PHP] XML API, libcurl, POST Help Needed

2007-01-07 Thread Jochem Maas
Richard Luckhurst wrote:
 Hi List
 
 I have been given a rather urgent problem to solve for one of our clients. I
 have to be able to connect to a server that deals with a section of the travel
 industry and send and receive XML data. The API is quite poorly written and I 
 am
 finding it hard to get sense out of the companies help desk. I would 
 appreciate
 the help of the list in getting me pointed in the right direction.
 
 The API expects a custom header and then a request. I have built the header 
 and
 I think it is OK. The request is an XML request and this is where I believe I 
 am
 having problems. I am getting an error response from the server telling me I
 have invalid XML.
 
 I am really stumped with the XML part. I have no idea how to code this section
 and it appears what I am doing is not correct. I have spent days searching the
 net looking for clues and so far have not succeeded.
 
 I would appreciate help and guidance. If anyone needs any more information
 please do not hesitate to ask.
 
 This is what I have so far (note I have hidden usernames and passwords)
 
 ?php
 
 $url = stagingxml.infosys.de;
 $port = 10816;
 
 /*
 * HTTP Header Components
 * Each part of the custom header is defined in the API document
 */
 
 $length = Content-Length: 502;

The way I see it your Content-Length is wrong - the
length of your request in this instance would 380 bytes,
based on the length of $xmlstr. but that's probably not right
either.

I imagine you need to set Content-Length dynamically,
assuming curl doesn't do that for you ...

as a side note: why bother setting all these vars then stricking
them in an array - why not just stick the strings directly in the array?
additionally if you don't need to use double quotes (for variable
interpolation) single quotes are [marginally] faster [in theory] because
no variable interpolation is attempted on them.

e.g.

$headers = array(
'Accept-Encoding: gzip',
'Transfer-Encoding: identity',
'Accessmode: agency',
'Accessid: XXX XXX_layout',
'Accept: application/xml',
// etc
);

 $a_encoding = Accept-Encoding: gzip;

not related to your current issue, but are your really accepting
a gzip'ed reply? this might cause you headaches once you have the
current problem solved.

 $t_encoding = Transfer-Encoding: identity;
 $accessmode = Accessmode: agency;
 $accessid = Accessid: XXX XXX_layout;
 $accept = Accept: application/xml;
 $charset = Accept-Charset: iso-8859-1, utf-8;
 $host = $test_url;
 $session = Session: ;
 $api = Api-Version: 3.4;
 $connection = Connection: Close;
 $authorization = Authorization: A Base 64 representation of username, 
 password;
 $authmode = Authmode: pwd;
 
 /*
 * Build HTTP Header to use in CURLOPT_HTTPHEADER
 */
 
 $headers[] = $length;
 $headers[] = $a_encoding;
 $headers[] = $t_encoding;
 $headers[] = $accessmode;
 $headers[] = $accessid;
 $headers[] = $accept;
 $headers[] = $charset;
 $headers[] = $session;
 $headers[] = $api;
 $headers[] = $connection;
 $headers[] = $authorization;
 $headers[] = $authmode;
 
 $xmlstr = '?xml version=1.0 encoding=UTF-8?fareRequest 
 da=falsevcrs/fareTypes/tourOps/flightsflight depApt=FRA 
 dstApt=LON depDate=2007-01-26//flightspaxespax surname=Smith 
 firstname=John dob=1945-12-12 
 gender=M//paxespaxTypes/optionslimit20/limitoffset0/offsetwaitOnListwaitOnALL/waitOn/waitOnList/optionscoses//fareRequest';
 
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_PORT, $port);
 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
 curl_setopt($curl, CURLOPT_POST, 1);
 curl_setopt($curl, CURLOPT_POSTFIELDS, urlencode($xmlstr));

I am guessing that the urlencoded $xmlstr should be given a POST parameter name,
what that name is I don't know but the previous line should look something like
this (*I think*):

curl_setopt($curl, CURLOPT_POSTFIELDS, array('xml' = urlencode($xmlstr)));

you might consider point the curl request to a script you control,
so that you can see exactly what the request is sending.

e.g. $url = 'http://yourdomain.tld/your-curl-request-test.php';

... and have your-curl-request-test.php write all it's recieved headers, etc
to a log file.


 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 
 curl_setopt($curl, CURLOPT_TIMEOUT, 40);
 curl_setopt($curl, CURLOPT_VERBOSE, 1);
 
 $response = curl_exec($curl);
 if(curl_errno($curl))
 {
 print curl_error($curl);
 }
 else
 {
 curl_close($curl);
 }
 
 print $response\n\n\n;
 
 ?
 
 I thank you in advance for any help.
 
 
 
 Regards,
 Richard Luckhurst
 Exodus Systems - Sydney, Australia.
 [EMAIL PROTECTED]
 

-- 
PHP General Mailing List (http://www.php.net/)

Re: [PHP] Search script problem

2007-01-07 Thread Jochem Maas
top posting.

what sucks?

-

still having trouble keeping your posts on lists?
if you want to put me in my place, that's fine but please
keep it on list where it belongs - if only because private flames
wars are so boring.

Wikus Moller wrote:
 Oops, I gave you the wrong link, here is the correct one where you can
 gain some knowledge:
 
 http://google.com/search?q=How+to+answer+questions+without+trying+to+look+smart
 

firstly, I can't actually see anything very specific to the query in the 
results.
secondly the first item in the results is primarily aimed at *you* (given that
you asked the question).

with regard to this page: http://catb.org/~esr/faqs/smart-questions.html
I am aware of it, I've read it a number of times, it's been posted on this
list numerous times and at least 1 long time list member actually carries the
link in his signature.

with regard to the last section on that page entitled
'How To Answer Questions in a Helpful Way' I don't feel I
transgressed any on of the points made, other than possibly 'be gentle' -
obviously you didn't consider it a gentle reply but it was comparitively gentle
by my usual standards.

with regard to looking smart - I don't kind looking smart at all, I consider 
myself
smart  *reasonably* knowledge with regard to using php - not perfect, not 
gifted, not
exceptional in anyway, but smart nonetheless. if that makes you feel inferior
you have one simple recourse - become, in your mind, smarter than me :-) I'll 
welcome
it, it would mean one more mind on this list capable of solving problems and
help raise the level of php hacking in general.

 
 
 On 1/8/07, Wikus Moller [EMAIL PROTECTED] wrote:
 Thats fine with me ^.^

 Here are some tips for you when you answer a question next time:

 http://google.com/search?p=How+to+answer+a+question+without+trying+to+look+smart


 Thanks
 Wikus


 On 1/7/07, Jochem Maas [EMAIL PROTECTED] wrote:
  please keep it on the list.
 
  Wikus Moller wrote:
   Let me repeat myself, SIMPLE, this was just the starting point.
 
  niether 'simple' or 'starting point' equate to 'ugly' or 'shit'
  though do they. even simple scripts deserve error checking and
  a managable layout.
 
  I wasn't pointing that out to make you feel bad but to give you a
  leg up in better script writing ...
 
  
   The error was caused due to a field being created after there were
   already rows in the table.
 
  that *shouldn't* cause you any errors. the most likely reason it
  did is your scripts assumption of the physical field order of your
 table.
 
  I would recommend not using mysql_fetch_array() instead switch to
  mysql_fetch_assoc() and reference the elements in the returned array
  by name rather than by number - this has 2 advantages:
 
  1. you won't get bitten by fields that were added to the table after
  the script was written.
  2. the output you generate using the returned array is alot more
  understandable:
 
  e.g. $row['name'] as compared to $row[0]
 
  
   It works like a dream and now I will correct the errors you pointed
   out and which you assumed I didn't know and which had no relevance to
   my query after I stated so boldly that it was simple.
 
  a. I merely assumed that you *may* not be aware of the things I pointed
  out, if you are aware of those points then there was really no harm
 done,
  if you weren't then you would have been armed some new info ...
 
  b. you can't control the answer, only the question, stop trying :-)
 
  
   Thanks
 
  ...
 


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



Re: [PHP] Windows directory listings

2007-01-07 Thread Jochem Maas
with regard to trolling - I'd don't *just* do that :-)

sometime I even get the answer to the question correct :-)
let's see if I can help ...

Beauford wrote:
 Maybe I should clarify. When I use a windows path (c:\whatever) I get an
 error that it can't find the path. In Linux the same code works fine
 (/usr/local/whatever).
 
 Here is all the relevent info.
 
 Warning: opendir(f:\downloads\): failed to open dir: Invalid argument in
 c:\web\index.php on line 30
 
 * This is line 30 - if ( $handle = opendir ( $page ) ) 
 
 This is the code:
 
 $page = f:\\downloads;

you got this part right (escaping the backslash)

 // $mode : FULL|DIRS|FILES
 // $d : must not be defined
 
 $display = searchdir($page);
 
 $num = count($display);
 $i = 0;
 
 for($i = 0; $i = $num; $i++) { echo $i. .$display[$i].br; }
 
 
 
 function searchdir ( $page , $maxdepth = -1 , $mode = FILES , $d = 0 ) {
if ( substr ( $page , strlen ( $page ) - 1 ) != '\\' ) { $page .= '\\' ;}

this if statement will run given the value of $page, it's not needed AFAIKT.
then again I can't see it causing problems.

btw: php defines a constant DIRECTORY_SEPARATOR automatically which may help you
make your code more portable, and save you having to think/worry about the 
blacksdlashing
'problem'.

$dirlist = array () ;
if ( $mode != FILES ) { $dirlist[] = $page ; }

right here I suggest adding a check using is_dir() and is_readable() on the 
$page var.
for now stick in a bit of debug code ...

echo 'pre';
var_dump($path, is_dir($path), is_readable($path));
echo '/pre';

I'm guessing that is_readable() is going to return false, which would point
the fact that either the drive or the directory is not readable by the webserver
process (you don't mention whether you are running via a the webserver but I 
assume you
are given the output your generating include a 'br') - the situation maybe 
compounded
by the fact that F: is actually a mapped drive of some sorts (I have no idea
what kind of trouble this could cause).



if ( $handle = opendir ( $page ) ) 
{
while ( false !== ( $file = readdir ( $handle ) ) )
{
if ( $file != '.'  $file != '..' )
{
$file = $file ;
if ( ! is_dir ( $file ) ) { if ( $mode != DIRS ) {
 $dirlist[] = $file ; } }
elseif ( $d =0  ($d  $maxdepth || $maxdepth  0) )
{
$result = searchdir ( $file . '\\' , $maxdepth , $mode ,
 $d + 1 ) ;
$dirlist = array_merge ( $dirlist , $result ) ;
}
}
}
closedir ( $handle ) ;
}
if ( $d == 0 ) { natcasesort ( $dirlist ) ; }
return ( $dirlist ) ;
 }
 
 ?
 
 -Original Message-
 From: Jochem Maas [mailto:[EMAIL PROTECTED] 
 Sent: January 7, 2007 10:25 AM
 To: Beauford
 Cc: PHP
 Subject: Re: [PHP] Windows directory listings

 Beauford wrote:
 Hi,

 I am trying to write a script that reads a directory on 
 Windows. All 
 the PHP functions I have looked at all seem to work with the Linux 
 dietary
 it sounds more like you have found an examples that show 
 windows being used (i.e. windows file paths).

 structure. Is there another way to do this.
 you must be reading a manual that only exists in your 
 particular parallel universe, all relevant php function work 
 in windows as well as linux:

  http://php.net/manual/en/ref.filesystem.php
  http://php.net/dir

 Thanks



 

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



[PHP] ODBC and long text fields

2007-01-07 Thread Larry Garfield
Hi all.  I've a question regarding PHP's ODBC support.

Here's the situation: 

We've a PHP app that uses ODBC to talk to a MS SQL server.  Its original home 
was on a server that used the OpenLink ODBC driver, which was a POS, so we 
build an abstraction wrapper around the subset of PHP's ODBC functions that 
we were able to use to make it usable.  The internal code for a query is 
built on odbc_exec, odbc_fetch_row, and odbc_result.  The main interesting 
part is that the original driver didn't allow for named results, so instead 
we have a small string parser that reads the incoming SQL query, extracts the 
field names, and then uses that to map the numeric result indexes to their 
field name.  Kinda clunky, but worked well and used only a minimal ODBC 
footprint.  

That worked fine on their old system.  However, the client then moved from a 
Windows IIS server to Apache and PHP 5.1.6 on a Linux box, but still talking 
to an MS SQL server on a Windows box.  We migrated our test environment to 
the same; Linux/Apache/PHP 5.1 talking to MS SQL on a Windows box over the 
network.  Our system uses the unix_ODBC and freetds stack for ODBC 
connectivity, and that works fine.

On the client's system, it works fine except for a few odd cases.  
Specifically, on a few queries that pull data from large text fields the 
query may hang.  It seems to reliably hang on certain records only, and only 
after those records have been edited.  It seems that when updating a record, 
there is a small chance of something happening to that record and it then not 
working thereafter.  A PHP test script run from the command line freezes, 
while the same query run directly on the SQL server returns almost instantly.

The client has been in contact with their ODBC driver vendor (they're using a 
commercial driver), and the vendor's response is that we're not using ODBC 
correctly.  Specifically, they say:

-
I followed the ODBC calls in your odbc trace file and I got error 
Invalid Descriptor Index on SQLGetData as well. I know we normally 
don't handle the retrieval of large dataset like Text using SQLGetData 
as your application is doing. I'm in the research of whether the way 
your application does is valid or not.
-

They then followed up with:

-
We have done some research on this issue. We realized that your 
application is binding all the columns for the resultset and then use 
SQLGetData. This is not the correct way to do. You can either use bind 
column for result set and then print out the data in the bound buffer, 
or use SQLGetData to get the unbound resultset.
-

They then include some sample code that is all in C.

Now I'll be honest and say I don't quite follow what they're talking about. I 
do not claim to be an ODBC guru, but SQLGetData is a lower-level operation, 
SQL level or C level I don't know, but not something that happens in PHP code 
as far as I am aware.  Are they saying there's a bug in PHP's 
odbc_fetch_row()?  Or is it a bug in their driver if it can't handle whatever 
it is odbc_fetch_row() does internally?  Or should we be using odbc_result() 
instead of odbc_fetch_row() if we're dealing with a text field rather than a 
varchar or int?  

I am confused, and would appreciate assistance in becoming less confused. :-)  
Thanks.

-- 
Larry Garfield  AIM: LOLG42
[EMAIL PROTECTED]   ICQ: 6817012

If nature has made any one thing less susceptible than all others of 
exclusive property, it is the action of the thinking power called an idea, 
which an individual may exclusively possess as long as he keeps it to 
himself; but the moment it is divulged, it forces itself into the possession 
of every one, and the receiver cannot dispossess himself of it.  -- Thomas 
Jefferson

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



Re: [PHP] ODBC and long text fields

2007-01-07 Thread Jochem Maas
no real answer, but ...

Larry Garfield wrote:
 Hi all.  I've a question regarding PHP's ODBC support.
 
 Here's the situation: 
 
 We've a PHP app that uses ODBC to talk to a MS SQL server.  Its original home 
 was on a server that used the OpenLink ODBC driver, which was a POS, so we 
 build an abstraction wrapper around the subset of PHP's ODBC functions that 
 we were able to use to make it usable.  The internal code for a query is 
 built on odbc_exec, odbc_fetch_row, and odbc_result.  The main interesting 
 part is that the original driver didn't allow for named results, so instead 
 we have a small string parser that reads the incoming SQL query, extracts the 
 field names, and then uses that to map the numeric result indexes to their 
 field name.  Kinda clunky, but worked well and used only a minimal ODBC 
 footprint.  
 
 That worked fine on their old system.  However, the client then moved from a 
 Windows IIS server to Apache and PHP 5.1.6 on a Linux box, but still talking 
 to an MS SQL server on a Windows box.  We migrated our test environment to 
 the same; Linux/Apache/PHP 5.1 talking to MS SQL on a Windows box over the 
 network.  Our system uses the unix_ODBC and freetds stack for ODBC 
 connectivity, and that works fine.
 
 On the client's system, it works fine except for a few odd cases.  
 Specifically, on a few queries that pull data from large text fields the 
 query may hang.  It seems to reliably hang on certain records only, and only 
 after those records have been edited.  It seems that when updating a record, 
 there is a small chance of something happening to that record and it then not 
 working thereafter.  A PHP test script run from the command line freezes, 
 while the same query run directly on the SQL server returns almost instantly.

...

 
 Now I'll be honest and say I don't quite follow what they're talking about. I 
 do not claim to be an ODBC guru, but SQLGetData is a lower-level operation, 
 SQL level or C level I don't know, but not something that happens in PHP code 
 as far as I am aware.  Are they saying there's a bug in PHP's 
 odbc_fetch_row()?  Or is it a bug in their driver if it can't handle whatever 
 it is odbc_fetch_row() does internally?  
 Or should we be using odbc_result() 
 instead of odbc_fetch_row() if we're dealing with a text field rather than a 
 varchar or int?  

the way I read it odbc_result() is just an alternative way of doing what you
do with odbc_fetch_row() - I can't see any reason why doing it with 
odbc_result()
would suddenly make it work - nonetheless it might be worth trying it just to 
rule
it out.

with regard to wanting results returned in a 'named' fashion, does the new 
setup still
not allow use of odbc_fetch_array() instead of odbc_fetch_row()? not that I see 
any logic
in that solving the issue, again it might be worth trying to see if it does.

I don't know much about MSSQL, or whether 'text' is an actual field type, but 
maybe
this function offers a wayout?:

http://php.net/manual/en/function.odbc-binmode.php

are the php versions on the 2 systems you mention exactly the same? (you
mention 5.1 and 5.1.6) this could be a clue to the problem.

lastly I don't suppose that it possible for you to switch to using the MSSQL
specific php extension? [http://php.net/mssql] it might offer a better/faster 
connection
to the MSSQL server as well as making the issue go away.

 
 I am confused, and would appreciate assistance in becoming less confused. :-) 
  
 Thanks.
 

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



Re: [PHP] Syntax Error

2007-01-07 Thread Chris

bruce wrote:

chris...

sure there is.. alot of people don't subscribe to other lists. if you're one
who does, simply ignore his post.


And if the poster looked at either of the responses he received and 
replied to the questions asked, then he'd get a much better response.


http://marc.theaimsgroup.com/?t=11682128183r=1w=2

If the OP didn't get a response at all, then hey go for it but since he 
got two responses within 5 minutes of the original post and then decided 
to post on another list within 10 minutes, then yeh I will criticize.


--
Postgresql  php tutorials
http://www.designmagick.com/

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



RE: [PHP] Windows directory listings

2007-01-07 Thread Beauford
 

 -Original Message-
 From: Jochem Maas [mailto:[EMAIL PROTECTED] 
 Sent: January 7, 2007 8:35 PM
 To: Beauford
 Cc: 'PHP'
 Subject: Re: [PHP] Windows directory listings
 
 with regard to trolling - I'd don't *just* do that :-)
 
 sometime I even get the answer to the question correct :-) 
 let's see if I can help ...
 
 Beauford wrote:
  Maybe I should clarify. When I use a windows path 
 (c:\whatever) I get 
  an error that it can't find the path. In Linux the same code works 
  fine (/usr/local/whatever).
  
  Here is all the relevent info.
  
  Warning: opendir(f:\downloads\): failed to open dir: 
 Invalid argument 
  in c:\web\index.php on line 30
  
  * This is line 30 - if ( $handle = opendir ( $page ) )
  
  This is the code:
  
  $page = f:\\downloads;
 
 you got this part right (escaping the backslash)
 
  // $mode : FULL|DIRS|FILES
  // $d : must not be defined
  
  $display = searchdir($page);
  
  $num = count($display);
  $i = 0;
  
  for($i = 0; $i = $num; $i++) { echo $i. .$display[$i].br; }
  
  
  
  function searchdir ( $page , $maxdepth = -1 , $mode = 
 FILES , $d = 0 ) {
 if ( substr ( $page , strlen ( $page ) - 1 ) != '\\' ) { 
 $page .= 
  '\\' ;}
 
 this if statement will run given the value of $page, it's not 
 needed AFAIKT.
 then again I can't see it causing problems.

This makes no difference. I took it out before and got the same error.


 btw: php defines a constant DIRECTORY_SEPARATOR automatically 
 which may help you make your code more portable, and save you 
 having to think/worry about the blacksdlashing 'problem'.
 
 $dirlist = array () ;
 if ( $mode != FILES ) { $dirlist[] = $page ; }
 
 right here I suggest adding a check using is_dir() and 
 is_readable() on the $page var.
 for now stick in a bit of debug code ...
 
 echo 'pre';
 var_dump($path, is_dir($path), is_readable($path)); echo '/pre';

I checked the NTFS permissions and they are fine, and the local directory
displays fine. By this I mean the directory where this script is.

So if the script is in c:\test I can read c:\test, c:\test\test2.
c:\test\test3, ../test2. etc. It only happens when I go outside of the
current drive. 

So if I put $page = test, or $page = test3, or $page = ../ they will
all work. As soon as I add a drive letter, it gives me the error. Even on
the local machine.

I am trying to access a networked drive, but I have a share on the PC where
the script is . May this is the issue. Is there a way to use a UNC path?
 
 I'm guessing that is_readable() is going to return false, 
 which would point the fact that either the drive or the 
 directory is not readable by the webserver process (you don't 
 mention whether you are running via a the webserver but I 
 assume you are given the output your generating include a 
 'br') - the situation maybe compounded by the fact that F: 
 is actually a mapped drive of some sorts (I have no idea what 
 kind of trouble this could cause).
 
 
 
 if ( $handle = opendir ( $page ) ) 
 {
 while ( false !== ( $file = readdir ( $handle ) ) )
 {
 if ( $file != '.'  $file != '..' )
 {
 $file = $file ;
 if ( ! is_dir ( $file ) ) { if ( $mode != DIRS ) { 
  $dirlist[] = $file ; } }
 elseif ( $d =0  ($d  $maxdepth || 
 $maxdepth  0) )
 {
 $result = searchdir ( $file . '\\' , $maxdepth , 
  $mode , $d + 1 ) ;
 $dirlist = array_merge ( $dirlist , $result ) ;
 }
 }
 }
 closedir ( $handle ) ;
 }
 if ( $d == 0 ) { natcasesort ( $dirlist ) ; }
 return ( $dirlist ) ;
  }
  
  ?
  
  -Original Message-
  From: Jochem Maas [mailto:[EMAIL PROTECTED]
  Sent: January 7, 2007 10:25 AM
  To: Beauford
  Cc: PHP
  Subject: Re: [PHP] Windows directory listings
 
  Beauford wrote:
  Hi,
 
  I am trying to write a script that reads a directory on
  Windows. All
  the PHP functions I have looked at all seem to work with 
 the Linux 
  dietary
  it sounds more like you have found an examples that show windows 
  being used (i.e. windows file paths).
 
  structure. Is there another way to do this.
  you must be reading a manual that only exists in your particular 
  parallel universe, all relevant php function work in 
 windows as well 
  as linux:
 
 http://php.net/manual/en/ref.filesystem.php
 http://php.net/dir
 
  Thanks
 
 
 
  
 
 --
 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



Re[2]: [PHP] XML API, libcurl, POST Help Needed

2007-01-07 Thread Richard Luckhurst
Hi Jochem,

Thanks very much for your help. I now have the application working. Just for
anyone elses interest here are a few comments.


 $length = Content-Length: 502;

JM The way I see it your Content-Length is wrong - the
JM length of your request in this instance would 380 bytes,
JM based on the length of $xmlstr. but that's probably not right
JM either.

JM I imagine you need to set Content-Length dynamically,
JM assuming curl doesn't do that for you ...

Yes curl does it for you I have discovered. So I removed this Content-Length and
found that it is now dynamically generated.

JM as a side note: why bother setting all these vars then stricking
JM them in an array - why not just stick the strings directly in the array?
JM additionally if you don't need to use double quotes (for variable
JM interpolation) single quotes are [marginally] faster [in theory] because
JM no variable interpolation is attempted on them.

Because I was being a bit lazy and wanted to see more of what was going on. Of
course you are right and I have now cleaned up my code as you have suggested.

 $a_encoding = Accept-Encoding: gzip;

JM not related to your current issue, but are your really accepting
JM a gzip'ed reply? this might cause you headaches once you have the
JM current problem solved.

Yeah this gzip is a real pain. The API specifies either a gzipped or a
compressed data transfer. Some of the returns from the server, in Germany, can
be quite large so I guess the developers wanted to save some bandwidth by
compressing the data. I have just discovered that if I leave the
Accept-Encoding: gzip out all together then the whole process works with the
data returned in plain uncompressed text :-)


 curl_setopt($curl, CURLOPT_POSTFIELDS, urlencode($xmlstr));

JM I am guessing that the urlencoded $xmlstr should be given a POST parameter 
name,
JM what that name is I don't know but the previous line should look something 
like
JM this (*I think*):

JM curl_setopt($curl, CURLOPT_POSTFIELDS, array('xml' = urlencode($xmlstr)));

This was where I had suspected I was having trouble. What I did find was that
the whole thing now works just by removing the urlencode all together. It
appears that the Content-Length was the problem all along and once that was
fixed and the urlencode was removed everything was fine.

JM you might consider point the curl request to a script you control,
JM so that you can see exactly what the request is sending.

JM e.g. $url = 'http://yourdomain.tld/your-curl-request-test.php';

JM ... and have your-curl-request-test.php write all it's recieved headers, etc
JM to a log file.

Probably a good idea for debugging.

Thanks for your help.



Regards,
Richard Luckhurst
Product Development
Exodus Systems - Sydney, Australia.
[EMAIL PROTECTED]

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



Re: [PHP] ODBC and long text fields

2007-01-07 Thread Larry Garfield
On Sunday 07 January 2007 8:26 pm, Jochem Maas wrote:

  Now I'll be honest and say I don't quite follow what they're talking
  about. I do not claim to be an ODBC guru, but SQLGetData is a lower-level
  operation, SQL level or C level I don't know, but not something that
  happens in PHP code as far as I am aware.  Are they saying there's a bug
  in PHP's
  odbc_fetch_row()?  Or is it a bug in their driver if it can't handle
  whatever it is odbc_fetch_row() does internally?
  Or should we be using odbc_result()
  instead of odbc_fetch_row() if we're dealing with a text field rather
  than a varchar or int?

 the way I read it odbc_result() is just an alternative way of doing what
 you do with odbc_fetch_row() - I can't see any reason why doing it with
 odbc_result() would suddenly make it work - nonetheless it might be worth
 trying it just to rule it out.

 with regard to wanting results returned in a 'named' fashion, does the new
 setup still not allow use of odbc_fetch_array() instead of
 odbc_fetch_row()? not that I see any logic in that solving the issue, again
 it might be worth trying to see if it does.

Honestly I've not tried.  (I also don't have the wrapper code in front of me 
at the moment. g)  That could be a nice thing to simplify for performance, 
but I suspect that if the problem is with odbc_fetch_row() then 
odbc_fetch_array() will have the same bug.

 I don't know much about MSSQL, or whether 'text' is an actual field type,
 but maybe this function offers a wayout?:

   http://php.net/manual/en/function.odbc-binmode.php

No, that looks like it's for binary data.  Text is a MS SQL field for 
huge-ass text fields, essentially similar to the MySQL field of the same name 
(at least at an API level).  We also tried playing with odbc_longreadlen() 
and setting MS SQL's TEXTSIZE and TEXTLENGTH parameters to no avail.

 are the php versions on the 2 systems you mention exactly the same? (you
 mention 5.1 and 5.1.6) this could be a clue to the problem.

It's either both 5.1.6 or 5.1.6 live and 5.1.4 devel.  (I don't recall what 
our exact version is atm.)  We're in the process of upgrading our server 
soon, and I'm not sure what it will have.  Probably 5.2, just to keep life 
interesting. :-)

 lastly I don't suppose that it possible for you to switch to using the
 MSSQL specific php extension? [http://php.net/mssql] it might offer a
 better/faster connection to the MSSQL server as well as making the issue go
 away.

I don't believe the client allows direct MSSQL connections.  Besides, the 
MSSQL functions still require an ODBC driver underneath, so if the problem is 
with the ODBC driver then that won't change anything.

-- 
Larry Garfield  AIM: LOLG42
[EMAIL PROTECTED]   ICQ: 6817012

If nature has made any one thing less susceptible than all others of 
exclusive property, it is the action of the thinking power called an idea, 
which an individual may exclusively possess as long as he keeps it to 
himself; but the moment it is divulged, it forces itself into the possession 
of every one, and the receiver cannot dispossess himself of it.  -- Thomas 
Jefferson

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



RE: [PHP] How to suppress error messages when using 'new mysqli(...)'

2007-01-07 Thread Ligaya A. Turmelle
Well - first I would turn off display errors and turn on log errors.
Then - well there is always the error suppressor (@) - but I personally
don't like it.   You could also create a custom error handler... And I
wonder if mysqli supports exceptions...

http://www.php.net/manual/en/ref.errorfunc.php
http://www.php.net/~helly/php/ext/spl/


Respectfully,
Ligaya Turmelle
Systems Analyst
Guamcell Communications
Phone: (671)689-2377 
-Original Message-
From: Richard Morris [mailto:[EMAIL PROTECTED] 
Sent: Saturday, January 06, 2007 4:29 AM
To: php-general@lists.php.net
Subject: [PHP] How to suppress error messages when using 'new
mysqli(...)'

Hi,

I am having this problem that I hope can be worked around.  I make a
connection to our MySQL database using the object version of mysqli.  If
access is denied because of an incorrect username or password, mysqli
displays an error.  Is there any way to suppress the error message?

Here is the code I am using as a test case:

?php
   $db = null;

   $db = new mysqli('localhost', 'user', 'badpass', 'test');

   if (mysqli_connect_errno()) {
 echo Database connection error.\n\n;
 exit();
   }

   echo Connection successful.\n\n;
?

This is the output I get:

PHP Warning:  mysqli::mysqli(): (28000/1045): Access denied for user
'user'@'localhost' (using password: YES) in /home/richard/dbtest.php on
line 4

Warning: mysqli::mysqli(): (28000/1045): Access denied for user
'user'@'localhost' (using password: YES) in /home/richard/dbtest.php on
line 4 An error occurred while trying to connect to the database.

I was expecting this:

An error occurred while trying to connect to the database.

Is there a way to prevent the error messages from being display so that
the error can be handled in a nicer manner?

Thank you.

--
Richard Morris
HDD Broker, Inc.

 Toll-Free: +1 866 960-3331
International: +1 250 474-6022
   Fax: +1 250 474-6099
E-Mail: [EMAIL PROTECTED]
  Web Site: www.hddbroker.com

--
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



[PHP] Arrays?

2007-01-07 Thread William Stokes
Hello,

How to print out the following array $test so that the print order is by the 
fourth[4] key? I need to print out all arrays in $test so that the data is 
ordered by the fourth key in ascending order.

$test =Array (
 [0] = Array (
  [0] = 5
  [1] = 2
  [2] = sika
  [3] = sika.php
  [4] = 1 )

 [1] = Array (
  [0] = 8
  [1] =2
  [2] = Hono
  [3] = hono.php
  [4] = 1 )

 [2] = Array (
  [0] = 7
  [1] = 2
  [2] = Kameli
  [3] = kameli.php
  [4] = 4 )

 [3] = Array (
  [0] = 6
  [1] = 2
  [2] = koira
  [3] = koira.php
  [4] = 2 )
  )

The way that the data is strored to $test makes it difficult/impossible to 
sort stuff the way I need here while reading it from DB.

Thanks
-Will 

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



RE: [PHP] Question regarding include() and symlinks to directories

2007-01-07 Thread Vincent DUPONT
hello,
if I can still contribute to this topic, I suggest you never use simlinks.
We experienced very bad maintenance problems at a customer : when copying new 
files through FTP, the simlinks were often erased or overwriten. 
And this occured on every upgrade of the scripts.

This would not occur with a simple and stable include_path setting. Moreover, 
one can set the include_path dircetly from PHP, allowing for example 2 
applications to define their own include_path.

Finaly, simlinks are not available on win32 platforms.

So, the include_path should be more stable (considering FTP) and more flexible 
than simlinks.



Vincent Dupont
Ausy Belgium



-Original Message-
From: Richard Lynch [mailto:[EMAIL PROTECTED]
Sent: Sat 1/6/2007 0:17
To: Karl Pflästerer
Cc: php-general@lists.php.net
Subject: Re: [PHP]  Question regarding include() and symlinks to directories
 
On Thu, January 4, 2007 2:47 pm, Karl Pflästerer wrote:
 In my opinion include() should respect symlinks to directories and not
 dereference them before finding the file to include. Or am I wrong
 here?
 The PHP version is 5.1.6 (will soon be updated).

WHOOPS!

My fingers slipped and I keyboarded to Send button.

SORRY!

... and use full pathname when you go to read a file.

Anything else is more like playing an Adventure Game than Programming.

I can see arguments both ways for when to work out the symlink, so
you'd have to take this up with Internals to get a change made...

-- 
Some people have a gift link here.
Know what I want?
I want you to buy a CD from some starving artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?

-- 
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



Re: [PHP] Arrays?

2007-01-07 Thread Nicholas Yim
Hello William Stokes,

1 write a callback function:
  [php]
  function cmp_forth_value($left,$right){
return $left[4]$right?-1:($left[4]==$right[4]?0:1);
  }
  [/php]

2 use the usort function

  usort($test,'cmp_forth_value');

Best regards, 
  
=== At 2007-01-08, 14:46:33 you wrote: ===

Hello,

How to print out the following array $test so that the print order is by the 
fourth[4] key? I need to print out all arrays in $test so that the data is 
ordered by the fourth key in ascending order.

$test =Array (
 [0] = Array (
  [0] = 5
  [1] = 2
  [2] = sika
  [3] = sika.php
  [4] = 1 )

 [1] = Array (
  [0] = 8
  [1] =2
  [2] = Hono
  [3] = hono.php
  [4] = 1 )

 [2] = Array (
  [0] = 7
  [1] = 2
  [2] = Kameli
  [3] = kameli.php
  [4] = 4 )

 [3] = Array (
  [0] = 6
  [1] = 2
  [2] = koira
  [3] = koira.php
  [4] = 2 )
  )

The way that the data is strored to $test makes it difficult/impossible to 
sort stuff the way I need here while reading it from DB.

Thanks
-Will 

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



= = = = = = = = = = = = = = = = = = = =

Nicholas Yim
[EMAIL PROTECTED]
2007-01-08

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



Re: [PHP] Question regarding include() and symlinks to directories

2007-01-07 Thread Roman Neuhauser
# [EMAIL PROTECTED] / 2007-01-08 08:13:11 +0100:
 From: Richard Lynch [mailto:[EMAIL PROTECTED]
  Sent: Sat 1/6/2007 0:17
  To: Karl Pflästerer
  Cc: php-general@lists.php.net
  Subject: Re: [PHP]  Question regarding include() and symlinks to directories
   
  On Thu, January 4, 2007 2:47 pm, Karl Pflästerer wrote:
   In my opinion include() should respect symlinks to directories and not
   dereference them before finding the file to include. Or am I wrong
   here?
   The PHP version is 5.1.6 (will soon be updated).
  
  Anything else is more like playing an Adventure Game than Programming.
  
  I can see arguments both ways for when to work out the symlink, so
  you'd have to take this up with Internals to get a change made...
 
 if I can still contribute to this topic, I suggest you never use simlinks.
 We experienced very bad maintenance problems at a customer : when
 copying new files through FTP, the simlinks were often erased or
 overwriten.  And this occured on every upgrade of the scripts.

Shouldn't that have been: never use broken FTP clients?

NB, I hope I got the quoting right, but if someone got misattributed,
please blame the original quoting.

-- 
How many Vietnam vets does it take to screw in a light bulb?
You don't know, man.  You don't KNOW.
Cause you weren't THERE. http://bash.org/?255991

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