PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (4): [1] 2 3 4 »

> Найдено сообщений: 59
Vladimir Kheifets Отправлено: 22 Июня, 2017 - 15:11:14 • Тема: вывод сообщений • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 266
Sail пишет:
Vladimir Kheifets пишет:
Из название поля "date" не следует, что тип поля также "date".
В данном случае, тип поля должен быть "datetime".
Исходя из этого я показал как найти последнее сообщение.

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

Добрый день!
Прочтите, пожалуйста, вопрос, с корого началась тема:
Богдан Скуба пишет:
Всем привет, у меня есть таблица : messages
id | sender | taker | message | date | value
нужно вывести последние сообщения всех диалогов отсортированых по date
все перепробовал ничего придумать или найти не могу

Я понял так, что требуется "вывести последние сообщения всех диалогов", а не "последнее сообщение для каждого диалога".
Vladimir Kheifets Отправлено: 22 Июня, 2017 - 12:14:58 • Тема: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает? • Форум: Вопросы новичков

Ответов: 13
Просмотров: 268
zapatronen пишет:
Действительно, зачем он там нужен. Наверное перепутал по-моему это из функции можно объявить переменной зону видимости

Добрый день!
global это не главное. Вы обратили Вы внимание на, то что я объяснил Вам почему код не срабатывает после первого сабмита?
На всякий случай повторю:
После submit формы, проверка if($dir!=NULL) с строке 4 не должна выполняться т.к.
файл сохраняется move_uploaded_file($_FILES['userfile']['tmp_name'], $target) в строеке 19
Vladimir Kheifets Отправлено: 22 Июня, 2017 - 10:23:20 • Тема: Как заменить текст на текст в div? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 124
masters пишет:
У меня есть ссесия:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $login = 'admin';
  4. $password = '123';
  5.  
  6. if($_POST['submit']){
  7.         if($login == $_POST['login'] AND $password == ($_POST['password'])){
  8.                 $_SESSION['admin'] = $login;
  9.                 header("Location: admin.php");
  10.                 exit;
  11.         } else //что тут нужно?
  12. }
  13.  


Если пароль не правильный то в блоке:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div id="title">Вход</div>
  3.  

Нужно заменить слово "Вход" на "Неправильный логин или пароль".


Доброе утро!

1. Вопрос про сообщение в диве. Если авторизация проходит успешно, то Вы хотите перейти в admin.php
Поэтому сообщение об успешной авторизации и приветствие должно быть в admin.php.

2. Желательно логины и пароли сохранять в БД и написать функцию для проверки: например, CheckLogin($login ,$password)
Затем можно будет заменить:
if($login == $_POST['login'] AND $password ==$_POST['password'])
на
if(CheckLogin($_POST['login'] ,$_POST['password']))

Работающий код:
https://www[dot]alto-booking[dot]com/demo/PHPSU_Log.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. $login = 'admin';
  3. $password = '123';
  4. $ViewForm=false;
  5. $Error=false;
  6. if(isset($_POST['submit']))
  7. {
  8.         if($login == $_POST['login'] AND $password == $_POST['password'])
  9.         {
  10.              $_SESSION['admin'] = $login;
  11.              header("Location: admin.php");
  12.              exit;
  13.  
  14.         }
  15.         else //что тут нужно?
  16.         {
  17.                 $Error=true;
  18.         }
  19. }
  20. else $ViewForm=true;
  21. ?>
  22. <html>
  23. <head>
  24. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  25. <title>Admin</title>
  26. </head>
  27. <body>
  28. <form name="log" action=""  method="post">
  29.  <?
  30.  if($Error OR $ViewForm)
  31.  {
  32.         ?>
  33.      login:<br /><input name="login" type="text" />     password:<br /><input name="password" type="password" />     <input name="submit" type="submit" value="submit" />
  34.         <?
  35.         if($Error)
  36.         {
  37.             ?>
  38.                 <div id="title">Неправильный логин или пароль!</div>
  39.             <?
  40.         }
  41. }
  42. ?>
  43. </form>
  44. </body>
  45. </html>
Vladimir Kheifets Отправлено: 20 Июня, 2017 - 10:03:29 • Тема: Проподает ник при переходе на другую страничку... • Форум: Программирование на PHP

Ответов: 1
Просмотров: 93
Ошибка в НТML - не закрытый тэг <fieldset id="inputs">
CODE (html):
скопировать код в буфер обмена
  1.  <fieldset id="inputs">
  2.      <form method="post" id="login">
  3.      .............................
  4.      .............................
  5.          </fieldset>
  6.          <fieldset id="actions">
  7.       <a href="password.php">Забыли пароль?</a><br><br><a href="signup.php">Регистрация</a>
  8.   </fieldset>
  9.      </form>


Должно быть так:
CODE (html):
скопировать код в буфер обмена
  1. <fieldset id="inputs">
  2.      <form method="post" id="login">
  3.      .............................
  4.      .............................      
  5.          <fieldset id="actions">
  6.       <a href="password.php">Забыли пароль?</a><br><br><a href="signup.php">Регистрация</a>
  7. </fieldset>
  8. </form>
  9. </fieldset>


Ваш код Вы можете проверить здесь:
http://validator[dot]w3[dot]org
Result: 2 Errors, 6 warning(s)
Важно Error:
Line 18, Column 12: end tag for element "FORM" which is not open </form>
Vladimir Kheifets Отправлено: 20 Июня, 2017 - 07:13:58 • Тема: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает? • Форум: Вопросы новичков

Ответов: 13
Просмотров: 268
zapatronen пишет:
Вообщем проверял структуру вроде все ок, но не получается
пошел обманным путем, а именно:
Добавил еще один шаг - это появление инпута для ввода емейла, куда отправиться промокод человеку, который загрузил datasheet для товара, а форму для file прячу стилями.
Выходит так что при заливке файла инпут приобретает display:none, появляется новый инпут с вводом емейла, жмем кнопку и в сумме два обновления страницы

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $dir= implode('<br>', preg_filter('/.+\.pdf$/i', "$0", scandir($path)));
  3. $pdf= $filename.'/'.$dir;
  4. if($dir!=NULL)
  5. {
  6.        echo "<a href='$pdf'><img src='/image/pdf.png'>Datasheet для $name</a>";
  7. }
  8. else
  9. {
  10. ?>
  11. <form  enctype="multipart/form-data" method="post" >
  12.     <?
  13.   if(isset($_POST['submit6']))
  14.   {
  15.       $art= $_GET['article'];
  16.       $pdffile=$_FILES['userfile']['name'];
  17.       $target=GW_UPLOADPATH.$art.'/'.$pdffile;
  18.       if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target))
  19.       {
  20.           $querypdf="UPDATE nomenclature SET time_upload_pdf=NOW(), pdf='$pdffile' WHERE nom_article='$art'";
  21.           $upload=mysqli_query($dbc, $querypdf) or die('error');
  22.           if($upload==true)
  23.           {
  24.            echo "Введите емейл на который желаете получить промокод<input type='email' name='email' placeholder='email'>"
  25.                         // объявляю глобальную переменную вписывают туда значение стиля, который делаем блок невидимым
  26.            global $display;
  27.            $display='display:none';
  28.           }
  29.       }
  30.   }
  31.  echo
  32. //оборачиваю нужные элементы в див
  33.       "<div style='$display';>Datasheeе для $name отсутствует. <br>Загрузите Datasheet и получите скидку 5% на всю корзину<br>
  34.       <input  type='file' name='userfile'></div>
  35.       <input type='submit'  name='submit6'>";    
  36.  
  37. ?>



Доброе утро! Чтобы было понятнее, я добавил из ранне присланных кодов две строки:
$dir= implode('<br>', preg_filter('/.+\.pdf$/i', "$0", scandir($path)));
$pdf= $filename.'/'.$dir;


