Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Создание лог файла
Форумы портала PHP.SU » » Вопросы новичков » Создание лог файла

Страниц (1): [1]
 

1. Moby - 30 Марта, 2019 - 11:09:19 - перейти к сообщению
Господа, прошу вашей помощи. У меня есть php файл который принимает из формы данные $name и $email, мне нужно каждый раз при получении этих данных, внести их в новую строку лог файла, причем этот лог файл нужно создать каждый день в формате YYYYY-mm-dd-log.txt
2. Vladimir Kheifets - 30 Марта, 2019 - 13:48:47 - перейти к сообщению
Moby пишет:
Господа, прошу вашей помощи. У меня есть php файл который принимает из формы данные $name и $email, мне нужно каждый раз при получении этих данных, внести их в новую строку лог файла, причем этот лог файл нужно создать каждый день в формате YYYYY-mm-dd-log.txt
Добрый день!
Попробуйте так
Спойлер (Отобразить)
Удачи!
3. Moby - 30 Марта, 2019 - 14:41:35 - перейти к сообщению
Да, вроде все пишет, спасибо. И еще вопрос, как этот файл положить в директорию /logs ?
4. Vladimir Kheifets - 31 Марта, 2019 - 09:20:47 - перейти к сообщению
Moby пишет:
Да, вроде все пишет, спасибо. И еще вопрос, как этот файл положить в директорию /logs ?

добавил /logs
Спойлер (Отобразить)
5. Moby - 31 Марта, 2019 - 10:48:04 - перейти к сообщению
Да, спасибо, уже разобрался. Есть еще вопрос. Есть такой код

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include "config.php";
  4.  
  5. if (isset($_GET['select'])) {
  6.   $sel = $_GET['select'];
  7. }
  8.  
  9. $condition = "1";
  10. if(isset($_GET['searchtext'])){
  11.    $condition = " first_name=".$_GET['searchtext'];
  12. }
  13.  
  14. $userData = mysqli_query($con,"select * from users WHERE ".$condition);
  15.  
  16. $response = array();
  17.  
  18.  
  19. while($row = mysqli_fetch_assoc($userData)){
  20.  
  21.    $response[] = $row;
  22. }
  23.  
  24. echo json_encode($response);
  25. ?>
  26.  


где в качестве параметров я принимаю select и searchtext, как мне сделать так чтобы при
select = "Signups table" производился поиск по всем колонкам (а не только first_name) таблицы users. При select = "Leads table" производился поиск по всем колонкам таблицы members. При select = "Both tables" производился поиск по всем колонкам обеих таблиц. что-то не получается написать такой цикл...
6. Vladimir Kheifets - 31 Марта, 2019 - 12:18:29 - перейти к сообщению
Moby пишет:
Да, спасибо, уже разобрался. Есть еще вопрос.
где в качестве параметров я принимаю select и searchtext, как мне сделать так чтобы при
select = "Signups table" производился поиск по всем колонкам (а не только first_name) таблицы users. При select = "Leads table" производился поиск по всем колонкам таблицы members. При select = "Both tables" производился поиск по всем колонкам обеих таблиц. что-то не получается написать такой цикл...

немного отредактировал Ваш вопрос:
Цитата:
в качестве параметров я принимаю select и searchtext, как мне сделать так чтобы при
select = "Signups table" выбирались все колонки таблицы users.
При select = "Leads table" выбирались все колонки таблицы members.
При select = "Both tables" выбирались все колонки обеих таблиц.

Вы это хотели?
Спойлер (Отобразить)
7. Moby - 31 Марта, 2019 - 13:21:45 - перейти к сообщению
Да, вроде то что нужно, только не пойму где вставлять searchtext?
И еще почему-то у меня ищет только численные запросы, а если ищу по тексту, то ничего не происходит. Данные принимаю из Vue файла
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var app = new Vue({
  3.   el: '#myapp',
  4.   data: {
  5.     users: "",
  6.     searchtext: "",
  7.     select: "",
  8.   },
  9.   methods: {
  10.     allRecords: function(){
  11.  
  12.       axios.get('ajaxfile.php')
  13.       .then(function (response) {
  14.          app.users = response.data;
  15.       })
  16.       .catch(function (error) {
  17.          console.log(error);
  18.       });
  19.     },
  20.     recordByID: function(){
  21.       if(this.searchtext >0){
  22.  
  23.         axios.get('ajaxfile.php', {
  24.            params: {
  25.              searchtext: this.searchtext,
  26.              select: this.select,
  27.            }
  28.         })
  29.         .then(function (response) {
  30.            app.users = response.data;
  31.         })
  32.         .catch(function (error) {
  33.            console.log(error);
  34.         });
  35.       }
  36.     }
  37.   }
  38. })
  39.  
8. Vladimir Kheifets - 31 Марта, 2019 - 14:30:11 - перейти к сообщению
Moby пишет:
Да, вроде то что нужно, только не пойму где вставлять searchtext?
И еще почему-то у меня ищет только численные запросы, а если ищу по тексту, то ничего не происходит. Данные принимаю из Vue файла

не понял про "где где вставлять searchtext?"
только численные запросы, потому, что в Вашем коде так написано
CODE (javascript):
скопировать код в буфер обмена
  1. if(this.searchtext >0){
  2. ...........
  3. ...........
  4. }
