Задать вопрос
  • Не передаются cookie в curl, почему?

    @cahya_camapa Автор вопроса
    slo_nik, без файла возможно вот пример https://pastebin.com/5YecKuUs гляньте если не сложно там все ок, и без записи в файл, работа с переменной. Пробовал брать тот код все равно в вк авторизовывается, а по моим ссылкам нет(
  • Не передаются cookie в curl, почему?

    @cahya_camapa Автор вопроса
    slo_nik, какие понты, просто я объяснил что запись и хранение на сервере файла с куками не допустимо, затем пошел отталкиваесь от вашей рекомендации CURLOPT_COOKIEFILE, но все равно не идет, хотя они в переменную попадают.
  • Не передаются cookie в curl, почему?

    @cahya_camapa Автор вопроса
    slo_nik, хорошо делаю так, с помощью CURLOPT_COOKIEFILE

    function post($url = null, $params = null){
    
    	// Инициализация соединения
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_URL, $url);	// Страница для обработки
    	curl_setopt($ch, CURLOPT_HEADER, 1);	// Получение заголовка
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // Возвращает веб-страницу
    	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
    
    	if(isset($params['params'])){
    
    		curl_setopt($ch, CURLOPT_POSTFIELDS, $params['params']);
    
    	}
    
    	if(isset($params['headers'])){
    
    		curl_setopt($ch, CURLOPT_HTTPHEADER, $params['headers']);
    
    	}
    
    	$result = curl_exec($ch);
    
    	$cookies = implode(';', curl_getinfo($ch, CURLINFO_COOKIELIST));
    
    	//	Разделение "Заголовка" от "Тела" страницы
    	$result = explode("\r\n\r\n", $result, 2);
    	
    	// Закрытие соединения
    	curl_close($ch);
    
    	//	Результат	 
    	return array('headers' => $result[0], 'cookies' => $cookies, 'content' => $result[1]);
    
    }
    
    
    
    
    function ref($params = null){
    
    	//	Поиск ссылки в строке "Location:"
    	preg_match('/Location\: (.*)/', $params, $result);
    
    	//	Удаление пробелов в начале и конце
    	$result = trim($result[1]);
    
    	//	Результат
    	return $result;	
    
    }
    
    function login($email = null, $pass = null){
    
    	//	Начальная страница авторизации
    	$post_vk = post('https://oauth.vk.com/authorize?v=5.62&client_id=3280318&scope=friends,schools,email&display=page&response_type=code&redirect_uri='.urlencode('https://ulogin.ru/auth.php?name=vkontakte'));
    	
    	
    
    	//	Вытаскиваем переменные (ip_h, lg_h, to) с главной страницы ($post_vk)
    	preg_match('/name=\"ip_h\" value=\"(.*?)\"/s', $post_vk['content'], $ip_h);
    	preg_match('/name=\"lg_h\" value=\"(.*?)\"/s', $post_vk['content'], $lg_h);
    	preg_match('/name="to" value="(.*?)\"/s', $post_vk['content'], $to_);
    
    	//	Запрос на авторизацию
    	$post_login = post('https://login.vk.com/?act=login&soft=1', array(
    		'params' => 'ip_h='.$ip_h[1].'&lg_h='.$lg_h[1].'&_origin='.urlencode('https://oauth.vk.com').'&to='.$to_[1].'&expire=0&email='.$email.'&pass='.$pass,
    		'cookies' => $post_vk['cookies'])
    	);
    	
    	echo $post_login['cookies'];
    
    	$post_hash = post(ref($post_login['headers']), array(
    		'cookies' => $post_login['cookies'])
    	);	
    
    	//echo $post_hash['headers'];
    	preg_match('/Location\: (.*)/', $post_hash['headers'], $url_code);
    
    	
    
    	$post_code = post(trim($url_code[1]), array(
    		'cookies' => $post_hash['cookies'])
    	);
    
    	echo $post_code['headers']// в заголовке должена быть ссылка на переход далее
    }
    
    login($mail, $pass);
    если есть где попробывать можете протестировать понятней будет, где должна быть ссылка для редиректа отображается как будто авторизации вобще не было, т.е. толи куки не дошли то ли что, вот и не пойму
  • Не передаются cookie в curl, почему?

    @cahya_camapa Автор вопроса
    slo_nik, давайте остановимся, я уже объяснил что CURLOPT_COOKIEFILE не подходит для моей задачи.