...

View Full Version : Whats Wrong? Error...



Budde
07-23-2008, 02:29 PM
Here's the error I am getting:


Parse error: syntax error, unexpected $end on line 28Here is the PHP Code:

As you can see, it is suppose to show an image that will allow people to popup a chat to listen to a live podcast/show, at given times of given days.


<?php
//Get the current hour (1-24) / Date
$time = date('H');
$day = date('D');

//Show Name is Live (16-18 on Mons-Weds & Fridays)
if($time = 16 and $time < 18 && $day = Monday and $day < Wednesday and $day = Friday ) {
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
}
//Show Name is Live (19-20 on Wednesdays)
if($time = 19 and $time < 20 && $day = Wednesday){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
//Show Name is Live (16 - 18 on Thursdays)
if($time = 16 and $time < 18 && $day = Thursday){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
//Show Name is Live (20-22 on Fridays)
if($time = 20 and $time < 22 && $day = Friday){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
//Otherwise, We're Offair
}else{
//Offair Code
echo 'We are Currently offair. PopUp Link is here - Offair Chat... ';
}
?>

_Aerospace_Eng_
07-23-2008, 02:40 PM
Try this

<?php
//Get the current hour (1-24) / Date
$time = date('H');
$day = date('D');
$daynum = intval(date('N')); // need this to return an int

//Show Name is Live (16-18 on Mons-Weds & Fridays)
if($time == 16 && $time < 18 && (($day == 'Mon' and $daynum < 3) || $day == 'Fri') ) {
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
}
//Show Name is Live (19-20 on Wednesdays)
if($time == 19 && $time < 20 && $day == 'Wed'){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
}
//Show Name is Live (16 - 18 on Thursdays)
if($time == 16 && $time < 18 && $day == 'Thu'){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
}
//Show Name is Live (20-22 on Fridays)
if($time == 20 && $time < 22 && $day == 'Fri'){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
//Otherwise, We're Offair
}else{
//Offair Code
echo 'We are Currently offair. PopUp Link is here - Offair Chat... ';
}
?>
Your first if statement is lacking some logic. $day returns a string and you are trying use a < operator but because they aren't numbers it will fail. You also need to be using == to compare numbers and string. I think you need to use && as well. You may be able to use AND not sure.

$day will also never return any of the days you are comparing so it will always be offline. You need to compare to the first 3 letters. Your first if statement will never be true as it can't be Monday AND Friday at the same time.

Budde
07-23-2008, 02:42 PM
One question - How come when I put a link such as


<a href="#webClient" onclick="window.open('link to chat', 'Web Client','width=800,height=600,menubar=0,toolbar=0,status=0,scrollbars=0,resizable=1')"><img src="link to image"></a>it errors out?

Error:


Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' on line 9PHP Code:


<?php
//Get the current hour (1-24) / Date
$time = date('H');
$day = date('D');
$daynum = intval(date('N')); // need this to return an int

//Show Name is Live (16-18 on Mons-Weds & Fridays)
if($time == 16 && $time < 18 && (($day == 'Mon' and $daynum < 3) || $day == 'Fri') ) {
//Live Code
echo '<a href="#webClient" onclick="window.open('link to chat', 'Web Client','width=800,height=600,menubar=0,toolbar=0,status=0,scrollbars=0,resizable=1')"><img src="link to image"></a>';
}
//Show Name is Live (19-20 on Wednesdays)
if($time == 19 && $time < 20 && $day == 'Wed'){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
}
//Show Name is Live (16 - 18 on Thursdays)
if($time == 16 && $time < 18 && $day == 'Thu'){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
}
//Show Name is Live (20-22 on Fridays)
if($time == 20 && $time < 22 && $day == 'Fri'){
//Live Code
echo 'Live Now - Image/Popup Link goes here for Chat';
//Otherwise, We're Offair
}else{
//Offair Code
echo 'We are Currently offair. PopUp Link is here - Offair Chat... ';
}
?> Thanks. It worked.. btw, my first written full PHP script.


Thanks for the help!

Budde

_Aerospace_Eng_
07-23-2008, 02:45 PM
I suggest you reread my post again. Its been edited. There are some flaws in your code.

Blaher
07-23-2008, 02:48 PM
First off, you might want to learn if syntax, '=' makes that variable equal that value, '==' compares the two values.

Also, as far as I know, 'and' is not logical operator. You might want to use '&&' instead.

Here's a list of operators you'll probably always use:
http://www.w3schools.com/PHP/php_operators.asp

EDIT: Opps, I waited a little too long to hit post, aero already got it.

_Aerospace_Eng_
07-23-2008, 02:52 PM
You can use and, just looked it up

http://us.php.net/manual/en/language.operators.logical.php

As to your next question as to why it errors out you need to escape your quotes. Look at the 4th example for echo on php.net

Budde
07-23-2008, 02:52 PM
I suggest you reread my post again. Its been edited. There are some flaws in your code.

Thanks, again! I just updated my post as well... Not sure why it error out on that. See... (http://codingforums.com/showpost.php?p=715446&postcount=3)

Oops! He got it before I got to post this

Blaher
07-23-2008, 02:52 PM
You need to use \' or else it will actually end the string.

EDIT: You're too fast aero

Budde
07-23-2008, 02:58 PM
Thanks for your Posts, Aero and Blaher!

Oh Man! Aero is super fast at typing then! ;)

masterofollies
07-23-2008, 03:37 PM
unexpected $end means your missing a closing bracket }

Budde
07-24-2008, 02:12 PM
How come it is always showing:


We are Currently offair. PopUp Link is here - Offair Chat... It never shows what the live section is set to say when it is that time and day.


Hope you can help - Thanks!

Budde

_Aerospace_Eng_
07-24-2008, 03:27 PM
Try changing this

$time = date('H');
to

$time = intval(date('H'));

Budde
07-24-2008, 04:08 PM
Try changing this

$time = date('H');to

$time = intval(date('H'));

Didn't work.. Still getting:


We are Currently offair. PopUp Link is here - Offair Chat...

chaosprime
07-24-2008, 04:50 PM
You don't need to use intval. If you compare a numeric string, it'll be handled fine.

Your problem appears to be extensive logic errors. For instance, why are you doing this?


if($time == 20 && $time < 22 && $day == 'Fri'){

If $time is 20 then you already know that it's less than 22. Do you possibly mean this?


if($time >= 20 && $time < 22 && $day == 'Fri'){

Budde
07-24-2008, 05:20 PM
You don't need to use intval. If you compare a numeric string, it'll be handled fine.

Your problem appears to be extensive logic errors. For instance, why are you doing this?


if($time == 20 && $time < 22 && $day == 'Fri'){ If $time is 20 then you already know that it's less than 22. Do you possibly mean this?


if($time >= 20 && $time < 22 && $day == 'Fri'){ Yes, That possibly is the code I should be using - Tested.. And results below.

Here is the Code I am using now:


<?php
//Get the current hour (1-24) / Date
$time = date('H');
$day = date('D');
$daynum = intval(date('N')); // need this to return an int

//Show Name is Live (16-18 on Mons-Weds & Fridays)
if($time >= 16 && $time < 18 && (($day == 'Mon' and $daynum < 3) || $day == 'Fri') ) {
//Live Code
echo '<br/><h2>Live</h2><br/><a href="#webClient" onclick="window.open(\'/path/to/webchat\', \'Web Client\',\'width=800,height=600,menubar=0,toolbar=0,status=0,scrollbars=0,resizable=1\')"><img src="/path/to/image"></a></br>... You can also use our Community Chat (Coming Soon!).';
}
//Show Name is Live (19-20 on Wednesdays)
if($time >= 19 && $time < 20 && $day == 'Wed'){
//Live Code
echo '<br/><h2>Live</h2><br/><a href="#webClient" onclick="window.open(\'/path/to/webchat\', \'Web Client\',\'width=800,height=600,menubar=0,toolbar=0,status=0,scrollbars=0,resizable=1\')"><img src="/path/to/image"></a></br>... You can also use our Community Chat (Coming Soon!).';
}
//Show Name is Live (16 - 18 on Thursdays)
if($time >= 16 && $time < 18 && $day == 'Thu'){
//Live Code
echo '<br/><h2>Live</h2><br/><a href="#webClient" onclick="window.open(\'/path/to/webchat\', \'Web Client\',\'width=800,height=600,menubar=0,toolbar=0,status=0,scrollbars=0,resizable=1\')"><img src="/path/to/image"></a></br>... You can also use our Community Chat (Coming Soon!).';
}
//Show Name is Live (20-22 on Fridays)
if($time >= 20 && $time < 22 && $day == 'Fri'){
//Live Code
echo '<br/><h2>Live</h2><br/><a href="#webClient" onclick="window.open(\'/path/to/webchat\', \'Web Client\',\'width=800,height=600,menubar=0,toolbar=0,status=0,scrollbars=0,resizable=1\')"><img src="/path/to/image"></a></br>... You can also use our Community Chat (Coming Soon!).';
//Otherwise, We're Offair
}else{
//Offair Code
echo 'We are Currently offair. Chat with the Community using the Community Chat. <center><strong>(Coming Soon!)</strong></center> ';
}
?> Still getting:

We are Currently offair. Chat with the Community using the Community Chat. (Coming Soon!)

chaosprime
07-24-2008, 05:25 PM
From your comments, you probably also mean <= rather than < on the various conditions.

($day == 'Mon' and $daynum < 3) is also nonsensical.

I really just think you need to thoroughly go over your own logic and think about whether what you're telling the computer to do is what you actually mean.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum