Jump to content

Archived

This topic is now archived and is closed to further replies.

mandukar

facebook intergration with smf 2.0 series

Recommended Posts

and it does excute in the textarea of the form, I got

 

<textarea name="group" cols="60" rows="15">
<?
echo $type." - ". date("D jS M", strtotime($date))." - ".$row['subject'];
echo "
";
echo str_replace("<br />","\n",fbtext($row['body']));
echo "
";
	while($row = mysql_fetch_array($sql))
  			{
  			echo $row['startDate']."<a href='http://secktorsrealm.com/smf/index.php?topic=".$row['ID_TOPIC']."'>" . $row['subject'] . "</a>";
			}
?>
</textarea>

Share this post


Link to post
Share on other sites

For the else block you can just throw a simple echo in there to make sure it's firing.

 

For the mail, something like this is fine:

if (! mail($to_grp, $subject_grp, $message_grp, $headers_grp)) {
echo 'mail failed';
}

 

Note: that isn't a good solution for production, but it is good enough for development.

Share this post


Link to post
Share on other sites

ahh okay i got the error fixed i think, but ya now i get mail failed when i hit submit

Share this post


Link to post
Share on other sites

Are you running this code on a local WAMP/LAMP stack, or from a webhost?

 

You need to either have a mail server configured or have an SMTP relay to send an email.

Share this post


Link to post
Share on other sites

Try sending a simple email, to make sure it is not some problem with headers or something.

<?php

echo mail('your@email.com', 'test subject', 'test message') ? 'success' : 'failure';

 

Save that to its own file and run it in the same environment as your other script (make sure you change the "to" email).

 

If it reports "failure", try contacting your host for support.

Share this post


Link to post
Share on other sites

well I get a success for that when I do a include mail.php with that script in it. then i change the to an email..

 

still no joy on posting it on the group page..

Share this post


Link to post
Share on other sites

correct to asume that your@mail is suppose to be my email i use to email the group?

Share this post


Link to post
Share on other sites

ahh yeah, i used my own email instead of the group mail and it worked, so it might be somthing to do with the headers..

Share this post


Link to post
Share on other sites

bumping up as i still need help,  I've fixed the sql errors but the form is still not sending to the groups..

 

here is the updated code

 

PHP

