Задай вопрос экспертам!

Посмотреть всех экспертов из раздела Технологии > PHP
Нужно распарсить сложные сайты (прим — хабрахабр) на посты ленты(нужные данные: название, дата, ссылка на пост) и выводить на страницу в формате JSON для мобильного приложения. Посоветуйте туториалы/статьи на эту тему

Я плохо рабираюсь в PHP. В обратной связи на сайте хочу чтобы с текстом было ip отправителя. Сам скрипт имеется со всем необходимым, кроме ip. Вот функция нахождения IP, она, вроде бы, правильная:

function GetRealIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}


Я хочу, чтобы полученный IP был здесь:


$emailadmin = 'например@gmail.com';
$mes = ">> EMail: $email
>> Какая игра: $select
>> IP отправителя: ";

теперь на 7-значные кошельки выплата не происходит выдаёт ошибку про неверный номер кошелька. Как сделать чтобы принимались номера 7-значные и 8-значные? Если нужно скину скриншот с куском кода. Заранее спасибо за помощь.
Я сейчас работаю над проектом «Хостинг игровых серверов», точнее над панель управления, и все почти закончил, но столкнулся с не большой проблемой как «восстановление пароля»
panel.1gamebox.ru, я написал не плохой код, но я не пойму почему он не работает.
Исходный код
<?php
class restoreController extends Controller {
public function index() {
$this->document->setActiveSection('account');
$this->document->setActiveItem('restore');

if($this->user->isLogged()) {
$this->session->data['error'] = «Вы уже авторизированы!»;
$this->response->redirect($this->config->url);
}

$this->getChild(array('common/loginheader', 'common/loginfooter'));
return $this->load->view('account/restore/index', $this->data);
}

public function complete($userid = null, $restoreKey = null) {
$this->document->setActiveSection('account');
$this->document->setActiveItem('restore');

if($this->user->isLogged()) {
$this->session->data['error'] = «Вы уже авторизированы!»;
$this->response->redirect($this->config->url);
}

$this->load->model('users');

$error = $this->validate($userid, $restoreKey);
if($error) {
$this->session->data['error'] = $error;
$this->response->redirect($this->config->url);
}

// Генерация пароля
$password = substr(md5(microtime()), 0, 8);

$this->usersModel->updateUser($userid, array('user_password' => md5($password), 'user_restore_key' => null));
$this->data['password'] = $password;

$this->getChild(array('common/loginheader', 'common/loginfooter'));
return $this->load->view('account/restore/complete', $this->data);
}

public function ajax() {
if($this->user->isLogged()) { 
$this->data['status'] = «error»;
$this->data['error'] = «Вы уже авторизированы!»;
return json_encode($this->data);
}

$this->load->library('mail');
$this->load->model('users');

if($this->request->server['REQUEST_METHOD'] == 'POST') {
$errorPOST = $this->validatePOST();
if(!$errorPOST) {
$email = @$this->request->post['email'];

// Генерация ключа восстановления
$user = $this->usersModel->getUserByEmail($email);

$restoreKey = md5(microtime());
$this->usersModel->updateUser($user['user_id'], array('user_restore_key' => $restoreKey));

$mailLib = new mailLibrary();

$mailLib->setFrom($this->config->mail_from);
$mailLib->setSender($this->config->mail_sender);
$mailLib->setTo($email);
$mailLib->setSubject('Восстановление пароля');

$mailData = array();

$mailData['firstname'] = $user['user_firstname'];
$mailData['lastname'] = $user['user_lastname'];
$mailData['restorelink'] = $this->config->url + 'account/restore/complete/' + $restoreKey;

$text = $this->load->view('mail/account/restore', $mailData);

$mailLib->setText($text);
$mailLib->send();

$this->data['status'] = «success»;
$this->data['success'] = «На ваш E-Mail отправлена информация для восстановления пароля!»;
} else {
$this->data['status'] = «error»;
$this->data['error'] = $errorPOST;
}
}

return json_encode($this->data);
}

private function validate($userid, $restoreKey) {
$this->load->library('validate');

$validateLib = new validateLibrary();

$result = null;

if(!$validateLib->md5($restoreKey) || !$this->usersModel->getTotalUsers(array('user_id' => (int)$userid, 'user_restore_key' => $restoreKey))) {
$result = «Указанный ключ восстановления неверный!»;
}
return $result;
}

private function validatePOST() {
$this->load->library('validate');

$validateLib = new validateLibrary();

$result = null;

$email = @$this->request->post['email'];
$captcha = @$this->request->post['captcha'];

$captchahash = @$this->session->data['captcha'];
unset($this->session->data['captcha']);

if(!$validateLib->email($email)) {
$result = «Укажите свой реальный E-Mail!»;
}
elseif($captcha != $captchahash) {
$result = «Укажите правильный код с картинки!»;
}
elseif($this->usersModel->getTotalUsers(array('user_email' => $email)) < 1) {
$result = «Пользователь с указанным E-Mail не зарегистрирован!»;
}
return $result;
}
}
?>
Тимур Крылов
сегодня, 01:37:04

 

Дело в том что при получение письма на почту (само письмо в другом файле) там же я указал текст и <?php echo $restorelink ?>, а оно при это присылает мне или же 0 или же пару цифр из базы данных, то есть если у меня в базе данных в таблице user и в user_restore_key генерируется пароль в md5 хеше, то в письме приходит лишь его часть (4 первых цифр или еще как либо) или вообще просто 0, то даже не в этом проблема, а в том что когда пытаешься вручную panel.1gamebox.ru/account/restore/complete/ключ из базы данных, выдает что не правильно.
Коротко: не отправляет ссылку, и если вручную подставлять все, выдает ошибку, которая прописана в коде. — «Указанный ключ восстановления неверный!»
<div class=«amap» id=«floor1» style=«width:1000px;height:539px;background-image:url(/products/image.php?object=layer&id=1&mode=full)»>
</div>

Не выполняется код PHP в тексте страницы. Но выполняются файлы *.php5. Почему?

Вопрос PHP. Сторонний сервер делает запрос HTTP GET на мой сайт. Как принять этот запрос что бы сайт его понимал и выводил?

Здравствуйте. меня интересует какая мощность сервера необходима для игр, и сколько будет стоить купить сервер или взять в аренду?? К примеру Flash игра ВКонтакте Фермер
Гость
13.07.09

Я создал свою программу на PHP Devel Studio. Мне необходимо запускать программу в определенное время, иначе программа бессмысленная. Я не имею в виду программы (планировщики), которые устанавливаются отдельно. Мне необходимо задать время запуска в самой ОС (можно скопировать какой-либо файл в какую-либо папку), либо непосредственно через программу DEVEL PHP, но вот куда внедрить код и какой он?

Вопрос задан анонимно
13.06.12
try{
include «libmail.php»;

foreach ($owner_email as $owner_email_item) {
$m= new Mail(«utf-8»);
$m->From($user_email);
$m->To($owner_email_item);
$m->Subject($subject);
$m->Body($message_body,$message_type);
//$m->log_on(true);

if(isset($_FILES['attachment'])){
if($_FILES['attachment']['size']>$max_file_size){
$error_text=$error_text_filesize. ' '. $max_file_size. 'bytes';
die($error_text);
}else{
if(preg_match($file_types,$_FILES['attachment']['name'])){
$m->Attach($_FILES['attachment']['tmp_name'],$_FILES['attachment']['name'],'','attachment');
}else{
$error_text=$error_text_filetype;
die($error_text);
}
}
}
if(!$use_smtp){
$m->smtp_on( $host, $username, $password, $port);
}

$m->Send();
}

die('success');

}catch(Exception $mail){
die($mail);
}

Здарствуйте не подскажете, Как массово заменить почти в одинаковых ссылках определенное слово? НАПРИМЕР: Вот ссылки 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Мне необходимо за место слово amateur, вставить слово exlent,(везде где написано amateur) но не вручную, а с помощью программы, или php скрипта, помогите пожалуйста

Как написать php код что бы заработало,html начало: 

