Перейти к содержимому

Фотография

PHPвопросы по PHP


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 408

#401
Ilya Aranov

Ilya Aranov
  • Гость
  • 16 сообщений

и опять вопрос, подскажите, как получить из базы mysql id пользователей, которые были добавлены.
я попробовал использовать mysql_insert_id, но он выдает только id последнего клиента, а их может быть много

$clients_id = mysql_insert_id();
$clients_id_data = "INSERT INTO $datatable SET id='NULL', bookingn='$bookingn', klienty='$clients_id'";
mysql_query($clients_id_data) or die(mysql_error());

Mожно использовать trigger:

CREATE TRIGGER `MyTrigger` AFTER INSERT ON `datatable1` 
FOR EACH ROW BEGIN
INSERT clients_id_data
SET  clients_id_data.klienty = new.id;
END;
Тогда новое ID будет автоматически добавляться в таблицу clients_id_data, после добавления чего либо в таблицу datatable1


Сообщение отредактировал Ilya Aranov: 25.03.2015, 07:42:45

  • 0

#402
dennykru

dennykru
  • В доску свой
  • 1 383 сообщений

Вопрос такой... с другого сайта передаются на наш некие данные POST 

Есть возможность вывести все значения, если я не знаю какие именно параметры передаются?


  • 0

#403
Bosyackii

Bosyackii
  • Постоялец
  • 389 сообщений

Добрый день!

Нужна помощь по сайту (выровнять товар), пишите в лс.


  • 0

#404
lexx821

lexx821
  • Завсегдатай
  • 197 сообщений

Вопрос такой... с другого сайта передаются на наш некие данные POST 

Есть возможность вывести все значения, если я не знаю какие именно параметры передаются?

 

Наверное так:

<?php
// для GET и POST
foreach($_REQUEST as $key => $val)
  echo 'Ключ: ' . $key . ' значение:' . $val . '<br>';

// для POST
foreach($_POST as $key => $val)
echo 'Ключ: ' . $key . ' значение:' . $val . '<br>';

// для GET
foreach($_GET as $key => $val)
echo 'Ключ: ' . $key . ' значение:' . $val . '<br>';
?>

Сообщение отредактировал lexx821: 04.12.2018, 22:56:58

  • 0

#405
Azrael Al Maut

Azrael Al Maut
  • Случайный прохожий
  • 3 сообщений

Вопрос такой... с другого сайта передаются на наш некие данные POST 

Есть возможность вывести все значения, если я не знаю какие именно параметры передаются?

 

Да. И это будет видно только для сессии передающей стороны, если нужно посмотреть, то логгирование в файл поможет


  • 0

#406
Малик Жарыков

Малик Жарыков
  • Гость
  • 7 сообщений

Хочу отметить интересный факт)

Всем известно, что в PHP есть операторы 

||  &&

По сути, это бинарные операторы "логическое ИЛИ" и "логическое И". 

Также, в PHP есть ещё такие операторы:

or and xor

И может показаться, что эти операторы эквивалентны друг другу. Да, все эти операторы выполняют операцию ИЛИ и операцию И, соответственно.

На самом деле, есть небольшое различие. И оно кроется в приоритетах операторов.

 

Приоритет операторов || и && имеют выше приоритет, чем операторы and или or. Что это значит?

 

Возьмём к примеру такой код:

<?php

function f1 () {
    echo "Функция f1() была вызвана\n";
    return true;
}

function f2() {
    echo "Функция f2() была вызвана\n";
    return false;
}

function f3() {
    echo "Функция f3() была вызвана\n";
    return true;
}



echo "(f1() || f2() && f3()):\n";
$result1 = (f1() || f2() && f3());

echo "\n";

echo "(f1() or f2() and f3()):\n";
$result1 = (f1() or f2() and f3());

echo "\n";
echo "(f1() || f2() and f3()):\n";
$result1 = (f1() || f2() and f3());

Если его выполнить, вы получите такой результат:

(f1() || f2() && f3()):
Функция f1() была вызвана

(f1() or f2() and f3()):
Функция f1() была вызвана

(f1() || f2() and f3()):
Функция f1() была вызвана
Функция f3() была вызвана

В первом и во втором случае всё понятно.

Сначала вызывается функция f1(), а она возвращает true и по сути дальше нам проверять ничего не надо, т.к. если хотя бы один операнд в логическом или будет равен true, то результат логического ИЛИ тоже будет true.

 

