www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   PHP / MySQL (http://forum.boolean.name/forumdisplay.php?f=135)
-   -   Вопрос-Ответ (http://forum.boolean.name/showthread.php?t=16035)

ABTOMAT 13.12.2011 14:07

Ответ: Вопрос-Ответ
 
Это тема типа "Вопрос-Ответ".
Никаких посторонних обсуждений, только вопросы и варианты их решения.

PassCall 13.12.2011 14:07

Ответ: Обсуждение мини-пособия для PHP
 
Осмелюсь задать ещё вопрос:

Как сохранить на сервер переменную? То-есть чтобы её значение сохранялось, даже если закрыть страницу и вызвать скрипт заново.

Допустим есть $count.
Хочется, чтобы при вызове PhP скрипта эта переменная увеличивалась на 1 и выводилась.

Что-то типа
PHP код:

<?php
$count
=$count+1;
echo 
$count;
?>

В общем код работает, но каждый раз выводится 1 (не приращивается). Видимо, при вызове скрипта все переменные обнуляются.

Нужно использовать какую нибудь базу данных или можно сохранять данные, обходясь лишь чистым PhP?

ABTOMAT 13.12.2011 14:56

Ответ: Обсуждение мини-пособия для PHP
 
1. Записать в файл (просто)
2. Записать в MySQL-таблицу (сложно но более православно).

Примитивнейший пример записи в файл:
PHP код:

<?php
    $cnt 
= @file_get_contents('counter.txt');
    
$cnt++;
    
file_put_contents('counter.txt'$cnt)
?>

<h1>Количество посещений: <?php echo $cnt ?></h1>

На *nix-системе следи, чтобы файлу counter.txt были выставлены права на запись.

PassCall 13.12.2011 15:07

Ответ: Обсуждение мини-пособия для PHP
 
Окей, спасибо. Но вот проблема.

Создаю на сервере файл file.txt.
Всё успешно записывается/читается (правда метод немного другой: $fp = fopen ("file.txt", "r");), автор радуется. Однако, любой желающий может просмотреть содержимого этого самого файла, просто вбив "такой-то_сайт/file.txt". Конечно, можно пошаманить насчет шифрования и прочего, но все-таки хочется, чтобы содержимое нельзя было даже открыть.

В директории сайта есть папка webstats, доступ к любому файлу в ней запаролен. Это неплохой вариант, но лучше сделать как-то грамотнее и правильнее. Не подскажете идею?

ABTOMAT 13.12.2011 15:32

Ответ: Обсуждение мини-пособия для PHP
 
Создавай файл .htaccess и внутри пиши вот это:

Код:

<Files file.txt>
 deny from all
 </Files>


treycerok 24.12.2011 16:45

Ответ: Вопрос-Ответ
 
MySql счетчик:
PHP код:

<?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';
}
?>


Nikich 17.11.2012 16:16

Ответ: Вопрос-Ответ
 
Ребята, если сайт на денвере стоит, функция mail() работать должна? Пробовал @gmail.com,@mail.ru - всё тщетно, письма не приходят.

pie 18.01.2013 18:22

Ответ: Вопрос-Ответ
 
Здравствуйте! Не могу понять почему не работает данный скрипт. То есть ошибок не показывает, но он и не работает.
1. Не происходит запись в БД;
2. В ответ от скрипта приходит "false" (видимо из-за того что пункт 1 не работает).

PHP код:

<?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;


dsd 18.01.2013 18:37

Ответ: Вопрос-Ответ
 
$sql_2 = "INSERT INTO players (id, key) VALUES ('$id', '$key')";

а вот эта строка разве не так должна выглядеть:
$sql_2 = "INSERT INTO players (id, key) VALUES ('".$id."',' ".$key."')";

pie 18.01.2013 18:44

Ответ: Вопрос-Ответ
 
Да и так пробовал. Все равно не работает. Странно как то.

dsd 18.01.2013 18:47

Ответ: Вопрос-Ответ
 
session_start(); а вот такая магическая хрень где нить в начале пробовал?
у меня по началу без нее тоже не работало ничего.

pie 18.01.2013 18:52

Ответ: Вопрос-Ответ
 
Тоже не помогает.
Вот конфиг:
PHP код:

<?php
$mysql_host 
"***";         //Сервер базы данных
$mysql_user "***";             //Имя пользователя
$mysql_password "***";                 //Пароль
$mysql_database "***";     //Имя Базы Данных

$api_id "***";                         //ID приложения
$api_secret "***";         //Секретный код приложения
?>


dsd 18.01.2013 19:02

Ответ: Вопрос-Ответ
 
я еще только тренируюсь в пхп, но
вместо зведочек должно быть что то вменяемое наподобие такого
PHP код:

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/ я вот с разглядывания этого начал

pie 18.01.2013 19:17

Ответ: Вопрос-Ответ
 
Эмм, я вроде как специально поставил звездочки.:dontknow:

dsd 18.01.2013 19:20

Ответ: Вопрос-Ответ
 
а вот phpMyAdmin'ом ты в базу свою зайти можешь, где есть эта таблица в которую ты писать собрался?


Часовой пояс GMT +1, время: 10:21.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot