Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пополнение счета на указанную сумму после оплаты, Php + webmoney 
V
    Опции темы
Cript777
  Дата 30.11.2012, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Приветствую! Кто знаком с данной технологией? страница оплаты счета 
Код

<? 
require('/gen_inc.php');  
require('/inc_bank.php'); 
 
?>
<html>
<body>
<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp" target="blank">
<input name="LMI_PAYMENT_AMOUNT" size="5" value="10" style=" border: 1px solid"> WMZ
<input type="hidden" name="LMI_PAYMENT_DESC" value="Пополнение счета <? echo $plyrname; ?>">
<input type="hidden" name="LMI_PAYEE_PURSE" value="<? echo $u_wmz=Z0000000000; ?>">
<input type=submit value="Оплатить">
</form>
<br><br>
<b>Ваш баланс</b>
<? echo money($winnings); ?>
</body>
</html>



inc_bank.php
Код

<? if($valid == false) header('Location: login.php'); $usr = (($plyrname != '')? $plyrname : addslashes($_POST['user']));
 $statsq = mysql_query("select * from ".DB_STATS." where player = '".$plyrname."' ");$statsr = mysql_fetch_array($statsq); 
$winnings = $statsr['winpot'];
?>



Пользователь сам указывает сколько ему надо оплатить. Нужно чтобы после оплаты, игровой счет пополнялся на указанную сумму!  smile 

Это сообщение отредактировал(а) Cript777 - 30.11.2012, 22:25
PM MAIL   Вверх
Arantir
Дата 30.11.2012, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Ох, е-мае... Даже не знаю, с чего начать объяснять =)
Если уж работать с деньгами, надо чуть-чуть серьезнее к этому относится.
Вопрос первый: вы читали вот это - http://wiki.webmoney.ru/projects/webmoney/...chant_Interface ?
Если нет - прочитайте. Если да - попробую разжевать все подробно =)

И еще... Вы настроили кошелек на прием платежей вот тут - https://merchant.webmoney.ru/conf/default.asp в разделе "Настройки"?

Это сообщение отредактировал(а) Arantir - 30.11.2012, 23:18


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Cript777
  Дата 30.11.2012, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Arantir @  30.11.2012,  23:15 Найти цитируемый пост)
Вопрос первый: вы читали вот это - http://wiki.webmoney.ru/projects/webmoney/...chant_Interface ?

Первым делом именно это читал, а нашел только... LMI_PAYMENT_AMOUNT
Цитата(Arantir @  30.11.2012,  23:15 Найти цитируемый пост)
И еще... Вы настроили кошелек на прием платежей вот тут - https://merchant.webmoney.ru/conf/default.asp в разделе "Настройки"?

Это тоже известно, но как понимаете еще нету самого rezult.php ..  

Это сообщение отредактировал(а) Cript777 - 1.12.2012, 00:12
PM MAIL   Вверх
Arantir
Дата 1.12.2012, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Отлично, что читали =)

Во-первых, добавьте в форму что-либо для идентификации пользователя. Например.поле для ввода ника, или, если у вас есть авторизация, то id автоматизированного пользователя. Что-либо, по чему вы определите, кто платил.
WebMoney в ответе вернет вам все ваши пользовательские поля в неизменном виде.

Далее создайте скрипт, на который WM отправляет ответ, ну т.е. result.php.
Во-вторых, чтобы деньги доверчивого пользователя при какой-то ошибке не ушли зря и он в вас не разочаровался, следует обеспечить обработку предварительного запроса. 

Код

if (isset($_POST['LMI_PREREQUEST']) && $_POST['LMI_PREREQUEST'] == 1) // Указывает на то, что это предварительный запрос
{
    $user = $_POST['user']; // user - поле из формы, которые вы отправили при создании платежа
    // здесь проверяем, существует ли такой пользователь и т.п. То есть, возможно ли осуществить такой платеж
    // при этом не следует пополнять счет пользователя - это только проверка
    if ($success) // предаоложим в $success у нас true если пользователь существует и может пополнять счет
        echo "YES"; // при успешном тестовом запросе он должен возвратить только слово "YES" и больше ничего. обязательно заглавными
    else
        echo "Пользователь не существует"; // пример ошибки, 
        // если ваш сервер возвратит не "YES", то эта строка будет показана пользователю в качестве ошибки при оплате счета.
}
Проверку обеспечили. Теперь вам как минимум не будут наяривать на счет ошибочных платежей. Помните, что даже в предварительном запросе вы получаете поля, такие как LMI_PAYEE_PURSE или LMI_SYS_INVS_NO и другие. Вы можете их использовать для разнообразных проверок, если вам это нужно.

Дальше надо отработать уже запрос, идущий после успешной оплаты. Важная часть - проверить корректность платежа через формирование и проверку подписи.
Код

if (isset($_POST['LMI_PREREQUEST']) && $_POST['LMI_PREREQUEST'] == 1)
{
    // ...
}
else // не было указания на то. что это предварительный запрос
{
    // обратите внимание, что вы должны получить все нижеследующие поля: 
    $LMI_PAYEE_PURSE = $_POST['LMI_PAYEE_PURSE'];
    $LMI_PAYMENT_AMOUNT = $_POST['LMI_PAYMENT_AMOUNT'];
    $LMI_PAYMENT_NO = $_POST['LMI_PAYMENT_NO'];
    $LMI_MODE = $_POST['LMI_MODE'];
    $LMI_SYS_INVS_NO = $_POST['LMI_SYS_INVS_NO'];
    $LMI_SYS_TRANS_NO = $_POST['LMI_SYS_TRANS_NO'];
    $LMI_SYS_TRANS_DATE = $_POST['LMI_SYS_TRANS_DATE'];
    $LMI_PAYER_PURSE = $_POST['LMI_PAYER_PURSE'];
    $LMI_PAYER_WM = $_POST['LMI_PAYER_WM']; 
    // заносить их в переменные не обязательно, сделал просто для удобства

    //обратие внимание на порядок склеивания значений, он обязателен:
    $SIGN  = $LMI_PAYEE_PURSE;
    $SIGN .= $LMI_PAYMENT_AMOUNT;
    $SIGN .= $LMI_PAYMENT_NO;
    $SIGN .= $LMI_MODE;
    $SIGN .= $LMI_SYS_INVS_NO;
    $SIGN .= $LMI_SYS_TRANS_NO;
    $SIGN .= $LMI_SYS_TRANS_DATE;
    $SIGN .= "ABCD1234"; // Ваш секретный ключ! 
    $SIGN .= $LMI_PAYER_PURSE;
    $SIGN .= $LMI_PAYER_WM;
    $SIGN = strtoupper(md5($SIGN)); // наша подпись

    if ($ASSIGN == $_POST['LMI_HASH']) // сверяем нашу подпись и полученную
    {
        //все ОК. можно пополнять счет
        $user = $_POST['user'];  // поле с именем user мы отправили ранее в самой форме платежа.
        $money = $LMI_PAYMENT_AMOUNT * 10; // предположим, у нас 10 ваших у.е. за доллар. не забудьте использовать свои значения, в соответствии со своими тарифами. можно и 1 к 1 делать.
        // теперь у нас есть $user и $money
        // делаем запрос в базу данных и добавляем пользователю $user на его счет $money денег
    }
    else
    {
        // ай-я-я-й, кто-то попробовал смухлевать..
        exit(); // конечно же, в этом случае никто ничего не получит.
    }
}


Третье: Если вы принимаете платежи на кошельки разных валют, то вы можете использовать поле LMI_PAYEE_PURSE для определения валюты оплаты. Например, у вас 1 ваш виртуальный доллар стоит 1 USD или же 35 руб.
Код

switch ($_POST['LMI_PAYEE_PURSE'][0]) // первый символ номера кошелька указывает нам на его валюту
{
    case "Z": // долларовый кошелек
        $money = $_POST['LMI_PAYEE_PURSE']; // курс 1 к 1
        break;
    case "R": // рублевый кошелек
        $money = $_POST['LMI_PAYEE_PURSE'] / 35; // по 1 ваш у.е. за каждые 35 руб.
        break;
}