Но в третьем случае происходит нечто странное. Само логическое условие одинаковое, но вызывается f3().Почему?

 

Ответ прост: Т.к. у оператора and приоритет ниже чем у оператора ||, то выполнение происходит так:

( ( f1() || f2() ) and f3() )

А в двух первых случаях так:

( f1() || ( f2() && f3() ) )
( f1() or ( f2() and f3() ) )

Отмечу, что эти операторы лево-ассоциативные, а это значит, что сначала будет вычисляться самый левый операнд. Самым левым операндом у нас является f1().

 

Вот такой вот интересный факт :)


  • 1

#407
lexx821

lexx821
  • Завсегдатай
  • 197 сообщений

Хочу поделиться с вами с моими двумя opensource продукциями, они мне не нужны, я делаю сейчас более сложные проекты.

 

1. Социальная сеть в стиле facebook/vk сделаная примерно за 4 месяца:

Прикрепленный файл  socnet_for_vsekz.zip   938,45К   Количество загрузок: 33

 

Для настройки:

1.1. Настраиваем файл в ./htdocs/socnetw/config/config.php:

<?php
define('DOMAIN', 'http://localhost/socnetw');  // Абсолютный путь к проекту (тут нужно изменить) 
define('DOMAIN_MOBILE', 'http://localhost/socnetw/mb'); // Абсолютный путь к проекту (тут нужно изменить)
define('MAIN_CONTROLLER', '/index.php'); // Имя контроллера
define('HOME', '/home');
define('START', '/start');
define('LOGIN', '/login');

// Настройка БД
define('_DB_DATABASE', 'socnetw');
define('_DB_SERVER', 'localhost');
define('_DB_USERNAME', 'root');
define('_DB_PASSWORD', '');

define('WALL_AJAX_TIME_REFRESH', '10');
define('MESSENGER_AJAX_TIME_REFRESH', '2');
define('MAX_TIME_REFRESH', '0');
define('TIME_REFRESH', TRUE);
define('TYPING_SHOW', TRUE);

define('MAX_RECORDS_PER_REQUEST', '5');

define('SUPPORT_PLUGINS', TRUE);
?>

1.2. В файле ./htdocs/socnetw/config/blacklist.php содержится ссылки в чёрном списке.

1.3. Запускаете phpmyadmin и загружаете SQL файл ./htdocs/socnetw/socnetw.sql

P.S. Для того чтобы работала функция "прямая трансляция", нужен плагин Red5 - http://red5.org/

Для того чтобы установить Red5, смотрите видео https://www.youtube....h?v=nQq3hknC2Ns и https://www.youtube....h?v=QEi6x39VVEs

а так-же нужно установить Flashdevelop - https://www.flashdevelop.org/ и помойму нужен Adobe air откомпилировать проект (находится в папке thirdparty/live)

 

2. Фреймворк в стиле Razor

Запуск localhost/myframework/main/index

Прикрепленный файл  myframework_for_vsekz.zip   196,68К   Количество загрузок: 30


Сообщение отредактировал lexx821: 18.08.2019, 03:29:04

  • 0

#408
lexx821

lexx821
  • Завсегдатай
  • 197 сообщений

Упс, ой... Там был глюк, прежде чем использовать соц.сеть, нужно обновить соц.сеть, вот апдейт...:

Прикрепленный файл  update.zip   3,79К   Количество загрузок: 29

Нужно обновить load_video.php, load_audio.php, load_photo.php и занова загрузить socnetw.sql в phpmyadmin, если не установить обновления то: не получите звукового уведомления (допустим если пользователь лайкнул пост), нет статистики посещения профиля, нет количества просмотров видео, и когда пишите сообщение, не отображается анимация, что ваш собеседник пишит вам. 

 

И ещё надо подправить файл php.ini иначе фотки/видео/аудио файлы не будут загружаться

post_max_size=8000M
upload_max_filesize=8000M
max_file_uploads=200

 

P.S.

Соцсеть тестировал на PHP 5.5 и на PHP 7, вроде всё работает. В файле readme указаны ссылки откуда я что брал...

Соцсеть поддерживает только следующие форматы: 

фотографии - только jpeg, видео - только mp4, аудио - только mp3.

Если загружать png, bmp, gif картинки на стене не отображаются, можно ссылку вставить в сообщения, то вроде отобразиться, но счётчик times share будет показывать 0.

