I have a php code which generates random number if visitor comes to my wordpress blog from yahoo.com and if the random number is less than 10 then display a welcome message else display normal blog. Or if visitor come to my blog without any referrer or from other sources then dipslay normal blog. but i have parse, syuntax error ehich i couldn't solve, kindly do some favourable....

**code**


<?php


$match = false;
$sites = array("search.yahoo.com");


if(strlen($_SERVER))
{
$referer = parse_url($_SERVER);


$referer = str_replace("www.", "", strtolower($referer));


$match = in_array($referer, $sites);
}



if($match)
{


?>



$rand_num = rand(1, 100);
if($rand_num < 10)


echo "you comes from yahoo, click the link to proceed.";


else


// if random no. is > 10 then display normal blog //
//  single.php code below //


<?php get_header(); ?>
<div id="content" class="widecolumn">


<?php if (have_posts()) : while (have_posts()) : the_post(); ?>


<div class="navigation">
<div class="alignleft"><?php previous_post_link('&laquo; %link') ?></div>
<div class="alignright"><?php next_post_link('%link &raquo;') ?></div>
</div>


<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>


<div class="entry">
<?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>


<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
<?php the_tags( '<p>Tags: ', ', ', '</p>'); ?>


<p class="postmetadata alt">
<small>
This entry was posted
<?php /* This is commented, because it requires a little adjusting sometimes.
You'll need to download this plugin, and follow the instructions:http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ */
/* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?>
on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>
and is filed under <?php the_category(', ') ?>.
You can follow any responses to this entry through the <?php post_comments_feed_link('RSS 2.0'); ?> feed.


<?php if (('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
// Both Comments and Pings are open ?>
You can <a href="#respond">leave a response</a>, or <a href="<?php trackback_url(); ?>" rel="trackback">trackback</a> from your own site.


<?php } elseif (!('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
// Only Pings are Open ?>
Responses are currently closed, but you can <a href="<?php trackback_url(); ?> " rel="trackback">trackback</a> from your own site.


<?php } elseif (('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
// Comments are open, Pings are not ?>
You can skip to the end and leave a response. Pinging is currently not allowed.


<?php } elseif (!('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
// Neither Comments, nor Pings are open ?>
Both comments and pings are currently closed.


<?php } edit_post_link('Edit this entry','','.'); ?>


</small>
</p>


</div>
</div>


<?php comments_template(); ?>


<?php endwhile; else: ?>


<p>Sorry, no posts matched your criteria.</p>


<?php endif; ?>


</div>


<?php get_footer(); ?>



?>


<?php


}
else
{


?>


// Display normal blog if visitor comes without referrer //
//  single.php code below //


<?php get_header(); ?>
<div id="content" class="widecolumn">


<?php if (have_posts()) : while (have_posts()) : the_post(); ?>


<div class="navigation">
<div class="alignleft"><?php previous_post_link('&laquo; %link') ?></div>
<div class="alignright"><?php next_post_link('%link &raquo;') ?></div>
</div>


<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>


<div class="entry">
<?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>


<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
<?php the_tags( '<p>Tags: ', ', ', '</p>'); ?>


<p class="postmetadata alt">
<small>
This entry was posted
<?php /* This is commented, because it requires a little adjusting sometimes.
You'll need to download this plugin, and follow the instructions:http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ */
/* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?>
on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>
and is filed under <?php the_category(', ') ?>.
You can follow any responses to this entry through the <?php post_comments_feed_link('RSS 2.0'); ?> feed.


<?php if (('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
// Both Comments and Pings are open ?>
You can <a href="#respond">leave a response</a>, or <a href="<?php trackback_url(); ?>" rel="trackback">trackback</a> from your own site.


<?php } elseif (!('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
// Only Pings are Open ?>
Responses are currently closed, but you can <a href="<?php trackback_url(); ?> " rel="trackback">trackback</a> from your own site.


<?php } elseif (('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
// Comments are open, Pings are not ?>
You can skip to the end and leave a response. Pinging is currently not allowed.


<?php } elseif (!('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
// Neither Comments, nor Pings are open ?>
Both comments and pings are currently closed.


<?php } edit_post_link('Edit this entry','','.'); ?>


</small>
</p>


</div>
</div>


<?php comments_template(); ?>


<?php endwhile; else: ?>


<p>Sorry, no posts matched your criteria.</p>


<?php endif; ?>


</div>


<?php get_footer(); ?>
<?php


}

Edited 3 Years Ago by happygeek: fixed formatting

You have open braces after the first if statement but you don't close them and then you don't have any braces surrounding the else

if($match)
{

?>


$rand_num = rand(1, 100);
if($rand_num < 10)  <----------

echo "you comes from yahoo, click the link to proceed.";

else

Also you have endwhile and endif statements. I didn't think they were in php but in vb.net....

I was originally going to look at your code but when I saw the lack of code tags I decided against it. And wouldn't it make sense to tell us exactly what errors you are getting? I thought so anyway...

This article has been dead for over six months. Start a new discussion instead.