Для простой обработки платежа это, собственно, все.

Так же рекомендую выполнить все следующие проверки, рекомендуемые WM:
Цитата
  • Проверить, действительно ли данные переданы от сервиса Web Merchant Interface (Проверка источника данных)
  • Проверить, не исказились ли данные в процессе передачи (Проверка целостности данных)
  • Проверить сумму платежа
  • Проверить кошелек продавца
  • Проверить режим проведения платежа (тестовый или реальный)

1. Сверьте значение из PHP - $_SERVER['REMOTE_ADDR'] и эти IP - http://wiki.webmoney.ru/projects/webmoney/...%D1%81%D0%B0_WM
2. Проверку подписи мы уже обеспечили выше
3. Сумма должны быть больше ноля и в разумных пределах (обратите внимание на лимиты на странице настройки кошельков).
4. Номер в поле LMI_PAYEE_PURSE должен номером быть вашего кошелька.
5. LMI_MODE должен быть равен нулю. Если же это поле равно единице - магазин работает в тестовом режиме и деньги с плательщика не были сняты.

Это сообщение отредактировал(а) Arantir - 1.12.2012, 01:02


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Cript777
Дата 1.12.2012, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Arantir @  1.12.2012,  00:45 Найти цитируемый пост)
о-первых, добавьте в форму что-либо для идентификации пользователя.

а так не подойдет? <input type="hidden" name="LMI_PAYMENT_DESC" value="Пополнение счета <? echo $plyrname; ?>"> 
и в итоге будет  $user = $plyrname;
PM MAIL   Вверх
Arantir
Дата 1.12.2012, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(Cript777 @ 1.12.2012,  00:30)
а так не подойдет? <input type="hidden" name="LMI_PAYMENT_DESC" value="Пополнение счета <? echo $plyrname; ?>"> 
и в итоге будет  $user = $plyrname;

Ну так в этом случае вам придется вырезать имя пользователя из строки "Пополнение счета имя_пользователя".
А если добавить еще одно поле, содержащее только имя пользователя, то, во-первых, ничего не надо ниоткуда вырезать, во-вторых, обработка платежа не накроется медным тазом при изменении примечания (LMI_PAYMENT_DESC) на какое-то другое =)

WebMoney - одна из немногих систем, где можно в форме отправить пользовательские поля и они вам вернутся. Как не воспользоваться таким удобством =)

Это сообщение отредактировал(а) Arantir - 1.12.2012, 01:52


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Cript777
Дата 1.12.2012, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Arantir @  1.12.2012,  01:50 Найти цитируемый пост)
WebMoney - одна из немногих систем, где можно в форме отправить пользовательские поля и они вам вернутся. Как не воспользоваться таким удобством =)

Можно взглянуть на пример формы?   smile 

таблица stats колонки player и winpot, такой запрос будет верным?
Код

mysql_query("update stats set winpot=winpot+'$money' where player='$plyrname'");


Это сообщение отредактировал(а) Cript777 - 1.12.2012, 02:17
PM MAIL   Вверх
Arantir
Дата 1.12.2012, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(Cript777 @  1.12.2012,  01:08 Найти цитируемый пост)
Можно взглянуть на пример формы?   smile 

Не понимаю, что может быть непонятного...
Код

<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp" target="blank">
<input name="LMI_PAYMENT_AMOUNT" size="5" value="10" style=" border: 1px solid"> WMZ
<input type="hidden" name="LMI_PAYMENT_DESC" value="Пополнение счета <? echo $plyrname; ?>">
<input type="hidden" name="LMI_PAYEE_PURSE" value="<? echo $u_wmz=Z0000000000; ?>">
<input type="hidden" name="USER" value="<? echo $plyrname; ?>">
<input type=submit value="Оплатить">
</form>
Отправляете любое поле без "LMI_" (например, USER) на WebMoney. В result.php WebMoney вернет вам точно такое же поле с тем же значением. $_POST['USER'] == $plyrname.