Хотел подключить ещё функцию распознования лиц как в ФБ, но сайт который предоставляет такую услугу, небесплатный, (предоставляют услугу как веб сервис)

 

Баги (кодю очень быстро, поэтому есть баги):

1)Комментарии работают не совсем

2)Если поделиться ссылкой, то на стене не отображается картинка (пиктограмма):

link-min.jpg

3)Нельзя прокрутить аудио:

mp3player-min.jpg

4)Нельзя поделиться постом (кнопка share не работает, но счётчик увеличивается), можно делиться постом/ссылкой если вставить ссылку как сообщение, но счётчик не будет увеличиваться (0 times shared).

5)Если хотите добавить фотку на стену, то нельзя писать какое либо сообщение, просто нажимаете на кнопку "выбрать", ищите фотку, а потом нажимаете на "post", ваши фотки которые на стене, находятся в альбоме "Wall images" (My images -> Wall images)

photoupload-min-min.jpg

6)Можно только делиться ютуб ссылкой, видео будет проигрываться прям на стене, другие сервисы такие как vimeo, soundcloud, instagram не будут встроены

video-min.jpg

7)Если пост удалить со стены, то пост не удалятся из БД, а делается невидимым (данные хранятся навсякий случай).

8)Когда заходите в My Videos, все видео начинают автоматически подгружаться (нужно доработать, чтобы можно было загружать миниатюрную картинку), подсчёт видео когда нажал на ссылку

9)При нажатие на пиктограмму, большие фотки не видно (нужно улучшить)

10)Модули "My Market", "My Places" не работают, мне надоело программировать и не стал программировать эти модули, модуль "Go Live!" работает, нужно откомпилировать плагин (нужен FlashDevelop), и Red5 сервер.

11)Возможны SQL иньекции, нужно перейти на PDO, нужно везде где можно вставить mysql_real_escape_string.


Сообщение отредактировал lexx821: 18.08.2019, 06:44:04

  • 0

#409
lexx821

lexx821
  • Завсегдатай
  • 197 сообщений

Хочу отметить интересный факт)

Всем известно, что в PHP есть операторы 

||  &&

По сути, это бинарные операторы "логическое ИЛИ" и "логическое И". 

Также, в PHP есть ещё такие операторы:

or and xor

И может показаться, что эти операторы эквивалентны друг другу. Да, все эти операторы выполняют операцию ИЛИ и операцию И, соответственно.

На самом деле, есть небольшое различие. И оно кроется в приоритетах операторов.

 

Приоритет операторов || и && имеют выше приоритет, чем операторы and или or. Что это значит?

 

Возьмём к примеру такой код:

<?php

function f1 () {
    echo "Функция f1() была вызвана\n";
    return true;
}

function f2() {
    echo "Функция f2() была вызвана\n";
    return false;
}

function f3() {
    echo "Функция f3() была вызвана\n";
    return true;
}



echo "(f1() || f2() && f3()):\n";
$result1 = (f1() || f2() && f3());

echo "\n";

echo "(f1() or f2() and f3()):\n";
$result1 = (f1() or f2() and f3());

echo "\n";
echo "(f1() || f2() and f3()):\n";
$result1 = (f1() || f2() and f3());

Если его выполнить, вы получите такой результат:

(f1() || f2() && f3()):
Функция f1() была вызвана

(f1() or f2() and f3()):
Функция f1() была вызвана

(f1() || f2() and f3()):
Функция f1() была вызвана
Функция f3() была вызвана

В первом и во втором случае всё понятно.

Сначала вызывается функция f1(), а она возвращает true и по сути дальше нам проверять ничего не надо, т.к. если хотя бы один операнд в логическом или будет равен true, то результат логического ИЛИ тоже будет true.

 

Но в третьем случае происходит нечто странное. Само логическое условие одинаковое, но вызывается f3().Почему?

 

Ответ прост: Т.к. у оператора and приоритет ниже чем у оператора ||, то выполнение происходит так:

( ( f1() || f2() ) and f3() )

А в двух первых случаях так:

( f1() || ( f2() && f3() ) )
( f1() or ( f2() and f3() ) )

Отмечу, что эти операторы лево-ассоциативные, а это значит, что сначала будет вычисляться самый левый операнд. Самым левым операндом у нас является f1().

 

Вот такой вот интересный факт :)

Спасибо вам за информацию! Было очень интересно и полезно!


  • 0




Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2019 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.