xadz Posted April 18, 2010 Share Posted April 18, 2010 Could somebody PLEASE alter this script to not use allow_url_fopen (which is blocked on my host, 3ix) to use cURL (which they reccomend). I have absaloutley NO idea whatsoever, any help would be enormously appreciated. The code is below. <?php // Mochiads RSS Game Grabber // Developed by Scott Lewis at www.worksafegames.com // To work with phpArcadeScript v3.0 set_time_limit(8000); $category['Action']="1"; $category['Adventure']="33"; $category['Board Game']="34"; $category['Casino']="28"; $category['Dress-Up']="40"; $category['Driving']="41"; $category['Fighting']="42"; $category['Other']="7"; $category['Puzzles']="4"; $category['Shooting']="38"; $category['Sports']="2"; $defaultcategory="no"; include_once("../includes/config.php"); if(empty($mochifeedurl)){ echo "The Mochiads RSS Feed is not listed in your config.php file.<br/><br/>Please login to your <a href=\"https://www.mochiads.com/r/06b1921204bda96b\">Mochiads</a> account and grab your customerid number. Then go to you admin panel to input it:<br/><br/> If you haven't signed up for a <a href=\"https://www.mochiads.com/r/06b1921204bda96b\">Mochiads</a> account, head over to <a href=\"https://www.mochiads.com/r/06b1921204bda96b\">Mochiads</a> and signup for a publisher account.<br/>"; return; } $feedurl=$mochifeedurl; // Now that we selected a feed, its time to grab it! $feed = $feedurl; $data = implode("", file($feed)); preg_match_all ("/<entry>([^`]*?)<\/entry>/", $data, $matches); foreach ($matches[0] as $match) { // First Get The Game Title preg_match ("/<title>([^`]*?)<\/title>/", $match, $temp); $title = ucwords(strtolower(stripslashes($temp[1]))); preg_match ("/<media:description>([^`]*?)<\/media:description>/", $match, $temp); $description = stripslashes($temp[1]); preg_match ("/<media:keywords>([^`]*?)<\/media:keywords>/", $match, $temp); $tags = stripslashes($temp[1]); preg_match ("/<media:thumbnail([^`]*?)url=\"([^`]*?)\"/", $match, $temp); $image = stripslashes($temp[2]); preg_match ("/<media:player([^`]*?)url=\"([^`]*?)\"/", $match, $temp); $filename = stripslashes($temp[2]); preg_match ("/<category term=\"([^`]*?)\"/", $match, $temp); $categoryname = stripslashes($temp[1]); if($category[''.$categoryname.'']=="no") $cat=""; elseif(!empty($category[''.$categoryname.''])) $cat=$category[''.$categoryname.'']; else $cat=$defaultcategory; preg_match ("/<id>urn:uuid:([^`]*?)<\/id>/", $match, $temp); $mochi = stripslashes($temp[1]); echo "$title<br/>$image<br/>$filename<br/>$description<br/>$tags<br/>$categoryname<br/>$cat<br/>$mochi<br/><br/>"; if(!empty($title) && !empty($image) && !empty($filename) && !empty($mochi) && !empty($cat)){ // Check to see if url is already in system. $query2 = "SELECT gameid from games WHERE mochi = '$mochi'"; $result2 = mysql_query($query2); if (mysql_num_rows($result2)>0) { }else{ $alphanum = "APBHCPDEFGHIJKLILNKMDRNOPPERQRSTUVWXYZ123456789"; // generate a random 3 character code to play in front of a duplicate file name that // has been transferred. $rand = substr(str_shuffle($alphanum), 0, 3); $filedirectory = "../games/files/"; if ($auto_chmod ==1) chmod("$filedirectory",0777); $name = $filename; while(strstr($name,"/")){ $name = substr($name,strpos($name,"/")+1,999); } $newname = $filedirectory.$name; // End -- Get the file name. (Dont Edit) // Make sure that filename isn't already in the directory ... if it is, rename it if (file_exists($newname)) { $name = $rand.'_'.$name; $newname = $filedirectory.$name; } // End the renaming if ($transfer_type == 1){ copy($filename, $newname); }else{ $ch = curl_init ($filename); $fp = fopen ($newname, "w"); curl_setopt ($ch, CURLOPT_FILE, $fp); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_exec ($ch); curl_close ($ch); fclose ($fp); } if ($auto_chmod ==1) chmod("$filedirectory",0755); $alphanum = "APBHCPDEFGHIJKLILNKMDRNOPPERQRSTUVWXYZ123456789"; // generate a random 3 character code to play in front of a duplicate file name that // has been transferred. $rand = substr(str_shuffle($alphanum), 0, 3); $imagedirectory = "../games/images/"; if ($auto_chmod ==1) chmod("$imagedirectory",0777); $name2 = $image; while(strstr($name2,"/")){ $name2 = substr($name2,strpos($name2,"/")+1,999); } $newname2 = $imagedirectory.$name2; // End -- Get the file name. (Dont Edit) // Make sure that filename isn't already in the directory ... if it is, rename it if (file_exists($newname2)) { $name2 = $rand.'_'.$name2; $newname2 = $imagedirectory.$name2; } // End the renaming if ($transfer_type == 1){ copy($image, $newname2); }else{ $ch = curl_init ($image); $fp = fopen ($newname2, "w"); curl_setopt ($ch, CURLOPT_FILE, $fp); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_exec ($ch); curl_close ($ch); fclose ($fp); } if ($auto_chmod ==1) chmod("$imagedirectory",0755); $now = time(); $title=addslashes($title); $description=addslashes($description); $update_item = mysql_query("INSERT INTO games set gametitle = '$title', gamedesc = '$description', gamefile = '$name', gameicon = '$name2', gamekeywords='$tags', gamestatus = '1', category = '$cat', mochi='$mochi', dateadded = '$now'"); echo "Just Added <b>$title</b><br/>"; } } } ?> I'll probably make a small monetary donation via paypal to anybody who does it by tonight. Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/ Share on other sites More sharing options...
xadz Posted April 18, 2010 Author Share Posted April 18, 2010 The money is still up for grabs! Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044236 Share on other sites More sharing options...
darkfreaks Posted April 18, 2010 Share Posted April 18, 2010 is there other files attached to it seems like its missing code Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044238 Share on other sites More sharing options...
xadz Posted April 18, 2010 Author Share Posted April 18, 2010 Nope, that's the entire file. Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044242 Share on other sites More sharing options...
darkfreaks Posted April 18, 2010 Share Posted April 18, 2010 what about the config file? i dont see the allow url function anywhere in this file. Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044243 Share on other sites More sharing options...
xadz Posted April 18, 2010 Author Share Posted April 18, 2010 Ah, sorry. <?php /* script: config.php */ include("dbinfo.php"); $securitykey="*****IM NOT TELLING THIS :|*****"; $ttocs = ((10 + 12 + 79 - 1)/50 + 3).".0"; // Default Avatar $default_avatar = "noavatar.jpg"; $defaulticon = $base_url."images/nothumb.gif"; if(file_exists("./cache/config.php")) include("./cache/config.php"); else{ // Pulls all the Site Config data from the database $query = "select * from siteconfig"; $result = mysql_query($query); if (!$result) return; if(mysql_num_rows($result)) { while($row = mysql_fetch_array($result)) { $site_title = $row['sitetitle']; $site_desc = $row['sitedescription']; $site_keywords = $row['sitekeywords']; $base_url = $row['baseurl']; $contact_email = $row['contactemail']; $max_results = $row['maxresults']; $max_frontpage_results = $row['maxfrontpage']; $max_newest_games = $row['maxnewestgames']; $max_most_played_games = $row['maxmostplayedgames']; $linktrading = $row['linktrading']; $notify_of_trade = $row['tradenotification']; $confirmation_of_trades = $row['tradeconfirmation']; $tell_a_friend = $row['tellafriend']; $email_confirmation = $row['emailconfirmation']; $game_points = $row['pointsforgames']; $comment_points = $row['pointsforcomments']; $member_login = $row['memberlogin']; $allow_comments = $row['comments']; $max_comments = $row['maxcomments']; $who_can_comment = $row['whocancomment']; $max_top_players = $row['maxtopplayers']; $sort_top_players = $row['sorttopplayers']; $ban_text = $row['bantext']; $rewrite = $row['rewrite']; $max_messages = $row['maxmessages']; $adminuserid = $row['adminuserid']; $imageverification = $row['imageverification']; $maxgameheight = $row['maxfileheight']; $maxgamewidth = $row['maxfilewidth']; $guestcredits = $row['guestcredits']; $limitplays = $row['limitplays']; $notes = $row['notes']; $privatemessaging = $row['privatemessaging']; $maxtoplinks = $row['maxtoplinks']; $sorttoplinks = $row['sorttoplinks']; $sortlinks = $row['sortlinks']; $realurl = $row['realurl']; $trackclicks = $row['trackclicks']; $sitestatus = $row['sitestatus']; $offlinemessage = $row['offlinemessage']; $delay = $row['inbetween']; $delaytime = $row['inbetweendelay']; $blogcode = $row['blogcode']; //Start GAME TIME MOD by BigDogAdmin $gamelimit = $row['gamelimit']; //End GAME TIME MOD by BigDogAdmin $hotlink = $row['hotlink']; $mostpopularlist = $row['mostpopularlist']; $newestlist = $row['newestlist']; $topmemberslist = $row['topmemberslist']; $referrals = $row['referrals']; $referralpoints = $row['referralpoints']; $removereported = $row['removereported']; $submissions = $row['submissions']; $submit_member = $row['submitmember']; $template_directory = $row['templatedirectory']; $mochi_id = $row['mochicustid']; $mochinumbergames = $row['mochinumbergames']; $nightly=$row['nightly']; $friends_feature=$row['friends']; $friendrequestemail=$row['friendrequestemail']; $comment_spam_filter=$row['spamfilter']; $sedir=$row['sedir']; $full_game_url = $row['fullgamedir']; $preview_game=$row['previewgame']; $preview_play_game_dir=$row['previewgamedir']; $full_height=$row['fullheight']; $full_width=$row['fullwidth']; $log_user=$row['loguser']; $auto_chmod=$row['autochmod']; $transfer_type=$row['transfertype']; $gameplaylog=$row['gameplaylog']; $gameplaylogdays=$row['gameplaylogdays']; } } } $mochi_id=str_replace(" ","",$mochi_id); $mochifeedurl = "http://www.mochiads.com/feeds/games/$mochi_id/all/all?limit=$mochinumbergames"; if(!empty($base_url)) $_SESSION['base_url']=$base_url; if(!empty($temlpate_directory)) $_SESSION['template_directory']=$template_directory; ?> Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044252 Share on other sites More sharing options...
darkfreaks Posted April 18, 2010 Share Posted April 18, 2010 you mean fopen() ??? Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044253 Share on other sites More sharing options...
xadz Posted April 18, 2010 Author Share Posted April 18, 2010 I'm not entirley sure, my host said the issue would be the fact the allow_url_fopen was turned off, and I could rectify it by editing it to use cURL, which is why I'm here. Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044254 Share on other sites More sharing options...
salathe Posted April 18, 2010 Share Posted April 18, 2010 Change the following line from the code in your first post: $data = implode("", file($feed)); To use cURL instead: $curl = curl_init($feed); $data = curl_exec($curl); Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044255 Share on other sites More sharing options...
xadz Posted April 18, 2010 Author Share Posted April 18, 2010 That displays the feed now, but it doesn't seem to be inserting the games. Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044272 Share on other sites More sharing options...
xadz Posted April 18, 2010 Author Share Posted April 18, 2010 This still remains unsolved. Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044286 Share on other sites More sharing options...
darkfreaks Posted April 18, 2010 Share Posted April 18, 2010 $curl = curl_init($feed); //get curl $data = curl_exec($curl);//execute curl curl_setopt($curl, CURLOPT_POSTFIELDS, implode('', $data));//implode curl feed curl_close($curl);//close curl Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044328 Share on other sites More sharing options...
darkfreaks Posted April 18, 2010 Share Posted April 18, 2010 ugh i got the code abit backwards $feed =implode('',$feedurl);//implode feed $curl = curl_init($feed); //get curl $data = curl_exec($curl);//execute curl curl_close($curl);//close curl Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044332 Share on other sites More sharing options...
xadz Posted April 19, 2010 Author Share Posted April 19, 2010 Right, so this is my code now. <?php // Mochiads RSS Game Grabber // grabgames.php set_time_limit(99000); ini_set("memory_limit","-1"); $category['Action']="1"; $category['Adventure']="2"; $category['Board Game']="3"; $category['Casino']="4"; $category['Customize'] = "5"; $category['Dress-Up']="6"; $category['Driving']="7"; $category['Fighting']="8"; $category['Other']="9"; $category['Puzzles']="10"; $category['Shooting']="11"; $category['Sports']="12"; $defaultcategory="no"; include_once("../includes/config.php"); if(empty($mochifeedurl)){ echo "The Mochiads RSS Feed is not listed in your config.php file.<br/><br/>Please login to your <a href=\"https://www.mochiads.com/r/06b1921204bda96b\">Mochiads</a> account and grab your customerid number. Then go to you admin panel to input it:<br/><br/> If you haven't signed up for a <a href=\"https://www.mochiads.com/r/06b1921204bda96b\">Mochiads</a> account, head over to <a href=\"https://www.mochiads.com/r/06b1921204bda96b\">Mochiads</a> and signup for a publisher account.<br/>"; return; } $feedurl=$mochifeedurl; // Now that we selected a feed, its time to grab it! $feed = $feedurl; $feed =implode('',$feedurl);//implode feed $curl = curl_init($feed); //get curl $data = curl_exec($curl);//execute curl curl_close($curl);//close curl preg_match_all ("/<entry>([^`]*?)<\/entry>/", $data, $matches); foreach ($matches[0] as $match) { // First Get The Game Title preg_match ("/<title>([^`]*?)<\/title>/", $match, $temp); $title = ucwords(strtolower(stripslashes($temp[1]))); preg_match ("/<media:description>([^`]*?)<\/media:description>/", $match, $temp); $description = stripslashes($temp[1]); preg_match ("/<media:keywords>([^`]*?)<\/media:keywords>/", $match, $temp); $tags = stripslashes($temp[1]); preg_match ("/<media:thumbnail([^`]*?)url=\"([^`]*?)\"/", $match, $temp); $image = stripslashes($temp[2]); preg_match ("/<media:player([^`]*?)url=\"([^`]*?)\"/", $match, $temp); $filename = stripslashes($temp[2]); preg_match ("/<category term=\"([^`]*?)\"/", $match, $temp); $categoryname = stripslashes($temp[1]); if($category[''.$categoryname.'']=="no") $cat=""; elseif(!empty($category[''.$categoryname.''])) $cat=$category[''.$categoryname.'']; else $cat=$defaultcategory; preg_match ("/<id>urn:uuid:([^`]*?)<\/id>/", $match, $temp); $mochi = stripslashes($temp[1]); echo "$title<br/>$image<br/>$filename<br/>$description<br/>$tags<br/>$categoryname<br/>$cat<br/>$mochi<br/><br/>"; if(!empty($title) && !empty($image) && !empty($filename) && !empty($mochi) && !empty($cat)){ // Check to see if url is already in system. $query2 = "SELECT gameid from games WHERE mochi = '$mochi'"; $result2 = mysql_query($query2); if (mysql_num_rows($result2)>0) { }else{ $alphanum = "APBHCPDEFGHIJKLILNKMDRNOPPERQRSTUVWXYZ123456789"; // generate a random 3 character code to play in front of a duplicate file name that // has been transferred. $rand = substr(str_shuffle($alphanum), 0, 3); $filedirectory = "../games/files/"; if ($auto_chmod ==1) chmod("$filedirectory",0777); $name = $filename; while(strstr($name,"/")){ $name = substr($name,strpos($name,"/")+1,999); } $newname = $filedirectory.$name; // End -- Get the file name. (Dont Edit) // Make sure that filename isn't already in the directory ... if it is, rename it if (file_exists($newname)) { $name = $rand.'_'.$name; $newname = $filedirectory.$name; } // End the renaming if ($transfer_type == 1){ copy($filename, $newname); }else{ $ch = curl_init ($filename); $fp = fopen ($newname, "w"); curl_setopt ($ch, CURLOPT_FILE, $fp); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_exec ($ch); curl_close ($ch); fclose ($fp); } if ($auto_chmod ==1) chmod("$filedirectory",0755); $alphanum = "APBHCPDEFGHIJKLILNKMDRNOPPERQRSTUVWXYZ123456789"; // generate a random 3 character code to play in front of a duplicate file name that // has been transferred. $rand = substr(str_shuffle($alphanum), 0, 3); $imagedirectory = "../games/images/"; if ($auto_chmod ==1) chmod("$imagedirectory",0777); $name2 = $image; while(strstr($name2,"/")){ $name2 = substr($name2,strpos($name2,"/")+1,999); } $newname2 = $imagedirectory.$name2; // End -- Get the file name. (Dont Edit) // Make sure that filename isn't already in the directory ... if it is, rename it if (file_exists($newname2)) { $name2 = $rand.'_'.$name2; $newname2 = $imagedirectory.$name2; } // End the renaming if ($transfer_type == 1){ copy($image, $newname2); }else{ $ch = curl_init ($image); $fp = fopen ($newname2, "w"); curl_setopt ($ch, CURLOPT_FILE, $fp); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_exec ($ch); curl_close ($ch); fclose ($fp); } if ($auto_chmod ==1) chmod("$imagedirectory",0755); $now = time(); $title=addslashes($title); $description=addslashes($description); $update_item = mysql_query("INSERT INTO games set gametitle = '$title', gamedesc = '$description', gamefile = '$name', gameicon = '$name2', gamekeywords='$tags', gamestatus = '1', category = '$cat', mochi='$mochi', dateadded = '$now'"); echo "Just Added <b>$title</b><br/>"; } } } ?> And this is the error message I get, Warning: implode() [function.implode]: Invalid arguments passed in /home/howlingd/public_html/mochi/grabgames.php on line 40 Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044476 Share on other sites More sharing options...
darkfreaks Posted April 19, 2010 Share Posted April 19, 2010 that is because you have it setup the wrong way $feed = $feedurl; $feed_two =implode("",$feed);//implode feed $curl = curl_init($feed_two); //get curl $data = curl_exec($curl);//execute curl curl_close($curl);//close curl Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044722 Share on other sites More sharing options...
darkfreaks Posted April 19, 2010 Share Posted April 19, 2010 you may not need the implode also im not sure why it isnt updating your MYSQL you could try putting or die(mysql_error()); in so that it picks up any MYSQL related errors. Link to comment https://forums.phpfreaks.com/topic/198936-allow_url_fopen-to-curl/#findComment-1044760 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.