Цитата(Cript777 @  1.12.2012,  01:08 Найти цитируемый пост)
таблица stats колонки player и winpot, такой запрос будет верным?

Зависит от того, как у вас тип данных поля winpot.
В SQL-запросах при операциях с числами (математических операциях) для текстовых (строчных, знаковых) полей значения надо указывать без кавычек. Иначе вы просто сольете 2 строки.
Если filed - varchar и равно '50', а вы сделаете filed = filed + '50', то в итоге получите "5050". Но если сделать filed = filed + 50, то получите "100".
Если filed - int, то не имеет значения. Все операции для числовых полей будут выполнятся как для чисел.

Это сообщение отредактировал(а) Arantir - 1.12.2012, 03:04


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Cript777
Дата 1.12.2012, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Arantir @  1.12.2012,  03:02 Найти цитируемый пост)
Зависит от того, как у вас тип данных поля winpot.
В SQL-запросах при операциях с числами (математических операциях) для текстовых (строчных, знаковых) полей значения надо указывать без кавычек. Иначе вы просто сольете 2 строки.
Если filed - varchar и равно '50', а вы сделаете filed = filed + '50', то в итоге получите "5050". Но если сделать filed = filed + 50, то получите "100".
Если filed - int, то не имеет значения. Все операции для числовых полей будут выполнятся как для чисел.

Да , без кавычек верно, в отдельном файле запрос сработал. Но вот в result.php не функционирует.. что я мог не так сделать? 

форма
Код

<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp" target="blank">
    <input name="LMI_PAYMENT_AMOUNT" size="5" value="10" style=" border: 1px solid"> WMZ
    <input type="hidden" name="LMI_PAYMENT_DESC" value="Пополнение счета <? echo $plyrname; ?>">
<input type="hidden" name="LMI_PAYEE_PURSE" value="<? echo $u_wmz=Z149398739935; ?>">
<input type="hidden" name="user" value="<? echo $plyrname; ?>">
<input type=submit value="Оплатить">
</form>

result.php
Код

<?
if (isset($_POST['LMI_PREREQUEST']) && $_POST['LMI_PREREQUEST'] == 1) 
{
    $user = $_POST['user']; 
    if ($success) 
        echo "YES";  
    else
        echo "Пользователь не существует"; 
}

}
else 
{
  
    $LMI_PAYEE_PURSE = $_POST['LMI_PAYEE_PURSE'];
    $LMI_PAYMENT_AMOUNT = $_POST['LMI_PAYMENT_AMOUNT'];
    $LMI_PAYMENT_NO = $_POST['LMI_PAYMENT_NO'];
    $LMI_MODE = $_POST['LMI_MODE'];
    $LMI_SYS_INVS_NO = $_POST['LMI_SYS_INVS_NO'];
    $LMI_SYS_TRANS_NO = $_POST['LMI_SYS_TRANS_NO'];
    $LMI_SYS_TRANS_DATE = $_POST['LMI_SYS_TRANS_DATE'];
    $LMI_PAYER_PURSE = $_POST['LMI_PAYER_PURSE'];
    $LMI_PAYER_WM = $_POST['LMI_PAYER_WM']; 
   
    $SIGN  = $LMI_PAYEE_PURSE;
    $SIGN .= $LMI_PAYMENT_AMOUNT;
    $SIGN .= $LMI_PAYMENT_NO;
    $SIGN .= $LMI_MODE;
    $SIGN .= $LMI_SYS_INVS_NO;
    $SIGN .= $LMI_SYS_TRANS_NO;
    $SIGN .= $LMI_SYS_TRANS_DATE;
    $SIGN .= "skey"; // Ваш секретный ключ! 
    $SIGN .= $LMI_PAYER_PURSE;
    $SIGN .= $LMI_PAYER_WM;
    $SIGN = strtoupper(md5($SIGN)); 
    if ($ASSIGN == $_POST['LMI_HASH']) 
    {
       
        $user = $_POST['user'];  
        $money = $LMI_PAYMENT_AMOUNT * 10;
        
mysql_query("update stats set winpot=winpot+$money where player='$plyrname'");



    }
    else
    {
        // ай-я-я-й, кто-то попробовал смухлевать..
        exit(); 
    }
}