9. Moby - 31 Марта, 2019 - 15:17:52 - перейти к сообщению
А, ясно, как поменять чтобы обрабатывать текст?
10. Vladimir Kheifets - 31 Марта, 2019 - 15:51:11 - перейти к сообщению
Moby пишет:
А, ясно, как поменять чтобы обрабатывать текст?

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

CODE (javascript):
скопировать код в буфер обмена
  1. patt = /^[^0](\d|[a-z\ ])*$/i;
  2. ...........
  3. if(patt.test(this.searchtext)){
  4.     ...........
  5.     ...........
  6. }
11. Moby - 31 Марта, 2019 - 18:23:06 - перейти к сообщению
Ничего не помогает... пробовал также

CODE (javascript):
скопировать код в буфер обмена
  1. if(this.searchtext != null){
12. Vladimir Kheifets - 31 Марта, 2019 - 19:29:28 - перейти к сообщению
Moby пишет:
Ничего не помогает... пробовал также
CODE (javascript):
скопировать код в буфер обмена
  1. if(this.searchtext != null){

Исправил код. Добавил alert до и после if.
Перед проверкой нужно обязательно стереть кэш браузера.
Спойлер (Отобразить)
13. Moby - 04 Апреля, 2019 - 07:34:24 - перейти к сообщению
Немного изменил код, сейчас вижу что параметр select передается из этого файла
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var app = new Vue({
  3.         el: '#myapp',
  4.         data:{
  5.                 members: [],
  6.         selected: '',
  7.                 search: {keyword: ''},
  8.                 noMember: false
  9.         },
  10.  
  11.         mounted: function(){
  12.                 this.fetchMembers();
  13.         },
  14.  
  15.         methods:{
  16.  
  17.                 searchMonitor: function() {
  18.                        
  19. var keyword = app.toFormData(app.search);
  20. axios.post('action.php?action=search&select='+this.selected, keyword)
  21.  
  22.                                 .then(function(response){
  23.                                         app.members = response.data.members;
  24.  
  25.                                         if(response.data.members == ''){
  26.                                                 app.noMember = true;
  27.                                         }
  28.                                         else{
  29.                                                 app.noMember = false;
  30.                                         }
  31.                                 });
  32.         },
  33.  
  34.  
  35.  
  36.         fetchMembers: function(){
  37.                         axios.post('action.php')
  38.                                 .then(function(response){
  39.                                         app.members = response.data.members;
  40.                                 });
  41.         },
  42.  
  43.                 toFormData: function(obj){
  44.                         var form_data = new FormData();
  45.                         for(var key in obj){
  46.                                 form_data.append(key, obj[key]);
  47.                         }
  48.                         return form_data;
  49.                 },
  50.  
  51.         }
  52. });
  53.  


во втором файле пытаюсь выловить его

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $conn = new mysqli("", "", "", "");
  3.  
  4. if ($conn->connect_error) {
  5.     die("Connection failed: " . $conn->connect_error);
  6. }
  7.  
  8. $out = array('error' => false);
  9.  
  10.         if (isset($_GET['select']))
  11. {
  12.         $sel = $_GET['select'];
  13.         $tablesArr=
  14.         [
  15.         "signups"=>"users",
  16.         "leads"=>"members",
  17.         "both"=>"users,members",
  18.         ];
  19.         $table=$tablesArr[$sel];
  20. }
  21.  
  22.  
  23. $action="show";
  24.  
  25. if(isset($_GET['action'])){
  26.         $action=$_GET['action'];
  27. }
  28.  
  29.  
  30. if($action=='show'){
  31.         $sql = "select * from $table";
  32.         $query = $conn->query($sql);
  33.         $members = array();
  34.  
  35.         while($row = $query->fetch_array()){
  36.                 array_push($members, $row);
  37.         }
  38.  
  39.         $out['members'] = $members;
  40.  
  41. }
  42.  
  43. if($action=='search'){
  44.         $keyword=$_POST['keyword'];
  45.        
  46.  
  47.         $sql="select * from $table where first_name like '%$keyword%' or last_name like '%$keyword%' or email like '%$keyword%'";
  48.         $query = $conn->query($sql);
  49.         $members = array();
  50.  
  51.         while($row = $query->fetch_array()){
  52.                 array_push($members, $row);
  53.         }
  54.  
  55.         $out['members'] = $members;
  56. }
  57.  
  58. $conn->close();
  59.  
  60. header("Content-type: application/json");
  61. echo json_encode($out);
  62. die();
  63.  
  64.  
  65. ?>


но почему-то ничего не работает
14. Vladimir Kheifets - 04 Апреля, 2019 - 17:48:07 - перейти к сообщению
Moby пишет:
Немного изменил код, сейчас вижу что параметр select передается
но почему-то ничего не работает

Добрый день!
1. параметр select передается т.е. Вы уверены в том, что PHP-код запускается?
Если не уверены, то нужно влючить выдачу сообщений об ошибках и вставить отладочную печать.

2. Названия таблиц измяняется. Вы уверены в том, во всех таблицах есть поля:
first_name like '%$keyword%' or last_name like '%$keyword%' or email like '%$keyword%'";?
Вероятно возникают ошибки в sql-запросах, должно изменятся, что-то после where
Например, в случае $table = "users,members"

3. Cоветую Вам добавить $conn->error
Спойлер (Отобразить)

Удачи!

 

Powered by ExBB FM 1.0 RC1