После submit формы, проверка if($dir!=NULL) с строке 4 не должна выполняться т.к.
файл сохраняется move_uploaded_file($_FILES['userfile']['tmp_name'], $target) в строеке 19

Зачем нужен global $display?
Vladimir Kheifets Отправлено: 19 Июня, 2017 - 15:12:07 • Тема: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает? • Форум: Вопросы новичков

Ответов: 13
Просмотров: 268
[quote=zapatronen][/quote]
zapatronen пишет:


1. Проверьте,пожалйста, HTML структуру. В Вашем случае, например, нет <body> </body>. Кажется до </head> не встретился <head> и нет php-header.
см. https://wiki[dot]selfhtml[dot]org/wiki/H[dot][dot][dot]turierung/header
Должно быть примерно так:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2.     <head>
  3.       ...................
  4.     </head>
  5.     <body>
  6.           <header>
  7.                 ...................
  8.           </header>        
  9.     </body>
  10. </html>

2.Меня смущает то, что в скрипте head.php session_start() в 25 строке.
Вообще-то сессия должна стартовать в начале до первого output.
Если Вы поставите error_reporting(E_ALL), то увидете сообщения об ошибке:
Cannot send session cookie - headers already sent by (output started at .....
Cannot send session cache limiter - headers already sent (output started at ....
Vladimir Kheifets Отправлено: 19 Июня, 2017 - 11:19:33 • Тема: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает? • Форум: Вопросы новичков

Ответов: 13
Просмотров: 268
zapatronen пишет:
Должно же сразу все работать как только я нажал сабмит, страница же обновляется, почему $dir обновлятся только со второго обновления страницы?

Добрый день! Я понял так, что данные обнавляются после того, как Вы щёлкаете по Refresh в браузере. Не могли бы Вы показать то, что у Вас написано в php-header или в HTML между тэгами <html> и <body>?
Vladimir Kheifets Отправлено: 18 Июня, 2017 - 08:52:50 • Тема: вывод сообщений • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 266
Sail пишет:
Vladimir Kheifets, и получите все сообщения за последнюю дату.
Добавьте связку соотнесенного подзапроса с отправителем или получателем сообщения, чтобы идентифицировать диалог. Учтя при этом, что отправитель или получатель в одном диалоге могут участвовать в других диалогах, с другими получателями или отправителями...
При этом допускаем, что (судя по структуре таблички) между парой отправитель-получатель может вестись только один диалог...


Из название поля "date" не следует, что тип поля также "date".
В данном случае, тип поля должен быть "datetime".
Исходя из этого я показал как найти последнее сообщение.
Конечно, Вы правы, что допускать можно всё, что угодно и если необходимо ставить дополнительные условия. MySQL справится.
Vladimir Kheifets Отправлено: 17 Июня, 2017 - 08:07:42 • Тема: Закрыть доступ к файлам • Форум: Вопросы новичков

Ответов: 5
Просмотров: 176
pantela пишет:
В пользователи загружают свои файлы: фото профиля, скан паспорта, скан договора...
Форматы: JPG/JPEG, BMP, PNG, PDF
Хочу макс. закрыть доступ к файлам, чтобы было доступно третьим лицам.


Добрый день! Разумеется доступ к файлам нужно давать только после авторизации пользователя.
В папку, в которой сохраняются эти документы можно добавить .htaccess
CODE (htmlphp):
скопировать код в буфер обмена
  1. <FilesMatch ~ "\.(jpg|jpeg|bmp|png|pdf)$">
  2.   Order allow,deny
  3.   Deny from all
  4. </FilesMatch>

Eсли в папке сохраняются только документы,то .htaccess
CODE (htmlphp):
скопировать код в буфер обмена
  1.   Order allow,deny
  2.   Deny from all

Можете быть найдёте что-то полезное здесь:
http://www[dot]securityscripts[dot]ru/ar[dot][dot][dot]te-htaccess[dot]html
Vladimir Kheifets Отправлено: 15 Июня, 2017 - 19:57:51 • Тема: Приближение при выборе select на моб телефоне • Форум: Операционная система и системные вызовы

Ответов: 2
Просмотров: 614
rol007 пишет:
При клике на select на мобильном телефоне поле отображается на всю ширину экрана и снизу появляется список.
Подскажите, возможно ли сделать, что бы после выбора option масштаб возвращался?
И тоже самое с input.


Вы случайно не забыли написать Viewport Meta Tag в <head>?
Например:
CODE (html):
скопировать код в буфер обмена
  1. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
Можете посмотреть, как это работает здесь(QR для смартфонов):
Vladimir Kheifets Отправлено: 15 Июня, 2017 - 19:39:17 • Тема: Вывод файла начиная с последней строки • Форум: Вопросы новичков

Ответов: 20
Просмотров: 443
Clover7 пишет:
Спасибо, но не работает страница не открывается.

Нужно прежде всего понять прочитались ли данные в массив $buf
и что получилось после array_reverse($buf).
Для этого нужно распечатать $buf и переменную $v:
PHP:
скопировать код в буфер обмена
  1. $buf=array();
  2.     if ($fp = fopen("state.dat", "r"))
  3.             {
  4.             while (!feof($fp)) {
  5.                 $buf[] = fgets($fp);          
  6.             }
  7.             fclose($fp);
  8.     }
  9.    print_r($buf) ;
  10.    print "<hr>";  
  11.     $logg = "";
  12.     foreach (array_reverse($buf) as $v)
  13.     {        
  14.         print  $v."<br>";
  15.         $logg .= $v."<br>";
  16.     }
Vladimir Kheifets Отправлено: 15 Июня, 2017 - 14:09:00 • Тема: Вывод файла начиная с последней строки • Форум: Вопросы новичков

Ответов: 20
Просмотров: 443
Здравствуйте! Попробуйте так:
PHP:
скопировать код в буфер обмена
  1. $buf=array();
  2. if ($fp = fopen("state.dat", "r"))
  3.         {
  4.         while (!feof($fp)) {
  5.             $buf[] = fgets($fp);          
  6.         }
  7.         fclose($fp);
  8. }    
  9. $logg = "";
  10. foreach (array_reverse($buf) as $v) $logg .= $v."<br>";
Vladimir Kheifets Отправлено: 15 Июня, 2017 - 08:34:01 • Тема: вывод сообщений • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 266
Богдан Скуба пишет:
Всем привет, у меня есть таблица : messages
id | sender | taker | message | date | value
нужно вывести последние сообщения всех диалогов отсортированых по date
все перепробовал ничего придумать или найти не могу


Привет! Попробуйте так. Проверил. У меня работает.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT message FROM messages WHERE date = ( SELECT MAX(date) FROM messages)
Vladimir Kheifets Отправлено: 15 Июня, 2017 - 08:10:49 • Тема: Update query Php Mysql • Форум: Вопросы новичков

Ответов: 2
Просмотров: 176
khomchenko пишет:
Подскажите, где ошибка, не хочет изменять изменения, вносит их в таблицу


Если дааные выбираются, то соединение работает.
Значит либо проблема в $user_id, либо в структуре БД.
Вам необходимо добавить в 50 строке die(mysqli_error($dbcon))
Вы увидете в чём причина.

Vladimir Kheifets Отправлено: 14 Июня, 2017 - 20:21:37 • Тема: Сегодня обнаружил что мой сайт открывается под другим доменом • Форум: Программирование на PHP

Ответов: 3
Просмотров: 165
kikosik666 пишет:
Ok Спасибо
(Добавление)
А если этот сайт на cloudflare, закрыть ип смогу?


Вам нужно определить все ip, которые нужно закрыть и если их несколько,
то задать несколько команд Deny from ХХХ.ХХХ.ХХХ.ХХХ для каждого адреса.
Я проверял редирект с одного домена на другой и это блокировка сработала.
Попробуйте. Если хототите, могу сделать редирект с одного из моих доменов на Ваш.

Страниц (4): [1] 2 3 4 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB