За последние 24 часа нас посетили 18132 программиста и 1599 роботов. Сейчас ищут 958 программистов ...

phone book с возможностью поиска и редактированием базы

Тема в разделе "PHP для новичков", создана пользователем tooncheg, 27 сен 2016.

  1. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    Тетефонный справочник организации вида:
    Иванов Иван 2 (фамилия Имя Отдел)
    *.csv - база
    План
    использовать uasort($arr,'cmp')
    в cmp реализовать сравнение:
    Имя, Фамилия, Отдел, Имя+Фамилия, Имя+Отдел, Фамилия+Отдел
    Данные для сравнения выдавать из формы.

    Подскажите правильно ли так это делать?
     
    #1 tooncheg, 27 сен 2016
    Последнее редактирование: 27 сен 2016
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Сделай, покажи код, посмотрим, может подскажем как сделать лучше.
    В базу данных, например mysql можно выгружать csv, и уже искать в базе
     
    tooncheg нравится это.
  3. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    вот что на данный момент у меня:
    index.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2. <form action="search.php" method="post">
    3.  <p>
    4.     Имя:  <input type="text" name="name" >
    5.     Фамилия: <input type="text" name="surname" >
    6.     Отдел:  <input type="text" name="depart" >
    7.    </p>
    8.  <p><input type="submit" value="Поиск" style="width:150;height:35" /></p>
    9. </form>
    10. <?php
    11. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    12. ?>
    13. <html>
    14.  <head>
    15.  <title>Something</title>
    16.  </head>
    17.  <body>
    18.   <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    19.   <caption></caption>
    20.   <tr>
    21.   <th bgcolor="#BABCB9">ИМЯ</th>
    22.   <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    23.   <th bgcolor="#BABCB9">ОТДЕЛ</th>
    24.   <th bgcolor="#BABCB9">Доп.Информация</th>
    25.   </tr>
    26.     <?php for($i=0; $i < count($csv); $i++){ ?>
    27.   <tr>
    28.       <td bgcolor="#EBEBEB"><?=$csv[$i][0]?></td>
    29.       <td bgcolor="#EBEBEB"><?=$csv[$i][1]?></td>
    30.       <td bgcolor="#EBEBEB"><?=$csv[$i][2]?></td>
    31.       <td bgcolor="#EBEBEB"><?=$csv[$i][3]?></td>
    32.     </tr>
    33.     <?php } ?>
    34.    </table>
    35.  </body>
    36. </html>
    search.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <?php
    4. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    5. ?>
    6.  
    7.  <html>
    8.   <head>
    9.   <title>Something</title>
    10.   </head>
    11.   <body>
    12.   <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    13.   <caption></caption>
    14.   <tr>
    15.   <th bgcolor="#BABCB9">ИМЯ</th>
    16.   <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    17.   <th bgcolor="#BABCB9">ОТДЕЛ</th>
    18.   <th bgcolor="#BABCB9">Доп.Информация</th>
    19.   </tr>
    20.     <tr>
    21.   <?php search();?>
    22.  
    23.      </table>
    24.   </body>
    25.  </html>
    26.  
    27. <?php
    28.  
    29. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    30.  
    31. function search() {
    32. for($i=0; $i < count($csv); $i++){
    33. #   for($j=0; $j < count($csv[$i]); $j++){
    34.     if (isset($_POST['name'],$_POST['surname'],$_POST['depart'])){
    35.          if (strcasecmp($_POST['name'], $csv[$i][0]) == 0 && strcasecmp($_POST['surname'], $csv[$i][1]) == 0 && strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    36.            # code...
    37.         }
    38.      }   elseif (isset($_POST['name'],$_POST['surname'])) {
    39.          if (strcasecmp($_POST['name'], $csv[$i][0]) == 0 && strcasecmp($_POST['surname'], $csv[$i][1]) == 0) {
    40.            # code...
    41.         }
    42.      }   elseif (isset($_POST['name'],$_POST['depart'])) {
    43.          if (strcasecmp($_POST['name'], $csv[$i][0]) == 0 && strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    44.          # code...
    45.         }
    46.      }   elseif (isset($_POST['surname'],$_POST['depart'])) {
    47.          if (strcasecmp($_POST['surname'], $csv[$i][1]) == 0 && strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    48.          # code...
    49.         }
    50.      } elseif (isset($_POST['name'])) {
    51.          if (strcasecmp($_POST['name'], $csv[$i][0]) == 0) {
    52.          # code...
    53.         }
    54.      }   elseif (isset($_POST['surname'])) {
    55.          if (strcasecmp($_POST['surname'], $csv[$i][1]) == 0) {
    56.          # code...
    57.         }
    58.      }   elseif (isset($_POST['depart'])) {
    59.          if (strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    60.          # code...
    61.         }
    62.      }   else {
    63.   echo "QQQQQQ";
    64.   }
    65. #   }
    66. }
    67. }
    68. ?>
    При попытке поиска без значений ругается: Undefined variable: csv
     
  4. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    Понял исправил

    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <?php
    4. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    5. ?>
    6.  
    7. <html>
    8.   <head>
    9.   <title>Something</title>
    10.   </head>
    11.   <body>
    12.    <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    13.     <caption></caption>
    14.     <tr>
    15.      <th bgcolor="#BABCB9">ИМЯ</th>
    16.      <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    17.      <th bgcolor="#BABCB9">ОТДЕЛ</th>
    18.      <th bgcolor="#BABCB9">Доп.Информация</th>
    19.     </tr>
    20.          <tr>
    21.         <?php search($csv);?>
    22.   </table>
    23.   </body>
    24. </html>
    25.  
    26. <?php
    27.  
    28. function search($csv) {
    29. for($i=0; $i < count($csv); $i++){
    30. #    for($j=0; $j < count($csv[$i]); $j++){
    31.        if (isset($_POST['name'],$_POST['surname'],$_POST['depart'])){
    32.                 if (strcasecmp($_POST['name'], $csv[$i][0]) == 0 && strcasecmp($_POST['surname'], $csv[$i][1]) == 0 && strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    33.                     # code...
    34.                }
    35.         }    elseif (isset($_POST['name'],$_POST['surname'])) {
    36.                 if (strcasecmp($_POST['name'], $csv[$i][0]) == 0 && strcasecmp($_POST['surname'], $csv[$i][1]) == 0) {
    37.                     # code...
    38.                }
    39.         }    elseif (isset($_POST['name'],$_POST['depart'])) {
    40.                 if (strcasecmp($_POST['name'], $csv[$i][0]) == 0 && strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    41.                 # code...
    42.                }
    43.         }    elseif (isset($_POST['surname'],$_POST['depart'])) {
    44.                 if (strcasecmp($_POST['surname'], $csv[$i][1]) == 0 && strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    45.                 # code...
    46.                }
    47.         } elseif (isset($_POST['name'])) {
    48.                 if (strcasecmp($_POST['name'], $csv[$i][0]) == 0) {
    49.                 # code...
    50.                }
    51.         }    elseif (isset($_POST['surname'])) {
    52.                 if (strcasecmp($_POST['surname'], $csv[$i][1]) == 0) {
    53.                 # code...
    54.                }
    55.         }    elseif (isset($_POST['depart'])) {
    56.                 if (strcasecmp($_POST['depart'], $csv[$i][2]) == 0) {
    57.                 # code...
    58.                }
    59.         }    else {
    60.         echo "QQQQQQ";
    61.     }
    62. #    }
    63. }
    64. }
    65. ?>
     
  5. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    не пономаю в search.php вроде else должен отрабатывать, но ничего нет
     
  6. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    isset() - сработал не так как планировал.
     
  7. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    PHP:
    1. if (!empty($_POST['name']) && !empty($_POST['surname']) && !empty($_POST['depart']))
    так заработало
     
  8. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    strcasecmp - не хочет учитывать регистр (Иван != иван) на русском
    Подскажите.
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    PHP:
    1. <?php
    2. if ('иван' != 'Иван') {
    3.     echo "test";
    4. }
     
  10. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    Я плохо объяснил.
    PHP:
    1. if (strcasecmp($_POST['name'], $csv[$i][0]) == 0)
    На латинице strcasecmp сравнивает без учета регистра без проблем (Ivan = ivan), на русском уже нет.
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    tooncheg нравится это.
  12. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    итог:
    index.php
    HTML:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <form action="search.php" method="post">
    4. <p>
    5.       Имя:     <input type="text" name="name" >
    6.       Фамилия: <input type="text" name="surname" >
    7.       Отдел:   <input type="text" name="depart" >
    8.     </p>
    9. <p><input type="submit" value="Поиск" style="width:150;height:35" /></p>
    10. </form>
    11.  
    12. <?php
    13. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    14. ?>
    15.  
    16. <title>Something</title>
    17. </head>
    18.   <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    19.    <caption></caption>
    20.    <tr>
    21.     <th bgcolor="#BABCB9">ИМЯ</th>
    22.     <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    23.     <th bgcolor="#BABCB9">ОТДЕЛ</th>
    24.     <th bgcolor="#BABCB9">Доп.Информация</th>
    25.    </tr>
    26.      <?php for($i=0; $i < count($csv); $i++){ ?>
    27.    <tr>
    28.          <td bgcolor="#EBEBEB"><?=$csv[$i][0]?></td>
    29.          <td bgcolor="#EBEBEB"><?=$csv[$i][1]?></td>
    30.          <td bgcolor="#EBEBEB"><?=$csv[$i][2]?></td>
    31.          <td bgcolor="#EBEBEB"><?=$csv[$i][3]?></td>
    32.      </tr>
    33.      <?php } ?>
    34.     </table>
    35. </body>
    36. </html>
    search.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <?php
    4. #$csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    5. ?>
    6.  
    7. <html>
    8.   <head>
    9.   <title>Something</title>
    10.   </head>
    11.   <body>
    12.    <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    13.     <caption></caption>
    14.     <tr>
    15.      <th bgcolor="#BABCB9">ИМЯ</th>
    16.      <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    17.      <th bgcolor="#BABCB9">ОТДЕЛ</th>
    18.      <th bgcolor="#BABCB9">Доп.Информация</th>
    19.     </tr>
    20.          <tr>
    21.         <?php search();?>
    22.       </tr>
    23.   </table>
    24.   </body>
    25. </html>
    26.  
    27. <?php
    28. function search() {
    29. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    30. for($i=0; $i < count($csv); $i++){
    31.   #echo $csv[$i][0];
    32.      if (!empty($_POST['name']) && !empty($_POST['surname']) && !empty($_POST['depart'])){
    33.  
    34.         if (strcasecmp(mb_strtolower($_POST['name']), mb_strtolower($csv[$i][0])) == 0 && strcasecmp(mb_strtolower($_POST['surname']), mb_strtolower($csv[$i][1])) == 0 && strcasecmp(mb_strtolower($_POST['depart']), mb_strtolower($csv[$i][2])) == 0) {
    35.               echo "<tr>";
    36.               echo "<td bgcolor=#EBEBEB>";echo $csv[$i][0];echo "</td>";
    37.               echo "<td bgcolor=#EBEBEB>";echo $csv[$i][1];echo "</td>";
    38.               echo "<td bgcolor=#EBEBEB>";echo $csv[$i][2];echo "</td>";
    39.               echo "<td bgcolor=#EBEBEB>";echo $csv[$i][3];echo "</td>";
    40.               echo "</tr>";
    41.                 }
    42.         }    elseif (!empty($_POST['name']) && !empty($_POST['surname'])) {
    43.  
    44.         if (strcasecmp(mb_strtolower($_POST['name']), mb_strtolower($csv[$i][0])) == 0 && strcasecmp(mb_strtolower($_POST['surname']), mb_strtolower($csv[$i][1])) == 0) {
    45.           echo "<tr>";
    46.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][0];echo "</td>";
    47.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][1];echo "</td>";
    48.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][2];echo "</td>";
    49.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][3];echo "</td>";
    50.           echo "</tr>";
    51.                 }
    52.         }    elseif (!empty($_POST['name']) && !empty($_POST['depart'])) {
    53.  
    54.         if (strcasecmp(mb_strtolower($_POST['name']), mb_strtolower($csv[$i][0])) == 0 && strcasecmp(mb_strtolower($_POST['depart']), mb_strtolower($csv[$i][2])) == 0) {
    55.           echo "<tr>";
    56.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][0];echo "</td>";
    57.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][1];echo "</td>";
    58.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][2];echo "</td>";
    59.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][3];echo "</td>";
    60.           echo "</tr>";
    61.                 }
    62.         }    elseif (!empty($_POST['surname']) && !empty($_POST['depart'])) {
    63.  
    64.         if (strcasecmp(mb_strtolower($_POST['surname']), mb_strtolower($csv[$i][1])) == 0 && strcasecmp(mb_strtolower($_POST['depart']), mb_strtolower($csv[$i][2])) == 0) {
    65.           echo "<tr>";
    66.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][0];echo "</td>";
    67.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][1];echo "</td>";
    68.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][2];echo "</td>";
    69.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][3];echo "</td>";
    70.           echo "</tr>";
    71.                 }
    72.         } elseif (!empty($_POST['name'])) {
    73.  
    74.          if(strcasecmp(mb_strtolower($_POST['name']),mb_strtolower($csv[$i][0])) == 0) {
    75.           echo "<tr>";
    76.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][0];echo "</td>";
    77.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][1];echo "</td>";
    78.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][2];echo "</td>";
    79.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][3];echo "</td>";
    80.           echo "</tr>";
    81.                 }
    82.         }    elseif (!empty($_POST['surname'])) {
    83.  
    84.         if (strcasecmp(mb_strtolower($_POST['surname']), mb_strtolower($csv[$i][1])) == 0) {
    85.           echo "<tr>";
    86.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][0];echo "</td>";
    87.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][1];echo "</td>";
    88.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][2];echo "</td>";
    89.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][3];echo "</td>";
    90.           echo "</tr>";
    91.                 }
    92.         }    elseif (!empty($_POST['depart'])) {
    93.  
    94.         if (strcasecmp(mb_strtolower($_POST['depart']), mb_strtolower($csv[$i][2]) == 0)) {
    95.           echo "<tr>";
    96.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][0];echo "</td>";
    97.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][1];echo "</td>";
    98.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][2];echo "</td>";
    99.           echo "<td bgcolor=#EBEBEB>";echo $csv[$i][3];echo "</td>";
    100.           echo "</tr>";
    101.                 }
    102.         }    else {
    103.         echo "Ничего не найдено";
    104.     }
    105. }
    106. }
    107. ?>
     
    denis01 нравится это.
  13. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    Хочу попробовать редактировать base.csv влезая в файл базы с страницы html.
    1. нужно реализовать вход на edit.php с паролем. => 2. был создан login.php (код одолжил с просторов):

    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2. <?php
    3.   if(!empty($_POST['paswd']) && !empty($_POST['login'])){
    4.     $login = "user";
    5.      $pass = "qwer";
    6.     if($_POST['paswd']==$pass && $_POST['login']==$login){
    7.       session_start();
    8.       $_SESSION['access']=true;
    9.       header("Location: edit.php") ;
    10.     }  else {
    11.        #header("Location: login.php") ; ?>
    12.        <p>Error login or password</p>
    13.     <?php }
    14.   } else { ?>
    15.     <html>
    16.     <head>
    17.         <title></title>
    18.         <style>
    19.             input {
    20.                 display: block;
    21.                 margin-bottom: 8px;
    22.             }
    23.         </style>
    24.     <form method="POST">
    25.       <p>Логин: <input type="text" name="login"></p>
    26.       <p>Пароль: <input type="text" name="paswd"></p>
    27.       <input  value="Enter" type="submit" style="width:175;height:35">
    28.     </form>
    29.     </html>
    30.     <?php } ?>
    Все хорошо, но только показалось. Если задать напрямую http://IP/book/edit.php, то пароль становится бесполезным. Каким способом это сделать?
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    где файл edit.php?
     
  15. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <?php
    4. if(!isset($_SESSION['access']) || $_SESSION['access']!=true){
    5. header("location:index.php");}
    6. else{ echo ' Привет!'; } ?>
    он тоже с просторов
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @tooncheg ошибок не выдаёт в файле edit.php? у тебя вывод информации до работы с заголовками
     
  17. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    немного разобралс/
    понял что да как. но опять это не мое решение. В тестовом режиме сам edit.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2. <?php require_once('common.php'); ?>
    3.  
    4. Hello
    common.php
    PHP:
    1. <?php
    2. if ($_SESSION['access'] != true) {
    3.     header('Location: login.php');
    4.     exit();
    5.   }
    login.php без изменений

    где взять понятный русскому man по session_start();
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    https://secure.php.net/manual/ru/function.session-start.php
    https://secure.php.net/manual/ru/book.session.php

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

    Тогда стоит начать читать книги по PHP, например http://www.ozon.ru/context/detail/id/137538198/

    Убери любой вывод информации или html код до функций session_start и header
     
    tooncheg нравится это.
  19. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    хочу добавить некую функциональность справочнику. попытался сделать удаление строки.
    PHP:
    1. <?php
    2.  
    3. $csv = array_map('str_getcsv', file('/var/www/book/base00.csv'));
    4.  
    5. /*for ($i=0; $i <count($csv) ; $i++) {
    6.   unset($csv[$i][0]);
    7.   unset($csv[$i][1]);
    8.   unset($csv[$i][2]);
    9.   unset($csv[$i][3]);
    10. }*/
    11.  
    12. unset($csv[0][0]);
    13. unset($csv[0][1]);
    14. unset($csv[0][2]);
    15. unset($csv[0][3]);
    16. #trim($csv[0],"\n\r");
    17.  
    18. $fp = fopen("base00.csv", "w");
    19.  
    20. for ($i=0; $i <count($csv) ; $i++) {
    21.   fputcsv($fp,$csv[$i],",");
    22. }
    23. print_r($csv);
    24. fclose($fp);
    Например удаляя первую строку, удаляются все данные строки(т.к. удаляюся данные массива), но как теперь удалить эту пустую образовавшуюся строку. Подскажите.
     
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Покажи пример что вышло и что хочешь получить, как то запутано вышло.

    Пальцем в небо
    PHP:
    1. unset($csv[0]);
     
  21. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    Пальцем в небо сработало. Я так понял, поскольку это был массив массивов, а я удалял значения значения второго массива , то сам массив оставался с пустым значением так потом и записывался в файл при помощи fputcsv. Даже в голову не пришло так сделать. Я уже начал было рыть в сторону preg_replace
     
    denis01 нравится это.
  22. tooncheg

    tooncheg Новичок

    С нами с:
    14 сен 2016
    Сообщения:
    42
    Симпатии:
    4
    итог:
    1. index.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <form action="search.php" method="post">
    4. <p>
    5.       Имя:     <input type="text" name="name" >
    6.       Фамилия: <input type="text" name="surname" >
    7.       Отдел:   <input type="text" name="depart" >
    8.     </p>
    9. <p><input type="submit" value="Поиск" style="width:250;height:35" /></p>
    10. <a href="login.php">[+] Добавить изменения</a>
    11. </form>
    12.  
    13. <?php
    14. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    15. ?>
    16.  
    17. <html>
    18. <head>
    19. <title>Phonebook main</title>
    20. </head>
    21. <body>
    22.   <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    23.    <caption></caption>
    24.    <tr>
    25.     <th bgcolor="#BABCB9">ИМЯ</th>
    26.     <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    27.     <th bgcolor="#BABCB9">ОТДЕЛ</th>
    28.     <th bgcolor="#BABCB9">Доп.Информация</th>
    29.    </tr>
    30.              <?php for($i=0; $i < count($csv); $i++){ ?>
    31.    <tr>
    32.          <td bgcolor="#EBEBEB"><?=$csv[$i][0]?></td>
    33.          <td bgcolor="#EBEBEB"><?=$csv[$i][1]?></td>
    34.          <td bgcolor="#EBEBEB"><?=$csv[$i][2]?></td>
    35.          <td bgcolor="#EBEBEB"><?=@$csv[$i][3]?></td>
    36.      </tr>
    37.      <?php } ?>
    38.     </table>
    39. </body>
    40. </html>
    2. search.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <form action="search.php" method="post">
    4. <p>
    5.       Имя:     <input type="text" name="name" >
    6.       Фамилия: <input type="text" name="surname" >
    7.       Отдел:   <input type="text" name="depart" >
    8.     </p>
    9. <p><input type="submit" value="Поиск" style="width:250;height:35" /></p>
    10. <a href="login.php">[+] Добавить изменения</a>
    11. </form>
    12.  
    13. <?php
    14. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    15. ?>
    16.  
    17. <html>
    18. <head>
    19. <title>Phonebook main</title>
    20. </head>
    21. <body>
    22.   <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    23.    <caption></caption>
    24.    <tr>
    25.     <th bgcolor="#BABCB9">ИМЯ</th>
    26.     <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    27.     <th bgcolor="#BABCB9">ОТДЕЛ</th>
    28.     <th bgcolor="#BABCB9">Доп.Информация</th>
    29.    </tr>
    30.              <?php for($i=0; $i < count($csv); $i++){ ?>
    31.    <tr>
    32.          <td bgcolor="#EBEBEB"><?=$csv[$i][0]?></td>
    33.          <td bgcolor="#EBEBEB"><?=$csv[$i][1]?></td>
    34.          <td bgcolor="#EBEBEB"><?=$csv[$i][2]?></td>
    35.          <td bgcolor="#EBEBEB"><?=@$csv[$i][3]?></td>
    36.      </tr>
    37.      <?php } ?>
    38.     </table>
    39. </body>
    40. </html>
    3. edit.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2.  
    3. <form action="search.php" method="post">
    4. <p>
    5.       Имя:     <input type="text" name="name" >
    6.       Фамилия: <input type="text" name="surname" >
    7.       Отдел:   <input type="text" name="depart" >
    8.     </p>
    9. <p><input type="submit" value="Поиск" style="width:250;height:35" /></p>
    10. <a href="login.php">[+] Добавить изменения</a>
    11. </form>
    12.  
    13. <?php
    14. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    15. ?>
    16.  
    17. <html>
    18. <head>
    19. <title>Phonebook main</title>
    20. </head>
    21. <body>
    22.   <table cellspacing="2" border="1" cellpadding="5"  width="75%" >
    23.    <caption></caption>
    24.    <tr>
    25.     <th bgcolor="#BABCB9">ИМЯ</th>
    26.     <th bgcolor="#BABCB9">ФАМИЛИЯ</th>
    27.     <th bgcolor="#BABCB9">ОТДЕЛ</th>
    28.     <th bgcolor="#BABCB9">Доп.Информация</th>
    29.    </tr>
    30.              <?php for($i=0; $i < count($csv); $i++){ ?>
    31.    <tr>
    32.          <td bgcolor="#EBEBEB"><?=$csv[$i][0]?></td>
    33.          <td bgcolor="#EBEBEB"><?=$csv[$i][1]?></td>
    34.          <td bgcolor="#EBEBEB"><?=$csv[$i][2]?></td>
    35.          <td bgcolor="#EBEBEB"><?=@$csv[$i][3]?></td>
    36.      </tr>
    37.      <?php } ?>
    38.     </table>
    39. </body>
    40. </html>
    4. login.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2. <?php
    3.   if(!empty($_POST['paswd']) && !empty($_POST['login'])){
    4.     $login = "admin";
    5.      $pass = "admin";
    6.     if($_POST['paswd']==$pass && $_POST['login']==$login){
    7.       session_start();
    8.       $_SESSION['access']=true;
    9.       header("Location: edit.php") ;
    10.       exit();
    11.     }  else {
    12.        #header("Location: login.php") ; ?>
    13.        <p>Error login or password</p>
    14.     <?php }
    15.   } else { ?>
    16.     <html>
    17.     <head>
    18.         <title></title>
    19.         <style>
    20.             input {
    21.                 display: block;
    22.                 margin-bottom: 8px;
    23.             }
    24.         </style>
    25.     <form method="POST">
    26.       <p>Логин: <input type="text" name="login"></p>
    27.       <p>Пароль: <input type="password" name="paswd"></p>
    28.       <input  value="Enter" type="submit" style="width:175;height:35">
    29.     </form>
    30.     </html>
    31.     <?php } ?>
    5. common.php - подлядел
    PHP:
    1. <?php
    2. // стартуем новую сессию пользователя, после вызова данной функции в массиве $_SESSION можно хранить свои данные, которые будут доступны в любом скрипте где в начале файла происходит вызов данной функции. Таким образом мы получаем в распоряжение массив $_SESSION в элементах которого можем хранить любую информацию и она будет доступна в любом скрипте на протяжении времени жизни сесси (обычно это 15 минут).
    3.  
    4. // если пользователь не вошел под правильными логином и паролем (т.е. не авторизовался) мы его перенаправляем на форму входа login.php
    5. // В элементе LOGED массива $_SESSION мы как раз и храним факт входа, если значение этого элемента равно true - значит пользователь вошёл успешно и код в условии ниже не выполнится.
    6. if ($_SESSION['access'] != true) {
    7.     header('Location: login.php');
    8.     exit();
    9.   }
    6. del.php
    PHP:
    1. <?php
    2.  
    3. require_once('common.php');
    4.  
    5.   $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    6.   unset($csv[$_GET['line']]);
    7.   $fp = fopen("base.csv", "w");
    8.     for ($i=0; $i <count($csv) ; $i++) {
    9.       @fputcsv($fp,$csv[$i],",");
    10.        }
    11.     #print_r($csv);
    12.    fclose($fp);
    13.     header('Location: edit.php');
    7.add.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2. <?php
    3.  
    4. require_once('common.php');
    5.  
    6. if (count($_POST)){
    7.  
    8.  
    9.     $f = fopen('base.csv', 'a+');
    10.  
    11.     fputcsv($f, $_POST, ',');
    12.  
    13.     fclose($f);
    14.  
    15.  
    16.     header('Location: edit.php');
    17. }
    18. ?>
    19. <html>
    20. <head>
    21.     <title>Создать контакт</title>
    22.     <style>
    23.         input, textarea, select {
    24.             display: block;
    25.             margin-bottom: 8px;
    26.         }
    27.     </style>
    28. </head>
    29. <body>
    30. <h2>Новый контакт</h2>
    31. <form method="post">
    32.     Имя:
    33.     <input type="text" name="name" />
    34.     Фамилия:
    35.     <input type="text" name="lastname" />
    36.     Отдел:
    37.     <input type="text" name="phone" />
    38.         Доп.инфо.:
    39.     <input type="text" name="add" />
    40.     <input type="submit" value=" Создать контакт " />
    41. </form>
    42.  
    43. <input type="button" onclick="history.back();" value=" Отмена " />
    44. </body>
    45. </html>
    8. edit_table.php
    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2. <?php
    3.  
    4. require_once('common.php');
    5.  
    6. $csv = array_map('str_getcsv', file('/var/www/book/base.csv'));
    7. $str_num = $_GET['line'];
    8.  
    9. #echo $str_num;
    10.  
    11. if (count($_POST)){
    12.   $csv[$str_num] = array($_POST['name'], $_POST['surname'], $_POST['depart'], $_POST['add']);
    13.   $fp = fopen('base.csv', "w");
    14.   for ($i=0; $i <count($csv) ; $i++) {
    15.     @fputcsv($fp,$csv[$i],",");
    16.      }
    17.   fclose($fp);
    18.   header('Location: edit.php');
    19.   }
    20. ?>
    21.   <html>
    22.   <head>
    23.       <title>Изменить конакт</title>
    24.       <style>
    25.                 input, textarea, select {
    26.               display: block;
    27.               margin-bottom: 8px;
    28.           }
    29.       </style>
    30.   </head>
    31.   <body>
    32.   <h2>Изменить контакт</h2>
    33.   <form method="post" action="">
    34.       Имя:
    35.       <input type="text" name="name" value="<?=$csv[$str_num][0]?>" />
    36.       Фамилия:
    37.       <input type="text" name="surname" value="<?=$csv[$str_num][1]?>" />
    38.       Отдел:
    39.       <input type="text" name="depart" value="<?=$csv[$str_num][2]?>" />
    40.       Доп.инфо.:
    41.       <input type="text" size="100" name="add" value="<?=$csv[$str_num][3]?>" />
    42.  
    43.       <input type="submit" value=" Сохранить изменения " />
    44.   </form>
    45.   <input type="button" onclick="history.back();" value=" Отмена " />
    46.   </body>
    47.   </html>
    9. база base.csv - разделитель запятые(имя,фамилия,отдел,доп.инфо)
    Иван,Иванов,33,"телефон 12345 Иванов Иван Иванович и т.д."
     
    denis01 нравится это.