RE: Вопросы по PHP (для новичков)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RE: Вопросы по PHP (для новичков) - 2009-11-22 06:37:25.766666
|
|
|
temirlan
Сообщений: 19
Оценки: 0
Присоединился: 2008-12-24 11:07:14.350000
|
quote:
ORIGINAL: phpdreamer переименовать их или засунуть в архив А методом Force download как-то можно реализовать?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-11-22 09:24:41.850000
|
|
|
phpdreamer
Сообщений: 119
Оценки: 0
Присоединился: 2009-07-19 00:46:59.216666
|
те файлы, которые браузер не может открыть - он скачивает… если пдф он может открыть, то чего он будет скачивать? архивируй
|
|
|
не надо ничего архивировать - 2009-11-22 11:00:03.206666
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
quote:
Как сделать, чтобы файлы с расширением .djvu и .pdf при нажатии на ссылку не открывались, а скачивались. в конфиг апача добавь AddType application/pdf .pdf
|
|
|
RE: не надо ничего архивировать - 2009-11-22 12:16:41.900000
|
|
|
MuTaToR
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-26 11:48:42.893333
|
а как можно из переменной "<a href="/?id=3908">название материала</a> <a href="/?id=2963">Название материала</a>" зделать чтоб было 3908,2963. Я знаю что это с помощью preg_match но как незнаю…
|
|
|
RE: не надо ничего архивировать - 2009-11-26 08:16:04.810000
|
|
|
Панда
Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
|
preg_match("/(\d+)/", '<a href="/?id=3908">название материала</a> <a href="/?id=2963">Название материала</a>', $matches); var_dump($matches);
|
|
|
RE: не надо ничего архивировать - 2009-11-26 17:50:20.520000
|
|
|
MuTaToR
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-26 11:48:42.893333
|
не, от обоим и $matches[0] и $matches[1] присваивает 3908
|
|
|
RE: не надо ничего архивировать - 2009-11-26 18:02:26.150000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
<pre>
<?php
$a = '<a href="/?id=3908">название материала</a> <a href="/?id=2963">
<a href="/?id=3909">название материала</a> <a href="/?id=2964">';
preg_match_all('|<a href="/\?id=(.*)">.*</a>.*<a href="/\?id=(.*)">|',$a,$b);
print_r ($b);
?>
</pre>
и посмотреть сорцы получившейся страницы
|
|
|
RE: не надо ничего архивировать - 2009-11-26 19:25:57.830000
|
|
|
MuTaToR
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-26 11:48:42.893333
|
quote:
ORIGINAL: Pashkela
<pre>
<?php
$a = '<a href="/?id=3908">название материала</a> <a href="/?id=2963">
<a href="/?id=3909">название материала</a> <a href="/?id=2964">';
preg_match_all('|<a href="/\?id=(.*)">.*</a>.*<a href="/\?id=(.*)">|',$a,$b);
print_r ($b);
?>
</pre>
и посмотреть сорцы получившейся страницы Спасибо большое
|
|
|
RE: не надо ничего архивировать - 2009-12-02 19:18:19.533333
|
|
|
FriLL
Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
|
Чтото я тупю с аяксом может обьяснит кто Например есть страница time.php с кодом <?php echo date('H:i:s'); ?> На странице out.php надо аяксом каждые 5 сек получать значение с time.php и выводить
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-03 07:06:06.450000
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
Народ помогите с phpMyAdmin В UBUNTU(про денвер мне не нужно!!!!) Дело вот в чём, не могу войти в админку, порылся на форумах - нарыл вот такой код для config.inc.php:
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'pass';
?>
или
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '21b95a0f90138767b0fd324e6be3457b';
?>
пишут что должно помоч, но не выходит… на экране появляется напдись:
Ошибка
Ответ MySQL:
#2002 - Сервер не отвечает (либо сокет локального MySQL-сервера некорректно настроен) изначально у меня вот такой код в config.inc.php: <?php
/**
* Please, do not edit this file. The configuration file for Debian
* is located in the /etc/phpmyadmin directory.
*/
// Load secret generated on postinst
include('/var/lib/phpmyadmin/blowfish_secret.inc.php');
// Load autoconf local config
include('/var/lib/phpmyadmin/config.inc.php');
// Load user's local config
include('/etc/phpmyadmin/config.inc.php');
// Set the default server if there is no defined
if (!isset($cfg['Servers'])) {
$cfg['Servers'][1]['host'] = 'localhost';
}
// Set the default values for $cfg['Servers'] entries
for ($i=1; (!empty($cfg['Servers'][$i]['host']) || (isset($cfg['Servers'][$i]['connect_type']) && $cfg['Servers'][$i]['connect_type'] == 'socket')); $i++) {
if (!isset($cfg['Servers'][$i]['auth_type'])) {
$cfg['Servers'][$i]['auth_type'] = 'cookie';
}
if (!isset($cfg['Servers'][$i]['host'])) {
$cfg['Servers'][$i]['host'] = 'localhost';
}
if (!isset($cfg['Servers'][$i]['connect_type'])) {
$cfg['Servers'][$i]['connect_type'] = 'tcp';
}
if (!isset($cfg['Servers'][$i]['compress'])) {
$cfg['Servers'][$i]['compress'] = false;
}
if (!isset($cfg['Servers'][$i]['extension'])) {
$cfg['Servers'][$i]['extension'] = 'mysql';
}
}
что МНЕ конкретно нужно дописать в этом файле или в файлах которые подключаются? пробовал разные варианты, но они приводят к неработоспособности config.inc.php
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-03 10:59:39.593333
|
|
|
Parano1d
Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
|
quote:
Ответ MySQL: #2002 - Сервер не отвечает (либо сокет локального MySQL-сервера некорректно настроен) ты mysql-сервер запустил?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-03 16:45:25.163333
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
В том то и фига что вроде бы всё запустил:
desktop:~$ sudo /etc/init.d/mysql start
* Starting MySQL database server mysqld [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.
desktop:~$ sudo /etc/init.d/apache2 start
* Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-03 17:02:46.193333
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
справился с проблемой одной командой в терминале: sudo mysqladmin -u root password ващ_пароль
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-03 22:15:22.913333
|
|
|
Myfun
Сообщений: 4
Оценки: 0
Присоединился: 2009-08-26 11:21:36.936666
|
Не подскажите где можно почитать про push-технологию средствами php… т.е. другими словами мне нужно, чтобы данные, которые поступают в базу данных сразу записывались в файл… постоянно рефрешить базу на наличие данных это не совсем то … вот слышал про такую технологию … погуглил … ничего особо толкового не нашел .. может подскажите какие то источники.. или хоть саму идею как это реализовать … а то я вроде как отдаленно понимаю, но еще не до конца, сформулировать даже для себя пока не могу последовательность действий … спасибо …
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-09 20:59:14.873333
|
|
|
xfizer
Сообщений: 39
Оценки: 0
Присоединился: 2009-01-08 21:46:14.423333
|
<?
function& okRss($url){
$data=join('',file($url));
$matchTitle='!<item>.*?<title>(.*?)<\/title>.*?<\/item>!is';
preg_match_all($matchTitle,$data,$title);
$rss['title']=$title[1];
$matchLink='!<item>.*?<link>(.*?)<\/link>.*?<\/item>!is';
preg_match_all($matchLink,$data,$link);
$rss['link']=$link[1];
return $rss;
}
$rss=okRss("http://pravda.ru/export.xml");
for($i=0; $i<4; $i++){
echo "<a style='text-decoration:none; color: #00ffff; float: left; font-size: 14px; ' href='{$rss ['link'][$i]}' target=_blank>{$rss['title'][$i]}</a><br>";
}
?> Как уменьшить строку, например до… 50 символов?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-10 14:05:49.376666
|
|
|
Papa James
Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
|
substr ($var, 0, 50)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-17 15:08:04.006666
|
|
|
zx16
Сообщений: 27
Оценки: 0
Присоединился: 2007-02-25 01:20:00.663333
|
здравствуйте, помогите лобстеру в теме php программирования, дайте скрипт, нужна страница с кнопкой и полем, в поле будет вводится код, и чтоб этот код после нажатия кнопки вбивался в поле, которое находится на другом сайте и соответственно нажималась кнопка ОК. это партнерка, следовательно на конечный сайт мы должны зайти с определенной ссылки))) коряво обьяснил, аж самому стыдно, могу и купить эту помощь, пишите 9шесть24999
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-19 14:52:26.786666
|
|
|
scsi.aka.api
Сообщений: 122
Оценки: 0
Присоединился: 2008-07-02 00:58:06.646666
|
помогите дописать скрипт
<html>
<head>
<title>Заголовок</title>
</head>
<body
<h1>Заголовок</h1>
<?
<FORM ACTION=\"$PHP_SELF\" METHOD =\"POST\">
<INPUT TYPE =\"TEXT\" SIZE=\"5\" VALUE=\"$id2\" NAME=\"id2\">
</FORM>"
?>
</font>
<?php
$id =$id2;
echo "<a href=http://site.ru/photo.php?act=open=$id>_______</a><br>";
echo "<a href=http://site.ru/video.php?id=$id>______</a><br>";
?>
<hr size="1" color="black">
</body>
</html>
чтобы то что ввели в форму ,подставилось в ссылки.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-19 20:10:00.993333
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
Как можно реализовать отправку сообщений на сайте??(типо как вконтакте и на других сайтах, чтоб было видно какие новые, какий прочтенные)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-19 20:13:12.346666
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
<html> <head> <title>Заголовок</title> </head> <body <h1>Заголовок</h1> <? <FORM ACTION=\"$PHP_SELF\" METHOD =\"POST\"> <INPUT TYPE =\"TEXT\" SIZE=\"5\" VALUE=\"$id2\" NAME=\"id2\"> </FORM>" ?> </font> <?php $id =$id2; echo "<a href=http://site.ru/photo.php?act=open=$id>_______</a><br>"; echo "<a href=http://site.ru/video.php?id=$id>______</a><br>"; ?> <hr size="1" color="black"> </body> </html> Куча ошибок…. А вообще если я тебя понял то $_POST['переменная'] или $_GET['переменная']
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-19 20:28:30.260000
|
|
|
scsi.aka.api
Сообщений: 122
Оценки: 0
Присоединился: 2008-07-02 00:58:06.646666
|
Спасибо Korovka как я понял,ты выделил ошибки? я просто хотел написать все в одном файле.
echo "<a href=http://site.ru/photo.php?[color="#ff0000"]act=open=$id>_______</a><br[/color]>";
не совсем понял где тут ошибка? Можешь скрипт поправить?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-19 20:37:04.653333
|
|
|
scsi.aka.api
Сообщений: 122
Оценки: 0
Присоединился: 2008-07-02 00:58:06.646666
|
quote:
ORIGINAL: Korovka Как можно реализовать отправку сообщений на сайте??(типо как вконтакте и на других сайтах, чтоб было видно какие новые, какий прочтенные)
<?php
// Функция возвращает html формы для отправки личного сообщения
function getSendMsgForm()
{
// Незарегистрированный пользователь не может отправлять личные сообщения
if ( !isset( $_SESSION['user'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$html = '<h1>Личные сообщения</h1>'."\n";
$html = $html.getMessagesMenu();
$toUser = '';
if ( isset( $_GET['idUser'] ) ) {
$id = (int)$_GET['idUser'];
if ( $id > 0 ) {
$query = "SELECT name FROM ".TABLE_USERS." WHERE id_author=".$id;
$res = mysql_query( $query );
if ( $res ) {
if ( mysql_num_rows( $res ) > 0 ) $toUser = mysql_result( $res, 0, 0 );
}
}
}
$subject = '';
$message = '';
if ( isset( $_SESSION['viewMessage'] ) and !empty( $_SESSION['viewMessage']['message'] ) ) {
$view = file_get_contents( './templates/previewMessage.html' );
$view = str_replace( '{message}', print_page( $_SESSION['viewMessage']['message'] ), $view );
$html = $html.$view."\n";
$toUser = htmlspecialchars( $_SESSION['viewMessage']['toUser'] );
$subject = htmlspecialchars( $_SESSION['viewMessage']['subject'] );
$message = htmlspecialchars( $_SESSION['viewMessage']['message'] );
unset( $_SESSION['viewMessage'] );
}
$action = $_SERVER['PHP_SELF'].'?action=sendMessage';
// Если при заполнении формы были допущены ошибки
if ( isset( $_SESSION['sendMessageForm'] ) ) {
$info = file_get_contents( './templates/infoMessage.html' );
$info = str_replace( '{infoMessage}', $_SESSION['sendMessageForm']['error'], $info );
$html = $html.$info."\n";
$toUser = htmlspecialchars( $_SESSION['sendMessageForm']['toUser'] );
$subject = htmlspecialchars( $_SESSION['sendMessageForm']['subject'] );
$message = htmlspecialchars( $_SESSION['sendMessageForm']['message'] );
unset( $_SESSION['sendMessageForm'] );
}
$tpl = file_get_contents( './templates/sendMessageForm.html' );
$tpl = str_replace( '{action}', $action, $tpl );
$tpl = str_replace( '{toUser}', $toUser, $tpl );
$tpl = str_replace( '{subject}', $subject, $tpl );
$tpl = str_replace( '{message}', $message, $tpl );
$html = $html.$tpl;
return $html;
}
?> [/align] Обработчик формы — функция sendMessage():
<?php
// Отправка личного сообщения (добавляем новую запись в таблицу БД TABLE_MESSAGES)
function sendMessage()
{
// Незарегистрированный пользователь не может отправлять личные сообщения
if ( !isset( $_SESSION['user'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
// Если не переданы данные формы - функция вызвана по ошибке
if ( !isset( $_POST['toUser'] ) or
!isset( $_POST['subject'] ) or
!isset( $_POST['message'] ) )
{
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$msgLen = strlen( $_POST['message'] );
// Обрезаем переменные до длины, указанной в параметре maxlength тега input
$toUser = substr( $_POST['toUser'], 0, 30 );
$subject = substr( $_POST['subject'], 0, 60 );
$message = substr( $_POST['message'], 0, MAX_MESSAGE_LENGTH );
// Обрезаем лишние пробелы
$toUser = trim( $toUser );
$subject = trim( $subject );
$message = trim( $message );
// Если пользователь хочет посмотреть на сообщение перед отправкой
if ( isset( $_POST['viewMessage'] ) )
{
$_SESSION['viewMessage'] = array();
$_SESSION['viewMessage']['toUser'] = $toUser;
$_SESSION['viewMessage']['subject'] = $subject;
$_SESSION['viewMessage']['message'] = $message;
header( 'Location: '.$_SERVER['PHP_SELF'].'?action=sendMsgForm' );
die();
}
// Проверяем, заполнены ли обязательные поля
$error = '';
if ( empty( $toUser ) ) $error = $error.'<li>не заполнено поле "Для пользователя"</li>'."\n";
if ( empty( $subject ) ) $error = $error.'<li>не заполнено поле "Заголовок сообщения"</li>'."\n";
if ( empty( $message ) ) $error = $error.'<li>не заполнено поле "Текст сообщения"</li>'."\n";
if ( $msgLen > MAX_MESSAGE_LENGTH )
$error = $error.'<li>длина сообщения больше '.MAX_MESSAGE_LENGTH.' символов</li>'."\n";
// Проверяем поля формы на недопустимые символы
if ( !empty( $toUser ) and !preg_match( "#^[- _0-9a-zа-я]+$#i", $toUser ) )
$error = $error.'<li>поле "Для пользователя" содержит недопустимые символы</li>'."\n";
if ( !empty( $subject ) and !preg_match( "#^[-.;:,?!\/)(_\"\s0-9а-яa-z]+$#i", $subject ) )
$error = $error.'<li>поле "Заголовок сообщения" содержит недопустимые символы</li>'."\n";
// Проверяем, есть ли такой пользователь
if ( !empty( $toUser ) ) {
$to = preg_replace( "#[^- _0-9a-zа-я]#i", '', $toUser );
$query = "SELECT id_author FROM ".TABLE_USERS." WHERE name='".$to."' LIMIT 1";
$res = mysql_query( $query );
if ( !$res ) {
$msg = 'Произошла ошибка при отправке сообщения';
$err = 'Ошибка при выполнении запроса: <br/>'.
$query.'<br/>'.mysql_errno().':&nbsp;'.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true, 'action=sendMsgForm' );
}
if ( mysql_num_rows( $res ) == 0 )
$error = $error.'<li>пользователь с именем <strong>'.$to.'</strong> не зарегистрирован</li>'."\n";
if ( (mysql_num_rows( $res ) == 1 ) and (mysql_result( $res, 0, 0 ) == $_SESSION['user']['id_author']) )
$error = $error.'<li>нельзя послать сообщение самому себе</li>'."\n";
}
// Если были допущены ошибки при заполнении формы -
// перенаправляем посетителя для исправления ошибок
if ( !empty( $error ) )
{
$_SESSION['sendMessageForm'] = array();
$_SESSION['sendMessageForm']['error'] = '<p class="errorMsg">При заполнениии формы были допущены ошибки:</p>'.
"\n".'<ul class="errorMsg">'."\n".$error.'</ul>'."\n";
$_SESSION['sendMessageForm']['toUser'] = $toUser;
$_SESSION['sendMessageForm']['subject'] = $subject;
$_SESSION['sendMessageForm']['message'] = $message;
header( 'Location: '.$_SERVER['PHP_SELF'].'?action=sendMsgForm' );
die();
}
// Все поля заполнены правильно - "посылаем" сообщение
$to = mysql_result( $res, 0, 0 );
$from = $_SESSION['user']['id_author'];
$query = "INSERT INTO ".TABLE_MESSAGES."
VALUES
(
NULL,
".$to.",
".$from.",
NOW(),
'".mysql_real_escape_string( $subject )."',
'".mysql_real_escape_string( $message )."',
0,
0
)";
$res = mysql_query( $query );
if ( !$res ) {
$msg = 'Произошла ошибка при отправке сообщения';
$err = 'Ошибка при выполнении запроса: <br/>'.
$query.'<br/>'.mysql_errno().':&nbsp;'.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true, 'action=showOutBox' );
}
return showInfoMessage( 'Ваше сообщение успешно отправлено', 'action=showOutBox' );
}
?> [/align] Функция getInMsgBox() возвращает список личных сообщений в папке "Входящие":
<?php
// Папка личных сообщений (входящие)
function getInMsgBox()
{
if ( !isset( $_SESSION['user'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$html = '<h1>Личные сообщения (входящие)</h1>'."\n";
$html = $html.getMessagesMenu();
$html = $html.'<table class="showTable">'."\n";
$html = $html.'<tr>'."\n";
$html = $html.'<th width="2%">&nbsp;</th>'."\n";
$html = $html.'<th width="15%">Отправитель</th>'."\n";
$html = $html.'<th width="63%">Тема сообщения</th>'."\n";
$html = $html.'<th width="15%">Дата</th>'."\n";
$html = $html.'<th width="5%">Удл.</th>'."\n";
$html = $html.'</tr>'."\n";
// Запрос на выборку входящих сообщений
// id_rmv - это поле указывает на то, что это сообщение уже удалил
// один из пользователей. Т.е. сначала id_rmv=0, после того, как
// сообщение удалил один из пользователей, id_rmv=id_user. И только после
// того, как сообщение удалит второй пользователь, мы можем удалить
// запись в таблице БД TABLE_MESSAGES
$query = "SELECT a.id_msg, a.subject, a.from_user, a.sendtime, a.viewed, b.name
FROM ".TABLE_MESSAGES." a INNER JOIN ".TABLE_USERS." b
ON a.from_user=b.id_author
WHERE a.to_user=".$_SESSION['user']['id_author']."
AND id_rmv<>".$_SESSION['user']['id_author']."
ORDER BY sendtime DESC";
$res = mysql_query( $query );
while ( $msg = mysql_fetch_row( $res ) ) {
$html = $html.'<tr>'."\n";
// Если сообщение еще не прочитано
if ( $msg[4] == 0 )
$html = $html.'<td align="center" valign="middle"><img src="./images/folder_new.gif" width="19"
height="18" alt="" /></td>';
else
$html = $html.'<td align="center" valign="middle"><img src="./images/folder.gif" width="19"
height="18" alt="" /></td>';
$html = $html.'<td>'.$msg[5].'</td>'."\n";
$html = $html.'<td><a href="'.$_SERVER['PHP_SELF'].'?action=showMsg&idMsg='.
$msg[0].'">'.$msg[1].'</a></td>'."\n";
$html = $html.'<td>'.$msg[3].'</td>'."\n";
$html = $html.'<td align="center"><a href="'.$_SERVER['PHP_SELF'].
'?action=deleteMsg&idMsg='.$msg[0].'"><img src="./images/icon_delete.gif"
alt="Удалить" title="Удалить" border="0" /></a></td>'."\n";
$html = $html.'</tr>'."\n";
}
if ( mysql_num_rows( $res ) == 0 ) {
$html = $html.'<tr>'."\n";
$html = $html.'<td colspan="4">В этой папке нет сообщений</td>'."\n";
$html = $html.'</tr>'."\n";
}
$html = $html.'</table>'."\n";
return $html;
}
?> [/align] Функция getOutMsgBox() возвращает список личных сообщений в папке "Исходящие":
<?php
// Папка личных сообщений (исходящие)
function getOutMsgBox()
{
if ( !isset( $_SESSION['user'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$html = '<h1>Личные сообщения (исходящие)</h1>'."\n";
$html = $html.getMessagesMenu();
$html = $html.'<table class="showTable">'."\n";
$html = $html.'<tr>'."\n";
$html = $html.'<th width="15%">Получатель</th>'."\n";
$html = $html.'<th width="65%">Тема сообщения</th>'."\n";
$html = $html.'<th width="15%">Дата</th>'."\n";
$html = $html.'<th width="5%">Удл.</th>'."\n";
$html = $html.'</tr>'."\n";
// Запрос на выборку исходящих сообщений
// id_rmv - это поле указывает на то, что это сообщение уже удалил
// один из пользователей. Т.е. сначала id_rmv=0, после того, как
// сообщение удалил один из пользователей, id_rmv=id_user. И только после
// того, как сообщение удалит второй пользователь, мы можем удалить
// запись в таблице БД TABLE_MESSAGES
$query = "SELECT a.id_msg, a.subject, a.to_user, a.sendtime, b.name
FROM ".TABLE_MESSAGES." a INNER JOIN ".TABLE_USERS." b
ON a.to_user=b.id_author
WHERE a.from_user=".$_SESSION['user']['id_author']."
AND id_rmv<>".$_SESSION['user']['id_author']."
ORDER BY sendtime DESC";
$res = mysql_query( $query );
while ( $msg = mysql_fetch_row( $res ) ) {
$html = $html.'<tr>'."\n";
$html = $html.'<td>'.$msg[4].'</td>'."\n";
$html = $html.'<td><a href="'.$_SERVER['PHP_SELF'].'?action=showMsg&idMsg='.
$msg[0].'">'.$msg[1].'</a></td>'."\n";
$html = $html.'<td>'.$msg[3].'</td>'."\n";
$html = $html.'<td align="center"><a href="'.$_SERVER['PHP_SELF'].
'?action=deleteMsg&idMsg='.$msg[0].'"><img src="./images/icon_delete.gif"
alt="Удалить" title="Удалить" border="0" /></a></td>'."\n";
$html = $html.'</tr>'."\n";
}
if ( mysql_num_rows( $res ) == 0 ) {
$html = $html.'<tr>'."\n";
$html = $html.'<td colspan="4">В этой папке нет сообщений</td>'."\n";
$html = $html.'</tr>'."\n";
}
$html = $html.'</table>'."\n";
return $html;
}
?> [/align] Вспомогательная функция getMessagesMenu() возвращает html меню для раздела "Личные сообщения":
<?php
function getMessagesMenu()
{
$html = '<table width="100%">'."\n";
$html = $html.'<tr valign="middle">'."\n";
$html = $html.'<td><img src="./images/msg_inbox.gif" alt="Входящие" title="Входящие" /></td>'."\n";
$html = $html.'<td><a class="header" href="'.$_SERVER['PHP_SELF'].
'?action=showInBox">Входящие</a>&nbsp;&nbsp;</td>'."\n";
$html = $html.'<td><img src="./images/msg_outbox.gif" alt="Исходящие" title="Исходящие" /></td>'."\n";
$html = $html.'<td><a class="header" href="'.$_SERVER['PHP_SELF'].
'?action=showOutBox">Исходящие</a></td>'."\n";
$html = $html.'<td align="right" width="90%"><a href="'.$_SERVER['PHP_SELF'].
'?action=sendMsgForm"><img
src="./images/msg_newpost.gif" alt="Новое сообщение"
title="Новое сообщение" /></a></td>'."\n";
$html = $html.'</tr>'."\n";
$html = $html.'</table>'."\n";
return $html;
}
?> [/align] Для удаления личного сообщения надо вызвать функцию deleteMessage():
<?php
// Функция удаляет личное сообщение; ID сообщения передается методом GET
function deleteMessage()
{
if ( !isset( $_SESSION['user'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
if ( !isset( $_GET['idMsg'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$idMsg = (int)$_GET['idMsg'];
if ( $idMsg < 1 ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
// Далее мы должны выяснить, удаляется входящее или исходящее
// сообщение. Это нужно, чтобы сделать редирект на нужный ящик.
// В этом запросе дополнительное условие нужно для того, чтобы
// пользователь не смог удалить чужое сообщение, просто указав
// ID сообщения в адресной строке браузера
$query = "SELECT to_user, id_rmv
FROM ".TABLE_MESSAGES."
WHERE id_msg=".$idMsg." AND
(to_user=".$_SESSION['user']['id_author']." OR from_user=".$_SESSION['user']['id_author'].")";
$res = mysql_query( $query );
if ( mysql_num_rows( $res ) == 0 ) {
header( 'Location: '.$_SERVER['PHP_SELF'].'?action=showInBox' );
die();
}
list ( $toUser, $id_rmv ) = mysql_fetch_row( $res );
if ( $toUser == $_SESSION['user']['id_author'] )
$redirect = 'action=showInBox';
else
$redirect = 'action=showOutBox';
// id_rmv - это поле указывает на то, что это сообщение уже удалил
// один из пользователей. Т.е. сначала id_rmv=0, после того, как
// сообщение удалил один из пользователей, id_rmv=id_user. И только после
// того, как сообщение удалит второй пользователь, мы можем удалить
// запись в таблице БД TABLE_MESSAGES
if ( $id_rmv == 0 )
$query = "UPDATE ".TABLE_MESSAGES." SET id_rmv=".$_SESSION['user']['id_author']." WHERE id_msg=".$idMsg;
else
$query = "DELETE FROM ".TABLE_MESSAGES." WHERE id_msg=".$idMsg;
$res = mysql_query( $query );
if ( !$res ) {
$msg = 'Произошла ошибка при удалении сообщения';
$err = 'Ошибка при выполнении запроса: <br/>'.
$query.'<br/>'.mysql_errno().':&nbsp;'.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true, $redirect );
}
return showInfoMessage( 'Сообщение успешно удалено', $redirect );
}
?> [/align] Функция getMessage() возвращает личное сообщение для просмотра пользователем:
<?php
// Функция возвращает личное сообщение для просмотра пользователем
function getMessage()
{
if ( !isset( $_SESSION['user'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
if ( !isset( $_GET['idMsg'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$idMsg = (int)$_GET['idMsg'];
if ( $idMsg < 1 ) {
header( 'Location: '.$_SERVER['PHP_SELF'].'?action=showInBox' );
die();
}
// Получаем из БД информацию о сообщении.
// В этом запросе дополнительное условие нужно для того, чтобы
// пользователь не смог просмотреть чужое сообщение, просто указав
// ID сообщения в адресной строке браузера
$query = "SELECT a.to_user, a.from_user, a.subject, a.sendtime, a.m
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-19 21:21:05.296666
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
scsi.aka.api спасибо, но скрипт(который ты дал) очень не понятный для меня ВОПРОС ЕЩЕ АКТУАЛЬНЫЙ scsi.aka.api <hr size="1" color="black"> <html> <head> <title>Заголовок</title> </head> <body <h1>Заголовок</h1> <FORM ACTION="" METHOD="POST"> <INPUT TYPE ="TEXT" SIZE="5" VALUE="id2" NAME="id2"> <input type="submit" value="Получить"> </FORM> <?php $id = $_POST['id2']; echo "<a href=http://site.ru/photo.php?act=open=$id>Ссылка 1</a><br>"; echo "<a href=http://site.ru/video.php?id=$id>Ссылка 2</a><br>"; ?> <hr size="1" color="black"> </body> </html>
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 12:02:56.760000
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
Как можно реализовать отправку сообщений на сайте??(типо как вконтакте и на других сайтах, чтоб было видно какие новые, какий прочтенные)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 12:53:51.800000
|
|
|
Parano1d
Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
|
сделать в бд булевское поле прочитано/нет, при прочтении менять на "прочитано"
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 14:36:15.966666
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
Parano1d можешь, пожалуйста, помочь реализовать или дать пример кода??
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 15:54:51.820000
|
|
|
Parano1d
Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
|
// Получаем все сообщения в массив $messages, $message - отдельное сообщение, $message['text'] - текст сообщения, $message['read'] - прочитано или нет
// В цикле проходим по всем сообщениям и выводим их (я не знаю, как тебе точно надо, сам измени):
foreach ($messages as $message) {
echo $message['text'];
if ($message['read'])
echo ' (прочитано)';
else {
echo ' (не прочитано)';
// Обновляем бд, ставим статус сообщения "прочитано"
}
}
это просто пример… дальше сам додумывай, как тебе надо реализовать
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 16:47:52.823333
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
Parano1d спасибо, наверно всетаки, придется выдерать из какой-то CMS=) Если есть люди которые с этим встречались, то помогите, пожалуйста……
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 22:24:26.246666
|
|
|
Papa James
Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
|
Для начала посмотри работу с БД в PHP. Алгоритм написания такой примерно 1. Посылаем сообщение 2. Добавляем его в БД с помощью Insert. Вывод сообщений 1. Выбираем нужные сообщения с помощью Select. 2. Фильтруем прочитанные и непрочитанные сообщения. Например так, как вверху указано.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 22:39:20.810000
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
Unknown column 'admin' in 'field list' ——– что за ошибка, если admin я передаю через форму…….
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-20 22:53:45.606666
|
|
|
Korovka
Сообщений: 39
Оценки: 0
Присоединился: 2009-11-18 16:39:52.040000
|
Сори, разобрался;)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-24 13:48:23.863333
|
|
|
cyberx
Сообщений: 83
Оценки: 0
Присоединился: 2009-01-04 11:47:38.966666
|
у меня такая проблема с циклом. вот например с базы вытаскиваю фото quote:
$select_other_album = mysql_query("select * from album where user_id = '$id'",$db) or die ("Can't select result"); $selected_other_album = mysql_fetch_array($select_other_album); do { тут выводятся фото } while($selected_other_album = mysql_fetch_array($select_other_album)); теперь я хочу добавить к ним голосование. у меня в базу заносится все правильно, только результаты не могу вывести нормально. quote:
$select_other_album = mysql_query("select * from album where user_id = '$id'",$db) or die ("Can't select result"); $selected_other_album = mysql_fetch_array($select_other_album); do { $sel_chack = mysql_query("select * from vote where user_id = '$id' and my_id='$user_id'",$db) or die ("Can't select result"); $se_chack = mysql_fetch_array($sel_chack); if ($selected_other_album['img'] == $se_chack['img']) { $vote = $se_chack['rating']; } else { $vote = '0'; } тут выводятся фото,форма голосования и $vote } while($selected_other_album = mysql_fetch_array($select_other_album)); проблема в том что $vote только один раз присваивается значение, а мне надо чтоб там тоже в цикле выходило. может кто подскажет как вывести цикл в цикле? мне только это нужно, остальное работает
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-24 19:19:35.176666
|
|
|
Shtil
Сообщений: 255
Оценки: 0
Присоединился: 2009-09-29 00:20:19.120000
|
подскажите как сделать переадресацию в движке wap-engine4.2 там ешё есть какойто файл index.txt может там чё прописывать надо? и какой код подскажите чтоб там можно было поставить через сколько секунд переадресовывать
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-25 09:04:11.203333
|
|
|
Papa James
Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
|
htacces redirect
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-12-30 20:12:32.700000
|
|
|
Dark.Lord
Сообщений: 141
Оценки: 0
Присоединился: 2009-02-28 17:24:27.466666
|
quote:
htacces redirect Не везде стоит апач. Лучше Rewrite юзать.
|
|
|
RE: Вопросы по PHP (для новичков) - 2010-01-04 21:02:15.350000
|
|
|
Warezpage
Сообщений: 3
Оценки: 0
Присоединился: 2010-01-04 20:43:44.826666
|
Здесь вы найдете Проги статьи для хакеров и много другого http://warezpage.do.am Здесь вы найдете Проги статьи для хакеров и много другого http://warezpage.do.am Здесь вы найдете Проги статьи для хакеров и много другого http://warezpage.do.am Здесь вы найдете Проги статьи для хакеров и много другого http://warezpage.do.am Здесь вы найдете Проги статьи для хакеров и много другого http://warezpage.do.am Здесь вы найдете Проги статьи для хакеров и много другого http://warezpage.do.am
|
|
|
RE: Вопросы по PHP (для новичков) - 2010-01-10 09:34:56.150000
|
|
|
BigWheet
Сообщений: 1
Оценки: 0
Присоединился: 2010-01-10 09:27:42.683333
|
yiy uyioy
|
|
|
RE: Вопросы по PHP (для новичков) - 2010-01-11 00:35:58.816666
|
|
|
s0llo
Сообщений: 7
Оценки: 0
Присоединился: 2009-12-13 00:00:19.873333
|
в уроках от группы 9009 прочитал про sql injectin создал базу (все как написано) CREATE DATABASE site; USE site;
CREATE TABLE pages (
id INT NOT NULL AUTO_INCREMENT,
content TEXT,
PRIMARY KEY(id)
);
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name CHAR(32),
pass CHAR(32),
PRIMARY KEY(id)
);
INSERT INTO pages (content) VALUES ('Page number 1'),('Page number 2'),('Page number 3'),('Page number 4'),('Page number 5');
INSERT INTO users (name, pass) VALUES ('Vasya','22vasya22'),('Petya','qwerty'),('Alex','1234567'),('admin','fh&gfkTsu'),('Serega','sex'); создал php код! <?PHP
$server='localhost'; //имя сервера базы данных
$user='root'; //имя учетной записи, по которой будет осуществляться подключение
$pass='qwerty4'; //пароль для учетной записи
$dbname='test'; //имя базы данных
$link=mysql_connect($server, $user, $pass);
mysql_select_db($dbname, $link);
$sel_query="SELECT * FROM pages WHERE id=".$_GET[id];
$res=mysql_query($sel_query , $link);
$arr=mysql_fetch_assoc($res);
mysql_close($link);
echo $arr[content];
?> но вот проблемма с кодом… после того как я подключаюсь, у меня в браузере выводит ошибку Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\sql\index.php on line 11 даже не знаю вчем дело!!!! помогите кто может))
|
|
|
RE: Вопросы по PHP (для новичков) - 2010-01-11 02:00:16.383333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
так ты $_GET[id] задал в строке браузера? Или так и обращаешься к скрипту - http://localhost/denwer/test.php ?))) PS: http://localhost/denwer/test.php?id=1
|
|
|
|
|