<html><br />		<head><br />			<link rel="stylesheet" href="zzzz.css" type="text/css"> <br />		</head><br />		<body><br /><br />			<form method="POST" action="proba.php" name="igra"><br /><br />			<div id="pole"><br />				<div id="vopros">Зимой и летом одним цветом?<br />				</div><br />				<div id="kn"><br />					<div id="knopka"><input id="a" name="aa" onclick="otvet(this.value);" type="submit" value="ёлка" style="width:300px;height:40px;"></div><br />					<div id="knopka"><input id="b" onclick="otvet(this.value);" type="submit" value="кровь" style="width:300px;height:40px;"></div><br />					<div id="knopka"><input id="c" onclick="otvet(this.value);" type="submit" value="солнце" style="width:300px;height:40px;"></div><br />					<div id="knopka"><input id="d" onclick="otvet(this.value);" type="submit" value="небо" style="width:300px;height:40px;"></div><br />				</div><br />			</div><br />			</form><br />		</body><br />	</html>

рандомно выбрал эту тему) вопрос такой, что лучше изучать углубленно (ИТ)?
я учусь на 3м курсе по спец «програмный инжинер», но вижу, что всего не успеваю, не могу учить все предметы сразу и хорошо
подскажите, какая область ит самая перспективная? 

 в коде <input value="да" type="checkbox" />. при отмеченом чекбоксе посылает значение "да", при неотмеченом {check0}. Как быть чтобы при неотмеченом вообще ничего не отсылал. данные отсылаются с формы на почту

Гость
09.04.10

Пару недель как изучаю php

Пишу небольшой сайт с админкой,
написал данный код, пол дня уже мучаюсь не могу понять в чем дело.

function showContent(){
$pageAddr = $_GET['fullpage'];
global $link;
$sql = «SELECT id, href, title, short_post, content FROM `posts` ORDER BY id DESC»;//запрос всех новостей
$sqlpage = «SELECT id, href, title, short_post, content FROM posts WERE id=$pageAddr»;

$page = mysqli_query($link, $sqlpage);
$pages = mysqli_query($link, $sql);//получение всех новостей


//$page = mysqli_fetch_array($page, MYSQLI_ASSOC);

if(!isset($pageAddr)){

while($shortPage = mysqli_fetch_assoc($pages)){

include «templates\site\default\short-page.php»;
}

}elseif(isset($pageAddr)){


$Page = mysqli_fetch_assoc($page);
include «templates\site\default\page.php»;


}else{
include «templates\site\default\404.php»;
}
}

