PHP.SU

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

Страниц (59): В начало « ... 51 52 53 54 55 [56] 57 58 59 »

> Найдено сообщений: 881
Vladimir Kheifets Отправлено: 20 Июня, 2017 - 10:03:29 • Тема: Проподает ник при переходе на другую страничку... • Форум: Программирование на PHP

Ответов: 2
Просмотров: 675
Ошибка в НТ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 • Тема: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 802
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 • Тема: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 802
[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 • Тема: Нажатие кнопкки сабмит в форме обновляет страницу или только внутри формы срабатывает? • Форум: Вопросы новичков

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

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

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


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

Ответов: 5
Просмотров: 339
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
Просмотров: 2768
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
Просмотров: 1057
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
Просмотров: 1057
Здравствуйте! Попробуйте так:
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
Просмотров: 117
Богдан Скуба пишет:
Всем привет, у меня есть таблица : 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
Просмотров: 189
khomchenko пишет:
Подскажите, где ошибка, не хочет изменять изменения, вносит их в таблицу


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

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

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


Вам нужно определить все ip, которые нужно закрыть и если их несколько,
то задать несколько команд Deny from ХХХ.ХХХ.ХХХ.ХХХ для каждого адреса.
Я проверял редирект с одного домена на другой и это блокировка сработала.
Попробуйте. Если хототите, могу сделать редирект с одного из моих доменов на Ваш.
Vladimir Kheifets Отправлено: 14 Июня, 2017 - 19:37:50 • Тема: Помогите, пожалуйста, с задачей • Форум: Напишите за меня, пожалуйста

Ответов: 1
Просмотров: 50
Вишенка пишет:
Числа вводятся с клавиатуры до тех пор, пока не встретятся идущие подряд три отрицательных числа. Написать программу, печатающую те тройки чисел, которые могут быть длинами сторон равнобедренного треугольника.
Помогите написать код Огорчение Проблема с осуществлением этого ввода чисел и сохранением введённых данных


Добрый вечер!

Откровенно говоря, мне не нравится идея вводить данные "пока не встретяться идущие подряд три отрицательных числа".
Думаю, что правильнее поставить кнопку для окончания вввода данных.
Так я и сделал, однако три отрицальных числа также обрабатываются.
Ещё есть две кнопки. Одна для дополнения чисел, а вторая для удаления смаркированных чисел.
Если что-то будет непонятно, спрашивайте.
Удачи!


Можете посмотреть здесь:

https://www[dot]alto-booking[dot]com/tes[dot][dot][dot]/InputNumber.php

Код:

PHP:
скопировать код в буфер обмена
  1. <?
  2. if(isset($_POST))
  3. {
  4.         $NumberArr=preg_split("/\D+/",$_POST['NumberPack']);
  5.         $k=count($NumberArr);
  6. }
  7. else $k=0;
  8. ?>
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  12. <style>
  13. select{height:300px; width:100px}
  14. </style>
  15. <title>Demo</title>
  16. <script>
  17.         var kMn=0;
  18.         function addNumber(){
  19.                 s=document.getElementById("NumberList");
  20.                 n=document.getElementById("Number").value;
  21.                 if(parseInt(n)<0)
  22.                 {
  23.                         kMn++;
  24.                         if(kMn>2)
  25.                         {
  26.                                 OptionToArr("NumberList");
  27.                                 return;
  28.                         }
  29.                 }
  30.                 else
  31.                 {
  32.                         kMn=0;
  33.                         o = document.createElement("option");
  34.                         o.text = n;
  35.                         o.value = n;
  36.                         s.add(o);
  37.                 }
  38.         }
  39.         //--------------------------------------------
  40.         function removeNumber(){
  41.                 s = document.getElementById("NumberList");
  42.                 s.remove(s.selectedIndex);
  43.         }
  44.         //--------------------------------------------
  45.         function OptionToArr(obj){
  46.         var NumberArr = new Array();
  47.                 s = document.getElementById(obj);
  48.                 k = s.length;
  49.                 if(k<3)
  50.                 {
  51.                         alert("Ошибка! Вы должны ввести не меньше трёх чисел!");
  52.                         return;
  53.                 }
  54.                 for (i=0; i<k; i++)
  55.                 {
  56.                         NumberArr[i] = s.options[i].text;
  57.                 }
  58.  
  59.                 //------------------------------
  60.                 debug="";
  61.                 buf="";
  62.                 for (i=0; i<k; i++)
  63.                 {
  64.                         debug+=(i+1)+": "+NumberArr[i]+"\n";
  65.                         buf+=NumberArr[i]+";";
  66.                 }
  67.                 alert("Количество введеных данных: "+k+"\nВы ввели числа:\n"+debug);           
  68.                 //------------------------------
  69.                 f=document.Myform;
  70.                 f.NumberPack.value=buf.substring(0,buf.length-1);
  71.                 f.submit();
  72.         }
  73. </script>
  74. </head>
  75. <body>
  76. <form action="" method="post" name="Myform" id="Myform" >
  77. <table width="293" border="1">
  78.   <tr>
  79.     <td width="144" valign="top"><input name="Number"  id="Number" type="text"  onClick="this.value=''" /></td>
  80.         <td width="38" valign="top">
  81.         <input type="button" name="add" id="add" value=">>>"  onclick="addNumber()"/>        <input type="button" name="remove" id="remove" value="<<<"  onclick="removeNumber()"/>
  82.         <br />    </td>
  83.     <td width="89">
  84.         <select name="NumberList" size="50" multiple="multiple" id="NumberList" >
  85.     <?
  86.         if($k>0)
  87.         {
  88.                 foreach($NumberArr as $v)
  89.                 {
  90.                         if($v>0)echo "<option>$v</option>\n";
  91.                 }
  92.         }
  93.         ?>
  94.         </select>
  95.         </td>
  96. </tr>
  97.  
  98. <tr>
  99.     <td height="47" colspan="3" align="center" valign="middle">
  100.       <input type="button" name="end" id="end" value="Обработка данных"  onClick="OptionToArr('NumberList')"/>
  101.     </td>
  102. </tr>
  103. </table>
  104. <input name="NumberPack"  type="hidden" value="">
  105. </form>
  106. <?
  107. if($k>0)
  108. {
  109.         echo "<hr>Количество введеных данных: ".$k."<br>Вы ввели числа:<br>";
  110.         foreach($NumberArr as $v)
  111.         {
  112.                 echo "$v<br>";
  113.         }
  114.         sort($NumberArr);
  115.         $i=0;
  116.         $iP=0;
  117.         $iNP=0;
  118.         $NumberArrP=array();
  119.         $NumberArrNP=array();
  120.         while ($i<$k)
  121.         {
  122.        if($i+1<$k)
  123.        {
  124.           if($NumberArr[$i]==$NumberArr[$i+1])
  125.           {
  126.                  $NumberArrP[$iP]=$NumberArr[$i];
  127.                  $i=$i+2;
  128.                  $iP++;
  129.           }
  130.           else
  131.           {
  132.              $NumberArrNP[$iNP]=$NumberArr[$i];
  133.                  $iNP++;
  134.                  $i++;
  135.           }
  136.        }
  137.        else
  138.        {
  139.                 $NumberArrNP[$iNP]=$NumberArr[$i];
  140.                 $iNP++;
  141.                 $i++;
  142.        }
  143.         }
  144.         echo "<hr>";
  145.         foreach($NumberArrP as $v1)
  146.         {
  147.                 echo "Длины сторон трегольника: $v1<br>";
  148.                 foreach($NumberArrNP as $v2)
  149.                 {
  150.                    if($v2<2*$v1)
  151.                    {
  152.                       echo "Длина основания трегольника: $v2<br>";
  153.                    }
  154.                 }
  155.         echo "<hr>";
  156.         }
  157.  
  158. }
  159. ?>
  160. </body>
  161. </html>
Vladimir Kheifets Отправлено: 13 Июня, 2017 - 11:31:48 • Тема: Сегодня обнаружил что мой сайт открывается под другим доменом • Форум: Программирование на PHP

Ответов: 4
Просмотров: 1118
kikosik666 пишет:
Здравствуйте,
Сегодня обнаружил что мой сайт открывается под другим доменом.
Можете помочь мне, как могу сделать так чтобы под этим доменом не открывался мой сайт? Думаю они сделали редирект на мой сайт. Получается в инете есть клон моего сайта под другим именем
Есть способ отключить или запретить доступ (редирект) к моему сайту?
Спасибо


Здравствуйте! Вам нужно определить адрес домена, с которого идёт редирект, например 212.227.160.244.
Дополнить файл .htaccess ( например, в директории test) следующими командами:
Order Allow,Deny
Deny from 212.227.160.244


Вместо Вашего сайта будет выдаваться сообщение:

Forbidden
You don't have permission to access /test/ on this server.
-------------------------------- -------------------------------- ----------------
Apache Server at www[dot]ХХХХ[dot]com Port 443
Vladimir Kheifets Отправлено: 12 Июня, 2017 - 17:30:26 • Тема: не удается передать данные в post • Форум: Вопросы новичков

Ответов: 5
Просмотров: 416
ChertenoK_132 пишет:
дело не в самом выводе а в том что программа всегда пишет что пост пуст


Eсли в <select name="PizzasName[]" size="1">
name="PizzasName[]", то значение нужно выбирать из $_POST['PizzasName[]'];
но лучше переименовать "PizzasName[]" в "PizzasNames".

Чтобы увидеть, что передаётся распечатайте print_r($_POST);

Вообще-то если не передаются значения из формы, неплохо бы проверить все ли HTML тэги закрыты.

Страниц (59): В начало « ... 51 52 53 54 55 [56] 57 58 59 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB