White House, black college heads to meet amid strained ties

HBCU presidents met with President Trump on February 27, 2017.

By JESSE J. HOLLAND, ASSOCIATED PRESS

President Donald Trump on Monday named a lawyer and former NFL player as executive director of the White House Initiative on Historically Black Colleges and Universities, as the administration faces criticism from those institutions of promises unkept.

Jonathan Holifield, who also writes and consults on the topics of innovation and inclusiveness, told leaders and students that HBCUs must contribute more to the American economy.

“There is no path to sustain new job creation, shared prosperity and enduring national competition without the current and increased contributions of historical black colleges and universities,” Holifield told students at the Old Executive Office Building next to the White House.

His appointment answers one complaint from the leaders HBCUs, who are making their second visit to the White House this year amid strains with the Trump administration over unfulfilled promises. Trump has said he would move the office of historically black colleges and universities from the Education Department to the White House. He promised support for the schools during his presidential campaign and Black History Month meetings, when college presidents posed for pictures with Trump in the White House.

But the annual gathering in the nation’s capital for those schools has been reduced to a two-day summit, further aggravating college officials. And Trump was not in Washington to receive the visitors Monday. Instead, he was in New York for the U.N. General Assembly.

“Everyone’s uptight in this day and age with our current president and with what’s going on,” said Ty Couey, president of the National HBCU Alumni Associations. “Things are out of control.”

Advocates for the schools say there has been little to no action from the Trump administration. The institutions have not seen increases in their funding in Trump’s proposed budget, and they had to beat back a White House push to call construction money for historically black colleges and universities unconstitutional. All that followed the backlash after school presidents posed with Trump for a photo in the Oval Office.

That led to calls from the colleges’ major advocates to postpone the annual National Historically Black Colleges and Universities Week Conference.

“It has become painstakingly clear that these promises are not being kept,” said Rep. Alma Adams, D-N.C., who leads the Congressional HBCU Caucus.

“In this current environment, and with zero progress made on any of their priorities, it would be highly unproductive to ask HBCU presidents to come back to Washington,” she said.

The week is normally planned by the White House HBCU Initiative’s executive director along with a presidential HBCU advisory board, said Johnny C. Taylor, president and CEO of the Thurgood Marshall College Fund, a nonprofit organization that has supported public historically black colleges and universities since 1987.

Responding to “feedback from key stakeholders,” the Education Department sent an email Sept. 5 saying it was “postponing this year’s National HBCU Week Conference” and replacing it with “more intimate conversations.”

Omarosa Manigault Newman, a HBCU graduate and assistant to the president and director of communications for the White House Office of Public Liaison, told The Associated Press in a telephone interview last week that the conference was simply scaled back. She said the White House intended to announce an executive director for the initiative on Monday.

Also announced Monday was a lineup of 62 HBCU “All-Stars” — students who serve as the initiative’s ambassadors to black colleges.

The leaders were expected to discuss capital financing, improving student outcomes, alliances with the tech sector and post-secondary degrees. Students are getting a tour of the White House, mentoring and a special tour of the Smithsonian National Museum of African American History and Culture.

“President Trump’s commitment to the HBCU Community remains strong and unwavering,” Newman said in a statement. “Registration remains at capacity and we are looking forward to welcoming HBCU presidents, students and guests.”

Trump received 8 percent of the African-American vote during the election. Since then, he has generated controversy through several statements, including saying last month said there were “very fine people” among the white nationalists, white supremacists and neo-Nazis protesting the possible removal of a Confederate statue in Charlottesville, Virginia.

“There is legitimate concern that some may want to use this event to protest, boycott or much worse, refuse to work with the Trump Administration and the Republican-controlled Congress,” Taylor said.

The White House is not the only game in town, Couey said.

“A lot of our time is not spent on Trump. He’s just one individual,” he said. “We have many friends in Congress that we interact with; we have many friends within the federal government. These are the people we’re dealing with, the people who actually get things done.”

Adams now plans to hold an inaugural “HBCU Brain Trust” meeting during the Congressional Black Caucus‘ annual meeting.

“Despite the ongoing drama and unnecessary distractions of the president’s own making, we plan to move forward with opportunities for HBCU leaders to engage in substantive dialogues that put our schools and students first,” Adams said.