?>


Это сообщение отредактировал(а) Cript777 - 1.12.2012, 04:09
PM MAIL   Вверх
Arantir
Дата 1.12.2012, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



А вы комментарии перед копированием кода читали?
Я же не мог сходу вам написать полностью рабочий код. Я ж не экстрасенс. Вы как минимум должны были добавить в код запрос в БД с проверкой на существование пользователя и правильно сформировать под него условие для возврата YES.
И у вас первый "if" два раза закрыт скобочкой "}". И у вас нет подключения к БД в result.php, хотя вы там делаете запрос.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Cript777
Дата 1.12.2012, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Arantir @  1.12.2012,  07:22 Найти цитируемый пост)
 И у вас нет подключения к БД в result.php, хотя вы там делаете запрос. 

вот это и хотел узнать.. ) 
в начале файла добавляю 
Код

<? 
require('/gen_inc.php');  //подключение к бд
require('/inc_myplayer.php');  //пользователи
?>
...
...
mysql_query("update stats set winpot='$winnings'+'$money' where player='$plyrname'"); //верный запрос


скрипт функционирует: открываю result.php обновляю страницу - все ок (устанавливаю параметру $money значение, например 2000), но если провести оплату (в моем случае тестовый платеж в 0.01 wmz ) ничего не обновляет.. 

sql запрос при создании stats
Код

`winpot` int(20) default '0',



Цитата(Arantir @  1.12.2012,  07:22 Найти цитируемый пост)
Вы как минимум должны были добавить в код запрос в БД с проверкой на существование пользователя и правильно сформировать под него условие для возврата YES.


вот тут так и не разобрался, но влияет ли это. ? 

Это сообщение отредактировал(а) Cript777 - 1.12.2012, 17:52
PM MAIL   Вверх
MoLeX
Дата 1.12.2012, 16:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



 smile 
и потом еще удивляются как сайты ломают. если не могут разобраться в базовых вещах и с наскока берутся за платежные системы


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Cript777
  Дата 1.12.2012, 17:03 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



MoLeX, ну меня Вы точно не удивите.. Вы лучше с наскока не беритесь отвечать, а то много таких "всезнающих", а в итоге гроша не стоят... 
и ваш сайт взломаем))  smile 

Это сообщение отредактировал(а) Cript777 - 1.12.2012, 17:16
PM MAIL   Вверх
Arantir
Дата 1.12.2012, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(Cript777 @  1.12.2012,  15:17 Найти цитируемый пост)
вот тут так и не разобрался, но влияет ли это. ? 

Это уже лично ваше дело, делать эти проверки или нет. Я всего лишь хотел показать, в каком месте вы можете добавлять разнообразные проверки на корректность платежа.
Если у вас имя пользователя берется из текущего авторизированного пользователя, то, очевидно, оно уже заведомо правильное и существующее.
Тогда можете просто возвращать YES для любого предварительного запроса:
Код

if (isset($_POST['LMI_PREREQUEST']) && $_POST['LMI_PREREQUEST'] == 1) 
{
    echo "YES";  
}
Или снять галочку на предварительный запрос в настройках кошелька.


Цитата(Cript777 @  1.12.2012,  15:17 Найти цитируемый пост)
но если провести оплату (в моем случае тестовый платеж в 0.01 wmz ) ничего не обновляет.. 
В настройках кошелька у вас ссылка на result.php правильная?

Это сообщение отредактировал(а) Arantir - 1.12.2012, 17:58


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Cript777
  Дата 1.12.2012, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Arantir @  1.12.2012,  17:58 Найти цитируемый пост)
В настройках кошелька у вас ссылка на result.php правильная?

разумеется правильная! отдельно файл result.php добавляет значение денег пользователю, но через форму оплаты никак! что может на это влиять..? 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.