Здравствуйте. Ткните, где копать.В PHP делаю запрос в БД (MySQL), он возвращает результат, который я вывожу:--------------------------------------------$query = «select * from author;»;;res = mysql_query($query);while($row = mysql_fetch_array($res)) {echo "
".$row['surname'];}------------------------------------------Вопрос: можно ли как-то еще раз вывести результаты этого запроса? Повторное использование цикла с mysql_fetch_array не дает результатов, видимо надо обнулять какой-то счетчик?
Гость
22.01.09

Устанавливаю CMS Made Simple на WAMP сервер. При проверке настроек PHP выдаёт ошибку про error reporting, E_DEPRECATED должен быть отключен. Как его отключить? Из того что удалось найти в инете я понял только что это делается в файле php.ini. Но где он этот файл — я найти не могу.

Ткните носом в файл php.ini и в то место в нем где надо что-то изменить. 

Гость
26.08.11

Что нужно что бы сделать вход на компьютер по Touch Memory. ПК домашний

И чтобы при этом название файла, если кириллицей, автоматически переименовывалось в латиницу или цифры. Пользуемся формой от php, но потом невозможно выгрузить файлы с кириллич.названиями, они становятся «нечитабельными». И даже переименовать их нельзя.

Здравствуйте уважаемые эксперты! Может быть вопрос не корректный, но думаю суть вопроса ясна. Хотелось бы знать, как получить чужой хэш.

Может быть его можно вычислить с помощью сниффера?

И я знаю, что чуществуют программы и сайты по расшифровек хэшей.Не могли бы вы написать самые популярные.

Большое спасибо!

Добавляю в .htaccess следующее правило:RewriteRule ^p(.*)$ index.php\?p=$1Задумка следующая: преобразовать запрос видаexample.com/p123вexample.com/index.php?p=123В ответ выдает 404 страницу, говорит компонент не найден (CMS Joomla 1.5)Подскажите, плиз, что я делаю не так?
  • Здравствуйте! Дорогие Эксперты,

Нужна помощь в подключение моего проекта к системе оплаты UnitPay. Кто имеет опыт или уже сталкивался с подобной проблемой, прошу отписать здесь.

Здравствуйте, мне необходима консультация по созданию галереи Вконтакте в CMS Joomla. Мне не обязателен компонент, достаточно получать только те данные которые можно получить через VK API но с выводом результата текущем шаблоне, желательно с ЧПУ альбомов переведённых на латиницу. Т.е. панель администрирования и дизайн меня не интересуют, а интересует только сам код. p.s. сам код для получениясписка альбомов и фотографий из группы Вконтакте средствами VK API у меня есть.

Здравствуйте, очень нужна помощь!!! Не могу привязать PHP(4.4.9) к apache(2.0.65). Как только в файле httpd.conf прописываю LoadModule php4_module «C:/Program Files/Apache Group/Apache2/PHP/sapi/php4apache2.dll» апач перестает загружаться, выдает The requested operation has failed.

У меня есть сайт, писателя: evezsuleyman.net

Я этот сайт перевел — в сервере VPS поменял имя на: evezsuleyman.org и зарегестрировал домен. Все пашло нормально. Но скриншоты которые есть на статье, не видны. А когда кликаешь на них открывается.

Движок: Вордпресс

Шаблон: Liofolio

Потом, вернул обратно в evezsuleyman.net. Но опять не видно скриншот.
модулю 32767. Известно, что входная последовательность обязательно обладает таким свойством, что в ней можно указать пару элементов am и ak (m ≤ k) таких, что, если их поменять местами, то последовательность a станет возрастающей. Ваша программа должна найти, какие элементы следует переставить, чтобы последовательность стала возрастающей, и вывести их номера. Первым следует вывести меньший номер. Указание: Последовательность не должна храниться в памяти целиком. Допускается не более чем один проход по последовательности. Объём используемой памяти должен быть мал и не должен зависеть от длины последовательности. Ваша программа должна экономно расходовать память и не производить лишних действий и вычислений.
Я пользуюсь приложением Kate Mobile Pro — клиентом, позволяющим сидеть вконтакте вне статуса онлайн. То есть, мои друзья меня не могут «видеть», и так продолжалось довольно долгое время, пока мой любимый не научился обнаруживать моё нахождение вконтакте, а как, он объяснять отказался. По-скольку он сам не брузгует скрываться засчет Kate Mobile, мне важно тоже понять, как «палить» его нахождение. Искала в интернете — не нашла. Единственные подсказки, которые он мне дал — он воспользовался каим-то софтом с именем Rule, не предназначенным для подобных целей. Думаю, это связано с программированием. Посему, обращаюсь к вам. Помогите найти способ обнаруживать режим невидимки Kate Mobile. Спасибо.

создавал я лаунчер для minecraft(естественно по туториалу (а вот и он http://www.youtube.com/watch?v=Ey3iLUlEEc0 )) и столкнулся с ошибкой: «Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/u364520970/public_html/site/launcher.php on line 21Ошибка авторизации (Логин, пароль)»

вот часть от кода(часть отображается не правильно поэтому шлю файлhttp://rusfolder.com/37048017):

{<br />		$row = mysql_fetch_assoc(mysql_query("SELECT $db_table.$db_columnId,$db_table.$db_columnUser,$db_tableOther.$db_columnId,$db_tableOther.$db_columnPass FROM $db_table,$db_tableOther WHERE $db_table.$db_columnId = $db_tableOther.$db_columnId = $db_table.$db_columnUser='$login'"));<br />		$realPass = substr($row[$db_columnPass],22,64);<br />		$salt = substr($row[$db_columnPass],105,64);<br />	} else die("Ошибка: Неподдерживаемый способ шифровки"); $checkPass = $crypt();<br />	if(!strcmp($realPass,$checkPass) == 0 || !$realPass) die("Ошибка авторизации (Логин, пароль)");