Hi

I have a PHP error that only occurs when I have a new router attached. I will post the complete code here but it works fine on one router but not another. I have put the problem on a forum for Hardware people but have had no replies. To see the complete problem go HERE.

The code that follows will not work as the developers key and other information has been taken out, it is just provided as there may be a way for you to advise a change that may work ??

<?php

set_include_path('/PATH TO/ZendGdata-1.10.1/library');

require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path

Zend_Loader::loadClass('Zend_Gdata_YouTube');

Zend_Loader::loadClass('Zend_Gdata_ClientLogin');



echo "Authenticating client...\n";

$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';

$httpClient = 

  Zend_Gdata_ClientLogin::getHttpClient(

              $username = 'email@hotmail.com',

              $password = 'password',

              $service = 'youtube',

              $client = null,

              $source = 'MySource', // a short string identifying your application

              $loginToken = null,

              $loginCaptcha = null,

              $authenticationURL);



$developerKey = 'MY KEY GOES HERE';

$applicationId = 'Video uploader v1';

$clientId = 'My video upload client - v1';



echo "Uploading video...\n";

$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);



// create a new VideoEntry object

$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

// create a new Zend_Gdata_App_MediaFileSource object

$filesource = $yt->newMediaFileSource('/PATH TO/webcam2-video-hi.avi');

$filesource->setContentType('video/avi');

// set slug header

$filesource->setSlug('webcam2-video-hi.avi');



// add the filesource to the video entry

$myVideoEntry->setMediaSource($filesource);



$myVideoEntry->setVideoTitle('Albury N.S.W. Australia for ' . date('D, jS F Y', mktime(0, 0, 0, date("m"), date("d")-1)));


$myVideoEntry->setVideoDescription('This is a picture of my back yard in Albury NSW Australia. If you look back at older videos you will see them from the coast of NSW and also from Canada.');

// The category must be a valid YouTube category!

$myVideoEntry->setVideoCategory('Travel');



// Set keywords. Please note that this must be a comma-separated string

// and that individual keywords cannot contain whitespace

$myVideoEntry->SetVideoTags('Albury, NSW, australia, webcam, timelapse, Birds');



// set some developer tags -- this is optional

// (see Searching by Developer Tags for more details)

$myVideoEntry->setVideoDeveloperTags(array('mydevtag', 'anotherdevtag'));



// set the video's location -- this is also optional

$yt->registerPackage('Zend_Gdata_Geo');

$yt->registerPackage('Zend_Gdata_Geo_Extension');

$where = $yt->newGeoRssWhere();

$position = $yt->newGmlPos('-36.07000000000000 146.950000000000');
$where->point = $yt->newGmlPoint($position);

$myVideoEntry->setWhere($where);


// upload URI for the currently authenticated user
$uploadUrl = 'http://uploads.gdata.youtube.com/feeds/api/users/default/uploads';


// try to upload the video, catching a Zend_Gdata_App_HttpException, 

// if available, or just a regular Zend_Gdata_App_Exception otherwise
try {

  $newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');

} catch (Zend_Gdata_App_HttpException $httpException) {

  echo $httpException->getRawResponseBody();

} catch (Zend_Gdata_App_Exception $e) {

    echo $e->getMessage();

}


echo "Create embedded object script for video...\n";

$filename="/PATH/youtube-object.php";

if (!$handle = fopen($filename, 'w')) {

   echo "Cannot open file ($filename)";

   exit;

}
// Write $somecontent to our opened file.
$somecontent='<center><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/' . $newEntry->getVideoId() . '&hl=en_GB&fs=1&color1=0x2b405b&color2=0x6b8ab6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/' . $newEntry->getVideoId() . '&hl=en_GB&fs=1&color1=0x2b405b&color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></center>';

if (fwrite($handle, $somecontent) === FALSE) {

   echo "Cannot write to file ($filename)";

   exit;

}



fclose($handle);
echo "Done!\n";


?>

It is a very strange problem that it works on one router and not another.

Cheers

Recommended Answers

All 3 Replies

If it works on one router, and not the other, then maybe your code is using a callback method for verification (the server tries to call one of your pages for verification). If the first router has port forwarding enabled (it will forward the request), and the second doesn't, it would explain your problem.

Hi this thread can be closed as I have new code that fixes the problem

You must "mark as solved" your own threads. The link is near the reply box. It would be helpful to others if you specify what helped you.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.