Эта ошибка означает, что в файле index.php есть вывод до того, как используется функция session_start();
Я пользуюсь этой функцией для транслита, может тебе подойдет PHP: function totranslit($text, $decode = true) { $rus_b = array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я'); $eng_b = array('A', 'B', 'V', 'G', 'D', 'E', 'E', 'ZH', 'Z', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'TS', 'CH', 'SH', 'SCH', '', 'Y', '', 'E', 'YU', 'YA'); $rus_s = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я',); $eng_s = array('a', 'b', 'v', 'g', 'd', 'e', 'e', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'ts', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'yu', 'ya'); if ($decode) { $text = str_replace($rus_b, $eng_b, $text); $text = str_replace($rus_s, $eng_s, $text); } else { $text = str_replace($eng_b, $rus_b, $text); $text = str_replace($eng_s, $rus_s, $text); } return $text; }
кстате у тя он тоже с косяком как и у меня попробуй прописать totranslit("vasya", false) будет не Вася а Васыа
Держи.. только не проверял как работает PHP: function totranslit($text) { $rus_s_2 = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э'); $eng_s_2 = array('a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '', 'y', '', 'e'); $rus_s_1 = array('ж','ц', 'ч', 'ш', 'ю', 'я',); $eng_s_1 = array('zh','ts', 'ch','sh','yu', 'ya'); $rus_s_0 = array('щ'); $eng_s_0 = array('sch'); $text = str_replace($eng_s_0, $rus_s_0, $text); $text = str_replace($eng_s_1, $rus_s_1, $text); $text = str_replace($eng_s_2, $rus_s_2, $text); return $text; } или вот так PHP: function totranslit($text) { $rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э'); $eng_s = array('sch','zh','ts', 'ch','sh','yu', 'ya','a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '', 'y', '', 'e'); $text = str_replace($eng_s, $rus_s, $text); return $text; }
код сиситемы аунтификации PHP: <?php session_start(); $url = getenv("HTTP_REFERER"); $err = "<center><font color=#ff0000><p>Ошибка авторизации!<br> Неверный логин или пароль</font></center></p>"; function showForm() { echo "<p align='center'>Только для зарегистрированных пользователей!</p> <p align='center'>Вам нужно авторизоваться или <a href='self.php'>зарегистрироваться</a>, это не займёт у Вас много времени.</p> <center> <form action='{$_SERVER['PHP_SELF']}' method='post'> <table border='0'> <tr> <td>Логин</td> <td><input type='text' size='20' name='login' /></td> </tr> <tr> <td>Пароль</td> <td><input type='password' size='20' name='pass' /></td> </tr> </table> <input type='submit' name='submit' value='Авторизоваться'> </form> </td> </tr> </table> </div> </td> </tr> </table> </center>"; } function compare_log($log,$pass,$aut_log,$aut_pass) { $val = false; if(($log === $aut_log) && (md5($pass) === $aut_pass)) $val = true; return $val; } if(isset($_POST['submit'])) { if((!eregi("^[_.0-9a-z-]{2,15}$", $_POST['login'])) or (!eregi("^[_.0-9a-z-]{6,15}$", $_POST['pass']))) { echo $err; showForm(); exit; } else{ include "config.php"; $query = "(SELECT * FROM regy)"; $result = mysql_query($query); while($aut = mysql_fetch_array($result)) if(compare_log($_POST['login'],$_POST['pass'],$aut['login'],$aut['pass'])) { $_SESSION["auth_username"] = $aut['pass']; header("Location: $url"); exit; } if(!compare_log($_POST['login'],$_POST['pass'],$aut['login'],$aut['pass'])) { echo $err; showForm(); exit; } } } if (!isset($_SESSION["auth_username"])) { showForm(); exit; } ?> вроде бы все правильно...компится..но не работает посмотрите пожалуйста в чем ошибка
$query = "(SELECT * FROM `regy`)"; поставь апострофы иногда бывают из-за этого траблы, а если честно мне лениво весь код проверять
Такое как: header(); session_start(); setcookie(); Надо добавлять перед выводом на экран чего либо... Если ставишь echo или print или до <?php уже был вывод, то заголовок ака header (А куки и сессия именно там) уже формирован и не может быть добавлен...
cURL proxy: PHP: <?php $curl = curl_init('http://www.antichat.ru/index.php'); curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:3003); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $page = curl_exec($curl); curl_close($curl); ?>
Народ, подскажите, пожалуйста, вот есть файл с кучей строк, можно как-нибудь сделать так, что бы после обработки этого файла скриптом, оставались только последние 28 символов, а все предидущие удалялись?
Кельт, 28 символов от каждой строки? Если да, то юзай такой код. PHP: <?php $file = file_get_contents('file.txt'); $new_file = ''; foreach(explode("\n", $file) as $str) { $new_file .= substr($str, 27)."\n"; } $file = fopen('new_file.txt', 'w'); fwrite($file, $new_file); fclose($file); ?> file.txt - файл с твоими строками, new_file.txt - обработанный файл. Права на файл new_file.txt должны быть 0777.
Если нет, то такой: PHP: <?php $file = file_get_contents('file.txt'); $new_file = substr($file, -28); $file = fopen('new_file.txt', 'w+'); fwrite($file, $new_file); fclose($file); ?>
Надо создать файл для последующего корректного использования в mysql> LOAD DATA INFILE "data.txt" INTO TABLE my_table; Вообщем столбцы должны быть разделены символом табуляции (0х09), но надо ли заключать сами данные в кавычки и в какие, одинарные или двойные? PHP: $string=$pass.chr(9).$code1.chr(9).$code2.chr(9).$code3.chr(9).$code4.'\n'; Дело в том что строковые переменные $code1-4 могут содержать спецсимволы (в том числе и символ табуляции и кавычки). Ввобщем как быть? Добавить экранирование спецсимволов в $code1-4? Или создать свой формат и потом использовать опции функции LOAD DATA INFILE Code: [FIELDS [TERMINATED BY '\t'] [[OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '\\' ] ] [LINES TERMINATED BY '\n']
-=lebed=-=, при записи делать $str = str_replace("\t", " ", $str); Кавычки при записи экранировать, при выводе - stripslashes И еще \n должен быть в двойных кавычках, а не одинарных
NOmeR1, да в каждой строке =) но твой скрипт удаляет первые 28 символов, а мне надо что бы оставались именно последние 28 =( ага, просто заменил: PHP: $new_file .= substr($str, 27)."\n"; на PHP: $new_file .= substr($str, -29)."\n"; и все получилось лучше некуда =) спасибо =)
-=lebed=-, данные не надо заключать не в какие кавычки, более того если ты их заключишь в кавычки, то и кавычки запишутся в поле данных (вместе с данными), переменные $code1-4 советую парсить на предмет табуляции до занесения в файл (например с помощью str_replace) т.к. наличие лишней табуляции нарушит структуру вносимых данных, т.е. LOAD DATA INFILE равномерно заносит из файла данные, которые начинаются от начала строки, далее находятся между табуляциями и до конца строки (конечно если использовать опции LOAD DATA INFILE поумолчанию, причем опции по умолчанию ты привел в своем посте) ну вот как то так, если ты ничего не понял (мой косяк) то стучи в осику, знаю как помочь
<?php $file = file('file.txt'); for($i=0;$i<count($file):$i++) { $site="http://microsoft.com"; include("$site"."$file[$i]"); } ?> Почему добавляет в при инклуде в конец урла __ (подчеркивание) ?