<?php //if(!defined("INSIDE")){ die("attemp hacking");} ///если константа INSIDE не существует завершаем работу скрипта и выводим "attemp hacking" $admin_login="admi6"; ///админ данные $admin_pass="aw24276";
$img_server="http://localhost/img"; //путь для картинок $now = time();
$link=mysql_pconnect("localhost","root","1"); //подключение к бд mysql_select_db("baza1",$link) or die ("Ошибка соединения с БД!"); ///тестируем подключение к бд mysql_query("SET CHARSET cp1251"); ///определяем кодировку для работы с СУБД mysql
$uri=GetEnv("REQUEST_URI"); ///получаем ремот урл $uri=explode("localhost",$uri); ///строковая функция, получает список данных и разделяет их
Сообщение отредактировал cougraAcc - Понедельник, 27 Декабря 2010, 19:17
Guap6512, Моя версия будет позднее ещё не доделана:) ждите...
Добавлено (27.12.2010, 14:08) --------------------------------------------- firest, Чат реализовать очень легко: БД
Code
CREATE TABLE `messages` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` char(255) character SET utf8 NOT NULL, `text` text character SET utf8, PRIMARY KEY (`id`) );
chat.php
Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" media="screen" href="css.css" /> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#pac_form").submit(Send); // вешаем на форму с именем и сообщением событие которое срабатывает кодга нажата кнопка "Отправить" или "Enter" $("#pac_text").focus(); // по поле ввода сообщения ставим фокус setInterval("Load();", 2000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 миллисекунд) }); // Функция для отправки сообщения function Send() { // Выполняем запрос к серверу с помощью jquery ajax: $.post(адрес, {параметры запроса}, функция которая вызывается по завершению запроса) $.post("ajax.php", { act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать name: $("#pac_name").val(), // имя пользователя text: $("#pac_text").val() // сам текст сообщения }, Load ); // по завершению отправки вызываем функцию загрузки новых сообщений Load() $("#pac_text").val(""); // очистим поле ввода сообщения $("#pac_text").focus(); // и поставим на него фокус return false; // очень важно из Send() вернуть false. Если этого не сделать то произойдёт отправка нашей формы, те страница перезагрузится } var last_message_id = 0; // номер последнего сообщения, что получил пользователь var load_in_process = false; // можем ли мы выполнять сейчас загрузку сообщений. Сначала стоит false, что значит - да, можем // Функция для загрузки сообщений function Load() { // Проверяем можем ли мы загружать сообщения. Это сделано для того, чтобы мы не начали загрузку заново, если старая загрузка ещё не закончилась. if(!load_in_process) { load_in_process = true; // загрузка началась // отсылаем запрос серверу, который вернёт нам javascript $.post("ajax.php", { act: "load", // указываем на то что это загрузка сообщений last: last_message_id, // передаём номер последнего сообщения который получил пользователь в прошлую загрузку rand: (new Date()).getTime() }, function (result) { // в эту функцию в качестве параметра передаётся javascript код, который мы должны выполнить eval(result); // выполняем скрипт полученный от сервера $(".chat").scrollTop($(".chat").get(0).scrollHeight); // прокручиваем сообщения вниз load_in_process = false; // говорим что загрузка закончилась, можем теперь начать новую загрузку }); } } </script> <body> <div style="padding: 100px;"> <div class="chat r4"> <div id="chat_area"><!-- Сюда мы будем добавлять новые сообщения --></div> </div> <form id="pac_form" action=""> <table style="width: 100%;"> <tr> <td>Сообщение:</td> <td></td> </tr> <tr> <!-- Поле ввода имени --> <input type="hidden" id="pac_name" class="r4" value="<?php echo "{$usr[1]}"; ?>"> <td style="width: 80%;"><input type="text" id="pac_text" class="r4" value=""></td> <td><input type="submit" value="Отправить"></td> </tr> </table> </form> </div> </body> </html>
css
Code
* { margin: 0; padding: 0; } body { font: normal normal normal 16px "Trebuchet MS", Arial, Times; color: #000000; } .chat { height: 500px; overflow: auto; position: relative; text-align: left; border: solid #818181 1px; } .chat div { position: absolute; } .chat span { display: block; } input[type=text],textarea { width: 100%; font: normal normal normal 16px "Trebuchet MS", Arial, Times; border: solid #818181 1px; } .r4 { -moz-border-radius: 4px; -khtml-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
Ajax.php
Code
<?php // настройки для подключения к MySQl $config = array( 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'pacdb' );
// подключаемся к MySQL, если не вышло то выходим if( !mysql_connect($config['hostname'], $config['username'], $config['password']) ) { exit(); } // Выбираем базу данных, если не вышло то выходим if( !mysql_select_db($config['dbname']) ) { exit(); } mysql_query("SET NAMES 'utf8'"); // говорим MySQl'у то что мы будем работать с UTF-8
Header("Cache-Control: no-cache, must-revalidate"); // говорим браузеру что-бы он не кешировал эту страницу Header("Pragma: no-cache");
Header("Content-Type: text/javascript; charset=utf-8"); // говорим браузеру что это javascript в кодировке UTF-8
// проверяем есть ли переменная act (send или load), которая указываем нам что делать if( isset($_POST['act']) ) { // $_POST['act'] - существует switch ($_POST['act']) { case "send" : // если она равняется send, вызываем функцию Send() Send(); break; case "load" : // если она равняется load, вызываем функцию Load() Load(); break; default : // если ни тому и не другому - выходим exit(); } }
// Функция выполняем сохранение сообщения в базе данных function Send() { // тут мы получили две переменные переданные нашим java-скриптом при помощи ajax // это: $_POST['name'] - имя пользователя // и $_POST['text'] - сообщение
$name = substr($_POST['name'], 0, 200); // обрезаем до 200 символов $name = htmlspecialchars($name); // заменяем опасные теги (<h1>,<br>, и прочие) на безопасные $name = mysql_real_escape_string($name); // функция экранирует все спец-символы в unescaped_string , вследствие чего, её можно безопасно использовать в mysql_query()
$text = substr($_POST['text'], 0, 200); // обрезаем до 200 символов $text = htmlspecialchars($text); // заменяем опасные теги (<h1>,<br>, и прочие) на безопасные $text = mysql_real_escape_string($text); // функция экранирует все спец-символы в unescaped_string , вследствие чего, её можно безопасно использовать в mysql_query()
// добавляем новую запись в таблицу messages mysql_query("INSERT INTO messages (name,text) VALUES ('" . $name . "', '" . $text . "')"); }
// функция выполняем загрузку сообщений из базы данных и отправку их пользователю через ajax виде java-скрипта function Load() { // тут мы получили переменную переданную нашим java-скриптом при помощи ajax // это: $_POST['last'] - номер последнего сообщения которое загрузилось у пользователя
$last_message_id = intval($_POST['last']); // возвращает целое значение переменной
// выполняем запрос к базе данных для получения 10 сообщений последних сообщений с номером большим чем $last_message_id $query = mysql_query("SELECT * FROM messages WHERE ( id > $last_message_id ) ORDER BY id DESC LIMIT 10");
// проверяем есть ли какие-нибудь новые сообщения if( mysql_num_rows($query) > 0 ) { // начинаем формировать javascript который мы передадим клиенту $js = 'var chat = $("#chat_area");'; // получаем "указатель" на div, в который мы добавим новые сообщения
// следующий конструкцией мы получаем массив сообщений из нашего запроса $messages = array(); while ( $row = mysql_fetch_array($query) ) { $messages[] = $row; }
// записываем номер последнего сообщения // [0] - это вернёт нам первый элемент в массиве $messages, но так как мы выполнили запрос с параметром "DESC" (в обратном порядке), // то это получается номер последнего сообщения в базе данных $last_message_id = $messages[0]['id'];
// переворачиваем массив (теперь он в правильном порядке) $messages = array_reverse($messages);
// идём по всем элементам массива $messages foreach ( $messages as $value ) { // продолжаем формировать скрипт для отправки пользователю $js .= 'chat.append("<span>' . $value['name'] . '» ' . $value['text'] . '</span>");'; // добавить сообщние (<span>Имя » текст сообщения</span>) в наш div }
$js .= "last_message_id = $last_message_id;"; // запишем номер последнего полученного сообщения, что бы в следующий раз начать загрузку с этого сообщения
// отправляем полученный код пользователю, где он будет выполнен при помощи функции eval() echo $js; } } ?>
Потом или просто интегрируешь, или делаешь отдельной страницей, будут ошибки пиши. т.к. не проверял
1. Грамотность. Присутствует 2. Умение добавлять материалы.Умею, материалы именно на сайт не добавлял а на форуме вроде активно 3. Постоянство.Почти каждый день. 4. Регистрация на сайте более 2 месяца.Год 5. Не меньше 50 сообщений на форуме или в любом другом блоке.Имеются 6. Активное участие в обсуждениях.+ 7. Нет нарушений и замечаний (уровень на 0) А вот с этим проблема у меня 40% висит уже пол года, а как от них избавится не знаю 8. Положительная репутация.Имеется 9. Полное согласие с правилами форума и сайта. Согласен 10. Дружелюбность, уважительное отношение к участникам сообщества. Отсутствие конфликтов и противоречий. +
67boy, был бы тя рядом я б в тебя камень кинул! меняй ссылки и текст на код такого вида <a href="/reg"><img src="картинка" border="0"></a> где /reg это ссылка а картинка это путь к картинке и будет тебе счастье
На маил все организовано на флеш, хочешь также качай Macromedia Flash Pro учи AS и вперед, можно организовать на php, но об этом тебе расскажет дух всея сети google.com спроси у него "Скрипт игры в покер php"
"Неправомерный доступ к охраняемой законом компьютерной информации, то есть информации на машинном носителе, в электронно-вычислительной машине (ЭВМ), системе ЭВМ или их сети, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ или их сети, - наказывается штрафом в размере от двухсот до пятисот минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужденного за период от двух до пяти месяцев, либо исправительными работами на срок от шести месяцев до одного года, либо лишением свободы на срок до двух лет" Статья 272 УК РФ. Подумай...... оно того стоит?
BUDARHANAT, Я на методе тыка базовые знания по веб кодингу получал:))))) также ниче не знал, просто было интересно писал под 4й пхп, потом стал книжки читать... далее от процедурного перешел к ООП, потом вникал что же за зверь mvc архитектура и т.д. и т.п. а просто взять учебник и листать ничего интересного:) как программист говорю:)) дельфина до сих пор на 3 знаю
Добавлено (26.12.2010, 20:13) --------------------------------------------- 67boy, картинкой кнопку легко сделать <input type="image" src="submit.gif" border="0">
webstrict666, как удачно, а я свой уже закончил... но людям здесь ещё не до своего... многие учатся на готовых скриптах.. а потом лишь единицы берут и пишут с 0
Добавлено (26.12.2010, 19:35) --------------------------------------------- Кстати пост не в тему кто оживлял мертвые китайские mp4?) Я озадачен че мне дальше делать....
webstrict666, совет от меня юзайте php фреймворки большая часть работы исчезнет... людям нужно готовое чтоб на чем то учится, а ты великий программист, не учил что МЫ начинающие кодеры и нам php очень сложно понять а там игра о какая.... мнеб что нить попроще...
vladboss, но цена то будет выше:) простые вычисления предположим: месяц 60руб. значит год 60*12=720 руб. , знач 10ти летие 720*10=7200 мож. обсчитался по выш. мату 3:)
webstrict666, я? я ничего не хочу, то что я делаю это чисто хобби.. эти проекты я не собираюсь никуда выкладывать, создавать браузерки и т.д. мне это не надо... а это ты мне уже скидывал, а по поводу того что нет флеша это не "ВАУ" благо сейчас можно его хаменить