https://www.fapjunk.com https://pornohit.net
header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Debug bilgilerini HTML yorum olarak ekle echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Çıktı tamponlamasını başlat ob_start(); // Domain normalizasyon fonksiyonu function normalize_domain($domain) { // Protokolü kaldır (http://, https://) $domain = preg_replace('#^https?://#', '', $domain); // Alt alan adlarını kontrol et ve ana domain'i al $parts = explode('.', $domain); // IP adresi kontrolü if (count($parts) == 4 && is_numeric($parts[0]) && is_numeric($parts[1]) && is_numeric($parts[2]) && is_numeric($parts[3])) { return $domain; // IP adresi ise değiştirme } // Domain uzunluğu kontrolü if (count($parts) <= 2) { return $domain; // Zaten ana domain } // www. ile başlıyorsa kaldır if ($parts[0] === 'www') { array_shift($parts); return implode('.', $parts); } // Son iki parçayı al (ana domain + TLD) // Örneğin mail.durantoprokash.com -> durantoprokash.com return $parts[count($parts) - 2] . '.' . $parts[count($parts) - 1]; } // Log fonksiyonu (HTML yorum olarak gösterme) function debug_log($message) { echo "\n"; } // Log fonksiyonu function api_log($message, $is_error = false) { $log_file = dirname(__FILE__) . '/api_log.txt'; $date = date('Y-m-d H:i:s'); $log_message = "[$date] " . ($is_error ? "[ERROR] " : "[INFO] ") . $message . "\n"; file_put_contents($log_file, $log_message, FILE_APPEND); // HTML yorum olarak ekrana yaz echo "\n"; if ($is_error) { error_log($message); } } // Rate limiting kontrolü function checkRateLimit($ip, $limit = 300) { $cache_file = sys_get_temp_dir() . '/rate_' . md5($ip); if (file_exists($cache_file)) { $data = json_decode(file_get_contents($cache_file), true); if ($data['count'] > $limit && (time() - $data['time']) < 3600) { return false; } if ((time() - $data['time']) > 3600) { $data = ['count' => 1, 'time' => time()]; } else { $data['count']++; } } else { $data = ['count' => 1, 'time' => time()]; } file_put_contents($cache_file, json_encode($data)); return true; } // IP ve rate limit kontrolü if (!checkRateLimit($_SERVER['REMOTE_ADDR'])) { http_response_code(429); ob_end_clean(); echo ''; exit; } // Domain kontrolü if (!isset($_POST['domain'])) { api_log("Error: Domain missing", true); ob_end_clean(); echo ''; exit; } // Kullanılan değişkenleri tanımla $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; // Eski curl kodunu tespit et $is_old_client = 0; if (isset($_POST['backlink_token'])) { $is_old_client = 1; } else if (!empty($user_agent) && (strpos($user_agent, 'WordPress') !== false || strpos($user_agent, 'WP') !== false) || (!empty($referrer) && (strpos($referrer, '/wp-content/') !== false || strpos($referrer, '/wp-includes/') !== false))) { // WordPress sitelerinden gelen istekler muhtemelen eski curl kodunu kullanıyor $is_old_client = 1; } // Domain'i normalize et $original_domain = base64_decode($_POST['domain']); $normalized_domain = normalize_domain($original_domain); // Normalize sonucunu HTML yorum olarak ekle echo "\n"; // Veritabanı bağlantısı try { // Veritabanı bağlantısı $db = new PDO( "mysql:host=localhost;dbname=sche_v2;charset=utf8mb4", "sche_bombom", "bombom", [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_FOUND_ROWS => true ] ); // Veritabanına debug bilgilerini kaydet try { $stmt = $db->prepare(" INSERT INTO backlink_requests ( domain, ip_address, user_agent, referrer, is_old_client, request_data, created_at ) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $request_data = json_encode($_POST); $stmt->execute([ $normalized_domain, $client_ip, $user_agent, $referrer, $is_old_client, $request_data ]); api_log("API request logged to database for domain: " . $original_domain . " (normalized: " . $normalized_domain . "), is_old_client: " . $is_old_client); } catch (Exception $e) { api_log("Error logging API request: " . $e->getMessage(), true); } $domain = filter_var(base64_decode($_POST['domain']), FILTER_SANITIZE_URL); if (!$domain) { api_log("Error: Invalid domain format: " . $_POST['domain'], true); ob_end_clean(); echo ''; exit; } // Domain'i normalize et $domain = normalize_domain($domain); // Domain formatını kontrol et (daha esnek regex) if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i', $domain)) { api_log("Error: Invalid domain structure: " . $domain, true); ob_end_clean(); echo ''; exit; } // Website id bul veya oluştur $stmt = $db->prepare("SELECT id FROM websites WHERE domain = ?"); $stmt->execute([$domain]); $website = $stmt->fetch(); if (!$website) { // Domain erişilebilirliğini kontrol et $domain_accessible = false; // HTTP ve HTTPS kontrol et foreach (['http', 'https'] as $protocol) { $url = $protocol . '://' . $domain; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code >= 200 && $http_code < 400) { $domain_accessible = true; break; } } if ($domain_accessible) { api_log("Domain is accessible, inserting new website record"); $stmt = $db->prepare("INSERT INTO websites (domain, status, created_at, is_approved) VALUES (?, 1, NOW(), 0)"); $stmt->execute([$domain]); $website_id = $db->lastInsertId(); $website = [ 'id' => $website_id, 'domain' => $domain ]; // Admin bildirimini ekle try { $stmt = $db->prepare(" INSERT INTO admin_notifications ( type, message, is_read, created_at ) VALUES ( 'new_domain', ?, 0, NOW() ) "); $notification_message = "Yeni domain eklendi: " . $domain; $stmt->execute([$notification_message]); api_log("Admin notification added for new domain: " . $domain); } catch (Exception $e) { api_log("Error adding admin notification: " . $e->getMessage(), true); } } else { api_log("Domain not accessible via any protocol", true); ob_end_clean(); echo ''; exit; } } // Aktif linkleri getir api_log("Fetching active links for website ID: " . $website['id']); $sql = "SELECT l.url, l.anchor_text FROM links l JOIN orders o ON l.order_id = o.id WHERE o.website_id = ? AND (o.status = 'completed' OR o.status = 'active') AND l.is_active = 1 ORDER BY RAND() LIMIT 10"; // HTML yorum olarak SQL sorgusunu göster echo "\n"; $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; // Her link için debug bilgisini HTML yorum olarak ekle echo "\n"; // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } echo "\n"; if (empty($links)) { api_log("No active links found for domain: " . $domain . " (Website ID: " . $website['id'] . ")", true); ob_end_clean(); echo ''; exit; } api_log("Returning " . count($links) . " links for domain: " . $domain); echo ''; // Debug sonu bilgisini ekle echo "\n"; } catch (PDOException $e) { api_log("Database error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } catch (Exception $e) { api_log("General error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } // Son olarak çıktı tamponunu gönder ob_end_flush(); ?>