|
PHP / MySQL Создание динамических Веб-ресурсов |
13.12.2011, 18:07
|
#1
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Вопрос-Ответ
Это тема типа "Вопрос-Ответ".
Никаких посторонних обсуждений, только вопросы и варианты их решения.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
13.12.2011, 18:07
|
#2
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Обсуждение мини-пособия для PHP
Осмелюсь задать ещё вопрос:
Как сохранить на сервер переменную? То-есть чтобы её значение сохранялось, даже если закрыть страницу и вызвать скрипт заново.
Допустим есть $count.
Хочется, чтобы при вызове PhP скрипта эта переменная увеличивалась на 1 и выводилась.
Что-то типа
<?php $count=$count+1; echo $count; ?>
В общем код работает, но каждый раз выводится 1 (не приращивается). Видимо, при вызове скрипта все переменные обнуляются.
Нужно использовать какую нибудь базу данных или можно сохранять данные, обходясь лишь чистым PhP?
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
13.12.2011, 18:56
|
#3
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Обсуждение мини-пособия для PHP
1. Записать в файл (просто)
2. Записать в MySQL-таблицу (сложно но более православно).
Примитивнейший пример записи в файл:
<?php $cnt = @file_get_contents('counter.txt'); $cnt++; file_put_contents('counter.txt', $cnt) ?>
<h1>Количество посещений: <?php echo $cnt ?></h1>
На *nix-системе следи, чтобы файлу counter.txt были выставлены права на запись.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.12.2011, 19:07
|
#4
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Обсуждение мини-пособия для PHP
Окей, спасибо. Но вот проблема.
Создаю на сервере файл file.txt.
Всё успешно записывается/читается (правда метод немного другой: $fp = fopen ("file.txt", "r");), автор радуется. Однако, любой желающий может просмотреть содержимого этого самого файла, просто вбив "такой-то_сайт/file.txt". Конечно, можно пошаманить насчет шифрования и прочего, но все-таки хочется, чтобы содержимое нельзя было даже открыть.
В директории сайта есть папка webstats, доступ к любому файлу в ней запаролен. Это неплохой вариант, но лучше сделать как-то грамотнее и правильнее. Не подскажете идею?
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
13.12.2011, 19:32
|
#5
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Обсуждение мини-пособия для PHP
Создавай файл .htaccess и внутри пиши вот это:
<Files file.txt>
deny from all
</Files>
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.12.2011, 20:45
|
#6
|
Оператор ЭВМ
Регистрация: 11.11.2011
Адрес: Ростов-на-Дону
Сообщений: 41
Написано 9 полезных сообщений (для 17 пользователей)
|
Ответ: Вопрос-Ответ
MySql счетчик:
<?php $server="localhost"; $user="root"; $paswd="1"; $db="test"; $name_tb="counter";
if ($l=mysql_connect($server,$user,$paswd)) {
if(mysql_select_db($db,$l)) { $ct="Create table $name_tb ( ID INT NOT Null AUTO_INCREMENT Primary key, allc BLOB(60) )"; if(mysql_query($ct)) { @mysql_query("insert Into $name_tb (allc) values (1) "); } else { @mysql_query("update $name_tb Set allc=allc+1"); } $sel=mysql_query("select allc From $name_tb"); $sel=mysql_fetch_array($sel); echo $sel[0]; } else { echo 'Not used database'; } } else { echo 'Error connect Mysql'; } ?>
|
(Offline)
|
|
17.11.2012, 20:16
|
#7
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопрос-Ответ
Ребята, если сайт на денвере стоит, функция mail() работать должна? Пробовал @gmail.com,@mail.ru - всё тщетно, письма не приходят.
|
(Offline)
|
|
18.01.2013, 22:22
|
#8
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопрос-Ответ
Здравствуйте! Не могу понять почему не работает данный скрипт. То есть ошибок не показывает, но он и не работает.
1. Не происходит запись в БД;
2. В ответ от скрипта приходит "false" (видимо из-за того что пункт 1 не работает).
<?php Include "Config.php"; if ((!empty($_POST['id'])) && (!empty($_POST['key']))) { $id = $_POST['id']; $key = $_POST['key']; $auth_key = md5($api_id."_".$id."_".$api_secret); if ($key == $auth_key) { $link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("Could not connect : " . mysql_error()); mysql_query('SET NAMES utf8'); mysql_select_db($mysql_database) or die("Could not select database"); $sql_1 = "SELECT * FROM players WHERE id = '$id'"; $result_1 = mysql_query($sql_1); if ($result_1 == 0) { $sql_2 = "INSERT INTO players (id, key) VALUES ('$id', '$key')"; mysql_query($sql_2); echo json_encode(mysql_fetch_array($result_1)); }else{ echo json_encode(mysql_fetch_array($result_1)); } }else{ echo "Error key!"; } }else{ echo "Error post data!"; } ?>
Структура БД:
CREATE TABLE IF NOT EXISTS `players` (
`id` VARCHAR(32) COLLATE utf8_unicode_ci NOT NULL,
`key` VARCHAR(32) COLLATE utf8_unicode_ci NOT NULL,
`experience` INT(32) NOT NULL DEFAULT '50',
`money` INT(32) NOT NULL DEFAULT '1000'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
(Offline)
|
|
18.01.2013, 22:37
|
#9
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос-Ответ
$sql_2 = "INSERT INTO players (id, key) VALUES ('$id', '$key')";
а вот эта строка разве не так должна выглядеть:
$sql_2 = "INSERT INTO players (id, key) VALUES ('".$id."',' ".$key."')";
|
(Offline)
|
|
18.01.2013, 22:44
|
#10
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопрос-Ответ
Да и так пробовал. Все равно не работает. Странно как то.
|
(Offline)
|
|
18.01.2013, 22:47
|
#11
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос-Ответ
session_start(); а вот такая магическая хрень где нить в начале пробовал?
у меня по началу без нее тоже не работало ничего.
|
(Offline)
|
|
18.01.2013, 22:52
|
#12
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопрос-Ответ
Тоже не помогает.
Вот конфиг:
<?php $mysql_host = "***"; //Сервер базы данных $mysql_user = "***"; //Имя пользователя $mysql_password = "***"; //Пароль $mysql_database = "***"; //Имя Базы Данных
$api_id = "***"; //ID приложения $api_secret = "***"; //Секретный код приложения ?>
|
(Offline)
|
|
18.01.2013, 23:02
|
#13
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос-Ответ
я еще только тренируюсь в пхп, но
вместо зведочек должно быть что то вменяемое наподобие такого
mysql_connect("localhost", "root", "") or die (mysql_error()); mysql_select_db("fees0_1189_x7") or die (mysql_error()); mysql_query("set character_set_client ='utf8'"); mysql_query("set character_set_results ='utf8'"); mysql_query("set collation_connection ='utf8_bin'");
то есть хост это адресс где mysql работает, это либо выглядит как ссылка либо локалхост если на компе все стоит.
И должна в той mysql быть база ***, и должен быть юзер *** с паролем ***. Вот что то мне не верится что там есть такое ))
http://habrahabr.ru/post/13726/ я вот с разглядывания этого начал
|
(Offline)
|
|
18.01.2013, 23:17
|
#14
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопрос-Ответ
Эмм, я вроде как специально поставил звездочки.
|
(Offline)
|
|
18.01.2013, 23:20
|
#15
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос-Ответ
а вот phpMyAdmin'ом ты в базу свою зайти можешь, где есть эта таблица в которую ты писать собрался?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:35.
|