@xakmika1

Как разрешить определённую ссылку php?

Надо сделать чекер ссылки, когда гость отправляет ссылку в бд, надо проверить сходится его домен с vk.com или нет
Обработчик
if(in_array(parse_url($urltg, PHP_URL_SCHEME),array('http','https'))){
    if (filter_var($urltg, FILTER_VALIDATE_URL) !== false) {
         if (isset($_POST['urltg']) && isset($_POST['urlvk']) && isset($_POST['cena'])){
	
  // Подключение к базе данных
    $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base);

    // Если есть ошибка соединения, выводим её и убиваем подключение
if ($mysqli->connect_error) {
	    die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
	}
    
$result = $mysqli->query("INSERT INTO ".$db_tablei1." (urltg, urlvk, cena, date_add) VALUES ('" . $urltg . "','" . $urlvk . "','" . $cena . "', '" . $date_add . "')");

if ($result == true){
    	$INFO = " Ваша группа была успешна опубликованна!";
		
    }else{
    	$INFO1 = " Ваша группа не была опубликованна!";
    }
}
    }else{
        $INFO2 = "Ошибка: Не валид URL";
    }
}else{
    $INFO3 = "Ошибка: No http or https";
}

index
<form id="w0" action="/classes/vk/vk.php" method="post">
<input type="hidden" name="_csrf" value="FqJIbMxzSTiMbJ_neShDgoXIpc8w1tITgdIBr9RkykJ11gc8vkchaOgh0N4eejbw1pnQvHin5CP2t1TIhy-7Cg==">
<div class="form-group field-sellform-servicecupon required has-error">

</div>    
<center>
 	<a href="https://vk.com/official__mika" target=_blank><img src="https://brute.su/300x60_new.png" border="0" title="1 неделя 100р" width="" height="" alt=""></a>
	<a href="https://vk.com/official__mika" target=_blank><img src="https://brute.su/300x60_new.png" border="0" title="1 неделя 100р" width="" height="" alt=""></a>
	<a href="https://vk.com/official__mika" target=_blank><img src="https://brute.su/300x60_new.png" border="0" title="1 неделя 100р" width="" height="" alt=""></a>
 

    <div class="form-group field-sellform-cupon required">
<label class="control-label" for="sellform-cupon">Ссылка на Аккаунт Группу Паблик:</label>
<input type="text" id="sellform-cupon" class="form-control" name="urltg" placeholder="https://vk.com/" autocomplete="off" aria-required="true">

<div class="help-block"></div>
</div>
     
 



    <div class="form-group field-sellform-wallet required">
<label class="control-label" for="sellform-wallet">Ссылка для связи:</label>
<input type="text" id="sellform-wallet" class="form-control" name="urlvk" placeholder="https://t.me/ https://vk.com/" aria-required="true">
<div class="help-block"></div>
</div>      

<div class="form-group field-sellform-wallet required">
<label class="control-label" for="sellform-wallet">Цена:</label>
<input type="text" id="sellform-wallet" class="form-control" name="cena" pattern="^[ 0-9]+$" placeholder="100" aria-required="true">
<div class="help-block"></div>
</div>  
<div class="form-captcha">
<div class="g-recaptcha" data-sitekey="**********">
		<script>
function reCaptcha(selector) {
 var $wg = $(selector); // Обращаемся к селектору (описан ниже в "вызове", в нашем случае это form-captcha)
 $wg.each(function() { // Делаем проход по этому селектору
 var id = randomString(10), // Задаем переменную для id (рандомная строка, ее функция ниже)
 $form = $(this).closest('form'); // Проходим по всей форме
 $form.find('button[type="submit"]').prop('disabled', true); // Изначально даем кнопке disabled (нельзя нажать)
  $(this).append($('<div class="g-recaptcha" id="' + id + '"></div>')); // Добавляем в form-captcha еще блок с рандомным id
   grecaptcha.render(id, { // Используем функции самой рекапчи
   sitekey: $(this).find('.g-recaptcha').data('sitekey') || '', // Находим элемент с нашим дата-атрибутом
   callback: function(response) {
    if (!!response) { 
     $form.find('button[type="submit"]').prop('disabled', false); // Если условие (нажатие галочки) выполнено, убираем disabled у кнопки
    }
   }
  });
 });
};
 
// Функция рандомной строки как id
function randomString(length) {
 var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split(''),
 result = '';
 length = !length ? Math.floor(Math.random() * chars.length) : length;
 for (var i = 0; i < length; i++) {
  result += chars[Math.floor(Math.random() * chars.length)];
 }
  return result;
 }
//Вызов  
var reCaptchaOnLoadCallback = function() {
 reCaptcha('.form-captcha');
};
</script>
    <div class="form-group">
        <button type="submit" class="btn btn-primary" name="payeer" data-confirm="Продать купон?">Добавить Объявление</button>    </div>
		
		
</form>
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
Armrisch
@Armrisch
Full Stack Developer
Используй регулярные выражения.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@xakmika1 Автор вопроса
Ребят не знаете почему бед присылает? где я тут ошибку допустил?
if (preg_match("^(^(http:\/\/|https:\/\/)?(www.)?(vk\.com|vkontakte\.ru)\/(id\d|[a-zA-Z0-9_.])+$", $urltg)) {
     if (isset($_POST['urltg']) && isset($_POST['urlvk']) && isset($_POST['cena'])){
	
  // Подключение к базе данных
    $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base);

    // Если есть ошибка соединения, выводим её и убиваем подключение
if ($mysqli->connect_error) {
	    die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
	}
    
$result = $mysqli->query("INSERT INTO ".$db_tablei1." (urltg, urlvk, cena, date_add) VALUES ('" . $urltg . "','" . $urlvk . "','" . $cena . "', '" . $date_add . "')");

if ($result == true){
    	$INFO = " Ваша группа была успешна опубликованна!";
		
    }else{
    	$INFO1 = " Ваша группа не была опубликованна!";
    }
}
} else {
    $INFO5 = 'Бед';
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы