By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,985 Members | 1,863 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,985 IT Pros & Developers. It's quick & easy.

testing the condition of a pair of fields

P: n/a
Hi

Can anyone tell me why the following code will NOT work
The error message should be displayed when there is something in both fields

if ((isset($_POST['Link']) && $_POST['Link'] !=='') &&
(isset($_POST['uploadedfile']) && $_POST['uploadedfile'] !=='')) {
$error_msg.="<br>You can't select to upload a link and a file at the same
time.";

curiously the following works

if(empty($_POST['Link']) || $_POST['Link'] ='' &&
empty($_FILES['uploadedfile']) || $_FILES['uploadedfile'] ='') {
$error_msg.="<br>You didn't select whether to upload a link or a file.";
}

to display a message when there is nothing in both fields

help gratefuly requested
Ian
Jun 26 '06 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Ian Davies wrote:
if ((isset($_POST['Link']) && $_POST['Link'] !=='') &&
(isset($_POST['uploadedfile']) && $_POST['uploadedfile'] !=='')) {
$error_msg.="<br>You can't select to upload a link and a file at the
same time.";

This way, the condition only applies when both sub-conditions are true (both
fields are non-empty); replace the && between the sub-conditions with ||

if ((isset($v) && $v !=='') || (isset($v2) && $v2 !=='')) {
...
}
curiously the following works

if(empty($_POST['Link']) || $_POST['Link'] ='' &&
empty($_FILES['uploadedfile']) || $_FILES['uploadedfile'] ='') {
$error_msg.="<br>You didn't select whether to upload a link or a
file."; }


That's because with the ||, only one test has to pass. Also note that you
are not compatring values (==) but assigning them (=).
JW

Jun 26 '06 #2

P: n/a
>This way, the condition only applies when both sub-conditions are true
(both
fields are non-empty);
Thats exactly what I want only one field should have something in it and
both fields should NOT be empty at the same time. But it doesnt work.

Ian
"Janwillem Borleffs" <jw@jwscripts.com> wrote in message
news:44***********************@news.euronet.nl... Ian Davies wrote:
if ((isset($_POST['Link']) && $_POST['Link'] !=='') &&
(isset($_POST['uploadedfile']) && $_POST['uploadedfile'] !=='')) {
$error_msg.="<br>You can't select to upload a link and a file at the
same time.";

This way, the condition only applies when both sub-conditions are true

(both fields are non-empty); replace the && between the sub-conditions with ||

if ((isset($v) && $v !=='') || (isset($v2) && $v2 !=='')) {
...
}
curiously the following works

if(empty($_POST['Link']) || $_POST['Link'] ='' &&
empty($_FILES['uploadedfile']) || $_FILES['uploadedfile'] ='') {
$error_msg.="<br>You didn't select whether to upload a link or a
file."; }


That's because with the ||, only one test has to pass. Also note that you
are not compatring values (==) but assigning them (=).
JW

Jun 26 '06 #3

P: n/a
kay

Ian Davies написав:
This way, the condition only applies when both sub-conditions are true

(both
fields are non-empty);


Thats exactly what I want only one field should have something in it and
both fields should NOT be empty at the same time. But it doesnt work.

Ian
"Janwillem Borleffs" <jw@jwscripts.com> wrote in message
news:44***********************@news.euronet.nl...
Ian Davies wrote:
if ((isset($_POST['Link']) && $_POST['Link'] !=='') &&
(isset($_POST['uploadedfile']) && $_POST['uploadedfile'] !=='')) {
$error_msg.="<br>You can't select to upload a link and a file at the
same time.";


This way, the condition only applies when both sub-conditions are true

(both
fields are non-empty); replace the && between the sub-conditions with ||

if ((isset($v) && $v !=='') || (isset($v2) && $v2 !=='')) {
...
}
curiously the following works

if(empty($_POST['Link']) || $_POST['Link'] ='' &&
empty($_FILES['uploadedfile']) || $_FILES['uploadedfile'] ='') {
$error_msg.="<br>You didn't select whether to upload a link or a
file."; }


That's because with the ||, only one test has to pass. Also note that you
are not compatring values (==) but assigning them (=).
JW


The boolean result of initialization the variables in 'if' condition
is always 'true' so the code like

if ( (...||...||...||$a=''||...) && (...||...||...||$b=''||...)&&
..... (...||...||...||$z=''||...))

will be always true as Janwillem Borleffs mentioned.
Maybe you meant $Post['Link']=='' in your code?

Jun 27 '06 #4

P: n/a
In message <vQ******************@newsfe3-win.ntli.net>, Ian Davies
<ia********@virgin.net> writes
Can anyone tell me why the following code will NOT work
The error message should be displayed when there is something in both fields

if ((isset($_POST['Link']) && $_POST['Link'] !=='') &&
(isset($_POST['uploadedfile']) && $_POST['uploadedfile'] !=='')) {
$error_msg.="<br>You can't select to upload a link and a file at the same
time.";
Here you're using $_POST['uploadedfile']. I'd guess it should probably
be $_FILES['uploadedfile']['name'], which is the name of the file that
was uploaded.
curiously the following works

if(empty($_POST['Link']) || $_POST['Link'] ='' &&
empty($_FILES['uploadedfile']) || $_FILES['uploadedfile'] ='') {
$error_msg.="<br>You didn't select whether to upload a link or a file.";
}


Here you're using $_FILES['uploadedfile'], which would be an array.

And $_POST['Link'] ='' will always be true because it is giving
$_POST['Link'] the value ''.
--
Martin Jay
Phone/SMS: +44 7740 191877
Fax: +44 870 915 2124
Jun 27 '06 #5

P: n/a
Yes there was syntax errors in my previous post but i tried every
combination even with the correct syntax. The problem was the

$_FILES['uploadedfile']

which wasnt being recognised as a field
I found eventually that it should be

$_FILES['uploadedfile'] [Name]

now everything is fine
Thanks for the help

Ian

should be
if($_POST['Link']!=='' && $_FILES['uploadedfile']!=='') {
$error_msg.="<br>You can't select to upload a link and a file at the same
time.";
}

error does shows when 'uploadedfile' is empty

if($_POST['Link']<>'' && $_FILES['uploadedfile']<>'') {
$error_msg.="<br>You can't select to upload a link and a file at the same
time.";
}

error does shows when 'uploadedfile' is empty

if(!isset($_POST['Link']) && !isset($_FILES['uploadedfile'])) {
$error_msg.="<br>You can't select to upload a link and a file at the same
time.";
}

error does not show even when both fields have something in them
error does not show

"Martin Jay" <ma****@spam-free.org.uk> wrote in message
news:AP**************@spam-free.org.uk...
In message <vQ******************@newsfe3-win.ntli.net>, Ian Davies
<ia********@virgin.net> writes
Can anyone tell me why the following code will NOT work
The error message should be displayed when there is something in both fields
if ((isset($_POST['Link']) && $_POST['Link'] !=='') &&
(isset($_POST['uploadedfile']) && $_POST['uploadedfile'] !=='')) {
$error_msg.="<br>You can't select to upload a link and a file at the sametime.";


Here you're using $_POST['uploadedfile']. I'd guess it should probably
be $_FILES['uploadedfile']['name'], which is the name of the file that
was uploaded.
curiously the following works

if(empty($_POST['Link']) || $_POST['Link'] ='' &&
empty($_FILES['uploadedfile']) || $_FILES['uploadedfile'] ='') {
$error_msg.="<br>You didn't select whether to upload a link or a file.";
}


Here you're using $_FILES['uploadedfile'], which would be an array.

And $_POST['Link'] ='' will always be true because it is giving
$_POST['Link'] the value ''.
--
Martin Jay
Phone/SMS: +44 7740 191877
Fax: +44 870 915 2124

Jun 27 '06 #6

P: n/a
Guy
Ian Davies a crit :
Hi

Can anyone tell me why the following code will NOT work
The error message should be displayed when there is something in both fields

if ((isset($_POST['Link']) && $_POST['Link'] !=='') &&
(isset($_POST['uploadedfile']) && $_POST['uploadedfile'] !=='')) {
$error_msg.="<br>You can't select to upload a link and a file at the same
time.";

curiously the following works

if(empty($_POST['Link']) || $_POST['Link'] ='' && Hi
= is not operator; try ==
empty($_FILES['uploadedfile']) || $_FILES['uploadedfile'] ='') {
idem
G
$error_msg.="<br>You didn't select whether to upload a link or a file.";
}

to display a message when there is nothing in both fields

help gratefuly requested
Ian

Jun 27 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.