<?
function containsTLD($string) {
  preg_match(
    "/(AC($|\/)|\.AD($|\/)|\.AE($|\/)|\.AERO($|\/)|\.AF($|\/)|\.AG($|\/)|\.AI($|\/)|\.AL($|\/)|\.AM($|\/)|\.AN($|\/)|\.AO($|\/)|\.AQ($|\/)|\.AR($|\/)|\.ARPA($|\/)|\.AS($|\/)|\.ASIA($|\/)|\.AT($|\/)|\.AU($|\/)|\.AW($|\/)|\.AX($|\/)|\.AZ($|\/)|\.BA($|\/)|\.BB($|\/)|\.BD($|\/)|\.BE($|\/)|\.BF($|\/)|\.BG($|\/)|\.BH($|\/)|\.BI($|\/)|\.BIZ($|\/)|\.BJ($|\/)|\.BM($|\/)|\.BN($|\/)|\.BO($|\/)|\.BR($|\/)|\.BS($|\/)|\.BT($|\/)|\.BV($|\/)|\.BW($|\/)|\.BY($|\/)|\.BZ($|\/)|\.CA($|\/)|\.CAT($|\/)|\.CC($|\/)|\.CD($|\/)|\.CF($|\/)|\.CG($|\/)|\.CH($|\/)|\.CI($|\/)|\.CK($|\/)|\.CL($|\/)|\.CM($|\/)|\.CN($|\/)|\.CO($|\/)|\.COM($|\/)|\.COOP($|\/)|\.CR($|\/)|\.CU($|\/)|\.CV($|\/)|\.CX($|\/)|\.CY($|\/)|\.CZ($|\/)|\.DE($|\/)|\.DJ($|\/)|\.DK($|\/)|\.DM($|\/)|\.DO($|\/)|\.DZ($|\/)|\.EC($|\/)|\.EDU($|\/)|\.EE($|\/)|\.EG($|\/)|\.ER($|\/)|\.ES($|\/)|\.ET($|\/)|\.EU($|\/)|\.FI($|\/)|\.FJ($|\/)|\.FK($|\/)|\.FM($|\/)|\.FO($|\/)|\.FR($|\/)|\.GA($|\/)|\.GB($|\/)|\.GD($|\/)|\.GE($|\/)|\.GF($|\/)|\.GG($|\/)|\.GH($|\/)|\.GI($|\/)|\.GL($|\/)|\.GM($|\/)|\.GN($|\/)|\.GOV($|\/)|\.GP($|\/)|\.GQ($|\/)|\.GR($|\/)|\.GS($|\/)|\.GT($|\/)|\.GU($|\/)|\.GW($|\/)|\.GY($|\/)|\.HK($|\/)|\.HM($|\/)|\.HN($|\/)|\.HR($|\/)|\.HT($|\/)|\.HU($|\/)|\.ID($|\/)|\.IE($|\/)|\.IL($|\/)|\.IM($|\/)|\.IN($|\/)|\.INFO($|\/)|\.INT($|\/)|\.IO($|\/)|\.IQ($|\/)|\.IR($|\/)|\.IS($|\/)|\.IT($|\/)|\.JE($|\/)|\.JM($|\/)|\.JO($|\/)|\.JOBS($|\/)|\.JP($|\/)|\.KE($|\/)|\.KG($|\/)|\.KH($|\/)|\.KI($|\/)|\.KM($|\/)|\.KN($|\/)|\.KP($|\/)|\.KR($|\/)|\.KW($|\/)|\.KY($|\/)|\.KZ($|\/)|\.LA($|\/)|\.LB($|\/)|\.LC($|\/)|\.LI($|\/)|\.LK($|\/)|\.LR($|\/)|\.LS($|\/)|\.LT($|\/)|\.LU($|\/)|\.LV($|\/)|\.LY($|\/)|\.MA($|\/)|\.MC($|\/)|\.MD($|\/)|\.ME($|\/)|\.MG($|\/)|\.MH($|\/)|\.MIL($|\/)|\.MK($|\/)|\.ML($|\/)|\.MM($|\/)|\.MN($|\/)|\.MO($|\/)|\.MOBI($|\/)|\.MP($|\/)|\.MQ($|\/)|\.MR($|\/)|\.MS($|\/)|\.MT($|\/)|\.MU($|\/)|\.MUSEUM($|\/)|\.MV($|\/)|\.MW($|\/)|\.MX($|\/)|\.MY($|\/)|\.MZ($|\/)|\.NA($|\/)|\.NAME($|\/)|\.NC($|\/)|\.NE($|\/)|\.NET($|\/)|\.NF($|\/)|\.NG($|\/)|\.NI($|\/)|\.NL($|\/)|\.NO($|\/)|\.NP($|\/)|\.NR($|\/)|\.NU($|\/)|\.NZ($|\/)|\.OM($|\/)|\.ORG($|\/)|\.PA($|\/)|\.PE($|\/)|\.PF($|\/)|\.PG($|\/)|\.PH($|\/)|\.PK($|\/)|\.PL($|\/)|\.PM($|\/)|\.PN($|\/)|\.PR($|\/)|\.PRO($|\/)|\.PS($|\/)|\.PT($|\/)|\.PW($|\/)|\.PY($|\/)|\.QA($|\/)|\.RE($|\/)|\.RO($|\/)|\.RS($|\/)|\.RU($|\/)|\.RW($|\/)|\.SA($|\/)|\.SB($|\/)|\.SC($|\/)|\.SD($|\/)|\.SE($|\/)|\.SG($|\/)|\.SH($|\/)|\.SI($|\/)|\.SJ($|\/)|\.SK($|\/)|\.SL($|\/)|\.SM($|\/)|\.SN($|\/)|\.SO($|\/)|\.SR($|\/)|\.ST($|\/)|\.SU($|\/)|\.SV($|\/)|\.SY($|\/)|\.SZ($|\/)|\.TC($|\/)|\.TD($|\/)|\.TEL($|\/)|\.TF($|\/)|\.TG($|\/)|\.TH($|\/)|\.TJ($|\/)|\.TK($|\/)|\.TL($|\/)|\.TM($|\/)|\.TN($|\/)|\.TO($|\/)|\.TP($|\/)|\.TR($|\/)|\.TRAVEL($|\/)|\.TT($|\/)|\.TV($|\/)|\.TW($|\/)|\.TZ($|\/)|\.UA($|\/)|\.UG($|\/)|\.UK($|\/)|\.US($|\/)|\.UY($|\/)|\.UZ($|\/)|\.VA($|\/)|\.VC($|\/)|\.VE($|\/)|\.VG($|\/)|\.VI($|\/)|\.VN($|\/)|\.VU($|\/)|\.WF($|\/)|\.WS($|\/)|\.XN--0ZWM56D($|\/)|\.XN--11B5BS3A9AJ6G($|\/)|\.XN--80AKHBYKNJ4F($|\/)|\.XN--9T4B11YI5A($|\/)|\.XN--DEBA0AD($|\/)|\.XN--G6W251D($|\/)|\.XN--HGBK6AJ7F53BBA($|\/)|\.XN--HLCJ6AYA9ESC7A($|\/)|\.XN--JXALPDLP($|\/)|\.XN--KGBECHTV($|\/)|\.XN--ZCKZAH($|\/)|\.YE($|\/)|\.YT($|\/)|\.YU($|\/)|\.ZA($|\/)|\.ZM($|\/)|\.ZW)/i",
    $string,
    $M);
  $has_tld = (count($M) > 0) ? true : false;
  return $has_tld;
}

function cleaner($url) {
  $U = explode(' ',$url);

  $W =array();
  foreach ($U as $k => $u) {
    if (stristr($u,".")) { //only preg_match if there is a dot    
      if (containsTLD($u) === true) {
      unset($U[$k]);
      return cleaner( implode(' ',$U));
    }      
    }
  }
return str_replace(array('[img=',']','<br /><br />'), array('','','/n'), implode(' ',$U));
}

function fbtext($string){
$start="[b]";
$end="[/b]";
cleaner($string);
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}




if(!$_POST['page']){

########## Database Info ##########
$db_server = 'localhost';
$db_name = 'test';
$db_user = 'test';
$db_passwd = 'test';
$link = mysql_connect($db_server, $db_name, $db_passwd);
if (!$link) {
	die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_name,$link);


$topic_id = $_GET['topic_id'];
$date = $_GET['date'];
$type = $_GET['type'];

    $sql = mysql_query("SELECT DATE_FORMAT(smf_calendar.startDate, '%W <br>%D %M %y') AS startDate, smf_calendar.ID_TOPIC, smf_topics.ID_FIRST_MSG, smf_messages.subject, CURDATE() FROM smf_calendar INNER JOIN smf_topics
ON smf_calendar.ID_TOPIC=smf_topics.ID_TOPIC INNER JOIN smf_messages
ON smf_topics.ID_FIRST_MSG=smf_messages.ID_MSG WHERE smf_calendar.startDate >= CURDATE() AND smf_calendar.startDate <= DATE_ADD(curdate(), INTERVAL 1 MONTH) ORDER BY smf_calendar.startDate ASC");
// if form is submitted post to the group
$group_grp = $_POST['group'];

$to_grp      = 'test@groups.facebook.com';
$subject_grp = '';
$message_grp = $group_grp;
$headers_grp = 'From: 	test@facebook.com' . "\r\n" .
    'Reply-To: 		test@facebook.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to_grp, $subject_grp, $message_grp, $headers_grp);	

	// if form is submitted post to the page
$page_pg = $_POST['page'];

$to_pg      = 'test@facebook.com';
$subject_pg = $page_pg;
$message_pg = '';
$headers_pg = 'From: test@facebook.com' . "\r\n" .
    'Reply-To: 	test@facebook.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to_pg, $subject_pg, $message_pg, $headers_pg);	

// if form is submitted post to the Trans Fusion facebook profile
$page_prf = $_POST['page'];

// only works on subject so formatted the same as a page
$to_prf  = 'test@hotmail.co.uk';
$subject_prf = $page_prf;
$message_prf = '';
$headers_prf = 'From: 	test@facebook.com' . "\r\n" .
    'Reply-To: 	test@facebook.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to_prf, $subject_prf, $message_prf, $headers_prf);	

}
?>

 

Viewing part.

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<? if(!$_POST['group']){ ?>
<form action="fbannounce.php" method="post">
<strong>Facebook Group Post:</strong>
<br />
<br />
<textarea name="group" cols="60" rows="15">
<?
echo $type." - ". date("D jS M", strtotime($date))." - ".$row['subject'];
echo "
";
echo str_replace("<br />","\n",fbtext($row['body']));
echo "
";
	while($row = mysql_fetch_array($sql)

	)
?>
</textarea>
<br />
<textarea name="page" cols="60" rows="15">
<?
echo $type." - ". date("D jS M", strtotime($date))." - ".$row['subject'];
echo "
";
echo "http://test.org/smf/index.php?topic=".$topic_id.".0";
?>
</textarea>

<input type="submit" name="post" value="submit" />
</form>
<? } else { ?>

<strong>Status Updates updated check below for output - profile page might come in 10 minutes late:</strong>
<br />
<br />
<strong>Group:</strong><a href="http://www.facebook.com/groups/test/" target="_blank">http://www.facebook.com/groups/test/</a>
<br />
<br />
<br />
<? } ?>
</body>
</html>

Share this post


Link to post
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.