не это как-то не по-гиковски...я предлагаю как вариант...пропарсить инклудный файл, конструктором автостарта регуярками....сейачс напишу....посмотрим что получится=)
Это индусский код - передавать глоабльные переменные через подключаемый файл...... для каждого нового класса
1- не для каждого нового класса, а для экзампляров. 2- сейча напишу посмотрим что получится. просто использовать класс в качестве контейнера, это совершенно дико...не считая что это только частичное копирование данных...копипастом можно заниматься и так...ручками все коды собирать и нахер убрать php
ЭВРИКА! Ура! 2FireFenix,элементарно все оказалось! PHP: <?php class base { public $vars; function __construct() { require_once("vars.php"); $this->vars = $__VARS; print_r($this->vars); } } $base = new base; ?>
PHP: <? $method="POST"; $addr="/login.php"; //адрес относительно корня сервера, $target="127.0.0.1"; //ip адрес сервера, или прокси сервера, через который оправить запрос $targetport=80; //порт сервера или прокси $postvars="op=a_login_attempt&[email protected]&pass=zzzzzz&expire=0"; $len=strlen($postvars); $in= "$method $addr HTTP/1.1\r\n". "Host: vkontakte.ru\r\n". "User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2\r\n". "Accept: */*\r\n". "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n". "Accept-Encoding: gzip,deflate\r\n". "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n". "Keep-Alive: 300\r\n". "Connection: keep-alive\r\n". "Content-Length: $len\r\n\r\n". $postvars; echo $in; $socket = socket_create (AF_INET, SOCK_STREAM, 0); $result = socket_connect ($socket, $target, $targetport); socket_write($socket, $in, strlen($in)); $o=""; while ($out = socket_read ($socket, 2048)) { $o.=$out; } echo $o; ?> Однако при тесте показывает 404 страница хостера вместо ответа от сервера =( можно как-то проще сделать, а не через сокет?
так у вас адрес локальный, а хост в запросе порписан vkontakte.ru... можно через cURL PHP: $c = curl_init(); curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru/"); curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru/"); curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1"); curl_setopt($c, CURLOPT_HEADER, 1); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $body = curl_exec($c); curl_close($c); //это обычный гет PHP: $c = curl_init(); curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru"); curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru"); curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1"); curl_setopt($c, CURLOPT_HEADER, 1); curl_setopt($c, CURLOPT_POST, 1); curl_setopt($c, CURLOPT_POSTFIELDS, $post); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_COOKIE, $cookies); $body = curl_exec($c); curl_close($c); //это пост http://www.php.su/functions/?cat=curl здесь подробно описао какие ключи что значат. икак пользоваться... PHP: preg_match_all('|Set-Cookie: (.*);|U', $body, $results); $cookies = implode(';', $results[1]); регулярка для выдерания куков из пришедших хедеров
прописал в хост http://vkontakte.ru, выдает 400 Bad Request через curl для меня еще сложнее( но такой вариант тоже попробую, спс. с сокетами хочется до конца разобраться
тут написал функцию аунтификации и идентификации....подскажите возможно ли обойти данную аунтификацию. cоотвественно если да, то каким макаром. PHP: public function security($string,$i) { if ($i == 0) { ... } elseif ($i == 1) { ... } elseif ($i == 2) { ... } elseif ($i == 3) { $string = mysql_real_escape_string($string); } return $string; } } public function login($login,$pass) { $this->connect(); $login = strtolower($this->security($login,3)); $login = base64_encode($login); $pass = base64_encode($this->security($pass,3)); $result = $this->query("SELECT * FROM `users` WHERE `login`='".$login."' AND `pass`='".$pass."'"); if ($result && mysql_num_rows($result) > 0) { $ses = session_id(); if (preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) { $agent = $this->security($_SERVER['HTTP_USER_AGENT'],3); $referer = $this->security($_SERVER['HTTP_REFERER'],3); $forwarded = $this->security(getenv(HTTP_X_FORWARDED_FOR),3); $ip = $_SERVER["REMOTE_ADDR"]; $time = time() + (60*60*6); $result = $this->query("INSET INTO `login`(`hash`,`date_begin`,`date_end`,`login`,`ip`,`agent`,`referer`,`forwarded`) VALUES('".$ses."','".time()."','".$time."','".base64_decode($login)."','".$ip."','".$agent."','".$referer."','".$forwarded."')"); } } else { } $this->close(); } public function ident() { $this->connect(); $ses = session_id(); if (preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) { $result = $this->query("SELECT * FROM `login` WHERE `hash`='".$ses."' AND `ip`='".$_SERVER["REMOTE_ADDR"]."'"); if ($result && mysql_num_rows($result) > 0) { $row = mysql_fetch_array($result, MYSQL_ASSOC); if ($row['date_begin'] <= time() && $row['date_end'] >= time()) { return 1; } else { return 0; } } else { return 0; } } else { return 0; } $this->close(); }
честно говоря с сокетами плохо знаком, но вот cURL довольно хорошо знаю. примеры кода который скинул..это с рабочего движка.
=/...а чем не нравится mysql_real_escape_string через которую все пропускается...специально привел секьюрный метод...
суть вопроса) выполняется скрипт. вывод на страницу через echo. после этого надо перенаправить на другую страницу. Header("Location:") не катит. надо сделать тока средствами пхп. т.е. js тож не катит)
j0ker13 В разделе HEAD документа прописать Code: <meta http-equiv="refresh" content="задержка в секундах до редиректа; url=адрес для редиректа">
это не запланировано должно быть) т.е. если случилось событие то вывод текста и редирект. если не случилось продолжается выполнятся)
Какбы хеадер - это не средство пхп? ну тогда как сказано выше - PHP: echo '<meta http-equiv="refresh" content="задержка в секундах до редиректа; url=адрес для редиректа">';
как создать HTTP GET запрос ? пример: GET /path/file.html HTTP/1.0 как это работает? на форуме тут видел: "Сформируем вот такой вот запрос POST http://.... HTTP/1.0 или OPTIONS / HTTP/1.0" сформулировать понятно, а как его отправить?