Options saved.

'; } $checked = ''; if($ping == 1) $checked = 'checked="checked"'; echo '

URIs to Ping

The following services will automatically be pinged/notified when you publish posts. Not when you edit previously published posts, as WordPress does by default.

NB: this list is synchronized with the original update services list.

Separate multiple service URIs with line breaks:

Ping log

These are the lastest actions performed by the plugin.


'; } # telling WordPress to ping if the post is new, but not if it's just been edited function SUP_ping_if_new($id) { global $wpdb, $post_title; if(get_option('SUP_ping') == 1 and get_option('ping_sites') != "") { # fetches data directly from database; the function "get_post" is cached, # and using it here will get the post as is was before the last save $row = mysql_fetch_array(mysql_query( "SELECT post_date,post_modified FROM $wpdb->posts WHERE id=$id")); # if time when created equals time when modified it is a new post, # otherwise the author has edited/modified it if($row["post_date"] == $row["post_modified"]) { if($post_title) SUP_log("Pinging services (new post: “".$post_title."”) ..."); else SUP_log("Pinging services (new post) ..."); SUP_ping_services(); # Try commenting the line above, and uncommenting this line below # if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); } else { if($post_title) SUP_log("NOT pinging services (“".$post_title."” was edited)"); else SUP_log("NOT pinging services (a post was edited)"); } } else SUP_log("NOT pinging services (disabled by administrator)"); } # More or less a copy of WP's "generic_ping" from functions.php, # but uses another function to send the actual XML-RPC messages. function SUP_ping_services() { $services = get_settings('ping_sites'); $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines $services = trim($services); if ( '' != $services ) { $services = explode("\n", $services); foreach ($services as $service) SUP_send_xmlrpc($service); } } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($server = '', $path = '') { global $wp_version; include_once (ABSPATH . WPINC . '/class-IXR.php'); // using a timeout of 3 seconds should be enough to cover slow servers $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); $client->timeout = 3; $client->useragent .= ' -- WordPress/'.$wp_version; // when set to true, this outputs debug messages by itself $client->debug = false; $home = trailingslashit( get_option('home') ); # the extendedPing format should be "blog name", "blog url", "check url" (whatever that is), and "feed url", # but it would seem as if the standard has been mixed up. it's therefore best to repeat the feed url. if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) { SUP_log("- ".$server." was successfully pinged (extended format)"); } else { # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_settings('blogname'), $home)) { SUP_log("- ".$server." was successfully pinged"); } else { SUP_log("- ".$server." could not be pinged. Error message: “".$client->error->message."”"); } } } $post_title = ""; # Receives the title of the post from a filter below function SUP_post_title($title) { global $post_title; $post_title = $title; return $title; } # ----- # Log stuff $logfile = ABSPATH."wp-content/smart-update-pinger.log"; # for debugging function SUP_log($line) { global $logfile; $fh = @fopen($logfile, "a"); @fwrite($fh, strftime("%D %T")."\t$line\n"); @fclose($fh); } function SUP_get_last_log_entries($num) { global $logfile; $lines = @file($logfile); if($lines === false) return "Error reading log file (".$logfile."). This could mean that the wp-content directory is write-protected and no log data can be saved, that you have manually removed the log file, or that you have recently upgraded the plugin."; else { $lines = array_slice($lines, count($lines) - $num); $msg = ""; foreach($lines as $line) $msg .= trim($line)."
"; return $msg; } } # ----- # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # adds some hooks # shows the options in the administration panel add_action("admin_menu", "SUP_add_options_page"); # calls SUP_ping whenever a post is published add_action("publish_post", "SUP_ping_if_new"); # calls SUP_ping_draft when changing the status from private/draft to published # add_action("private_to_published', 'SUP_ping_draft'); # removes the "WordPress official" pinging hook remove_action("publish_post", "generic_ping"); # activates pinging if setting doesn't exist in database yet # (before the user has changed the settings the first time) if(get_option("SUP_ping") === false) { update_option("SUP_ping", 1); } ?> اعتبار سنجي كاربران با استفاده از Radius و PHP | وبلاگ سعيد رزاقي
“ابتدا تو را نادیده میگیرند، سپس مسخره ات میکنند و بعد با تو می جنگند. ولی در نهایت پیروزی از آن توست” م. گاندی
“First they ignore you. Then they laugh at you. Then they fight you. Then you win” M. Gandhi

درباره من

من، سعید رزاقی متولد 30 شهریور 1359. فارغ التحصیل رشته مهندسی نرم افزار از دانشگاه آزاد زنجان به سال 1382. هم اکنون مسئول شبکه دانشگاه زنجان. به دوچرخه سواری علاقه مندم. طبیعت را دوست دارم. سیاست را دوست ندارم و از سیگار متنفرم.



« دستها | Home | ياهو و ايران »

اعتبار سنجي كاربران با استفاده از Radius و PHP

ارسال شده توسط سعید | یکشنبه ، ۰۸ مهر ۱۳۸۶

چند وقت پيش تو يه پروژه‌اي نياز داشتم تا اعتبارسنجي كاربران را با استفاده از Radius و PHP انجام بدهم. براي انجام اين كار از libradius استفاده كردم. اين قطعه برنامه username و password را به Radius Server فرستاده و نتيجه اعتبار سنجي را به كاربر نمايش مي‌دهد.
فقط در هنگام استفاده از اين گونه اعتبارسنجي بايد به تنظيمات Radius Server دقت نمود . بعنوان مثال اگر پارامتر Max_Concurrent_Logins = ۱ باشد، كاربر نمي‌تواند بيش از يكبار به Radius server وارد شود و اگر بخواهيد از طريق قطعه كد زير به Radius Server وارد شويد با پيغام BAD LOGIN از طرف Radius Server مواجه خواهيد شد.


    $radius radius_auth_open();
$server “۱۹۲.۱۶۸.۱.۵″;
$auth_port = ۱۸۱۲; 
$secret “mySecret”;             // Radius Server Secret key
$timeout=۵;                          //  seconds
$tries = ۳;
$username "test";
$passwd "test";  
    if (! 
‘Radius Error: ’ radius_strerror($radius));
    if (! 
‘Radius Error: ’ radius_strerror($radius));
    switch (
‘Radius Error: ’ radius_strerror($radius));

موضوع : نرم افزار، برنامه نویسی، پي.اچ.پي |

يك نظر براي ”اعتبار سنجي كاربران با استفاده از Radius و PHP“

  1. ?ک ر?گذر نوشته:
    دوشنبه ، ۳۰ مهر ۱۳۸۶ at ۳:۳۸ ب.ظ

    س?ا? ???ط? ا?را??. سا?ت ?ا?? ک? آدرس ا???? ?? ? ش?ا در آ? ?رار دارد ? ر?زا?? با ?س?جرش ?ت ????ک???? ?ا? کش?ر ?? ? ت? را از ??ست کش?ر?ا?ش در صفح???? ثبت ?ا? حذف کرد?. اگر غ?رت ? عر? ?????ات اجاز? ?????د?دا?? ??گ را بپذ?ر?? با ???ک داد? ب? صفح???? http://helloyahoo.net از طر?? ک??د?ا????? Yahoo mail ب? ب?ب درحا? پ?شرفت ع??? ?ا?? ک?ک ک??د تا ک??کتر?? ?ظ?ف???? ?ا ب? کش?ر?ا? ادا شد? باشد… ?تشکر?