Форумы портала PHP.SU » » Вопросы новичков » Помогите с кодом

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

1. Archangel-n - 19 Июля, 2017 - 10:25:40 - перейти к сообщению
Всем доброе время суток, сейчас изучаю РНР и как его и с чем кушать Улыбка знания основ ООП имеется, но возник вопрос следующий
Кусок кода:
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <head>
  3.     <title>Authentication</title>
  4.     <link href="styles.css" rel="stylesheet" type="text/css">
  5. </head >
  6.  
  7. <?PHP   require_once("cnt.php");
  8.  
  9. ?>
  10. <body aligh="center">
  11. <br><br><br><br><br><br><br><br><br>
  12. <center>
  13.     <h1>Авторизация</h1>
  14.  
  15.  
  16.     <form  action=Authentication.php method=post>
  17.         <table width="300" height="100" border="3" cellpadding="0" cellspacing="0" class="frame" id="Table_01">
  18.             <tr>
  19.                 <td>Логин </td>
  20.                 <td>Пароль</td>
  21.             </tr>
  22.             <tr>
  23.                 <td><input type=text name=Login value="Enter Login"> </td>
  24.                 <td><input type=password name=pass value="Enter Password"> </td>
  25.             </tr>
  26.             <tr>  <td align="right" colspan="2"><input type=submit value='Авторизировать в системе'></td> </tr>
  27.         </table>
  28.         <form/>
  29.         <?PHP
  30.       //  echo isset ($_POST[Login]);
  31.       //  if(isset($_POST[Login]) && !empty($_POST[Login]) && $_POST[Login] && 'details' == $_POST[Login])
  32.         $_POST[Login]="Login";
  33.         if (empty($_POST[Login])) {
  34.             echo "Enter Login";
  35.         }
  36.  
  37.  
  38.         $query = "SELECT pass FROM $dbtables1 WHERE name='$_POST[Login]'";
  39.         $lst = @mysql_query($query);
  40.         $pass = @mysql_fetch_array($lst);
  41.         if(md5($_POST['pass']) != $pass['pass']) {
  42.             if ($_COOKIE[sample] > 3) {
  43.                 echo "Вы  ввели неверно пароль  <div style='color:#ff0000'>$_COOKIE[sample]</div> раза <br> подождите 5 минут и повторите попытку входа ";
  44.                 exit();
  45.             }
  46.  
  47.         ?>
  48. </center>
  49. <?PHP
  50. $_COOKIE['sample']=2;
  51. setcookie("sample", $_COOKIE[sample] , time() + 600);
  52. if (!isset($_POST[Login])) echo "не введен параметр";else
  53.     echo "<center><h1 style='color:#ff0000'>неверно введен пароль или логин</h1></center>";
  54. echo "попытка   $_COOKIE[sample] из 4х <br>";
  55. echo "попытка входа  $_COOKIE[sample] из 4х ";
  56.  
  57. echo  "<br>Введено $_POST[Login]";
  58. echo  "<br>Введено $_POST[pass]";
  59. echo  "<br>параметр переданный от БД $pass[pass]";
  60.  
  61. }
  62. else
  63. {
  64.     session_start();
  65.     SetCookie("sample","");
  66.     //тест передачи данных через сесию
  67.     $_SESSION['test']='Hello world!';
  68.     $_SESSION['name']=$_POST[Login];
  69.     header('Refresh: 0; URL=index.php');
  70.     exit;
  71. }
  72. ?>
  73. </body>


При выполнение страницы выходит следующие
Нажмите для увеличения


Отключать нотисы и ерроры не охота охота убрать это, и вот вопрос то что
Notice: Use of undefined constant Примечание: использование неопределенной константы

Notice: Undefined index Примечание. Неопределенный индекс
то я то понял что оно от меня хочет, но как объявить константу? вроде объявил выше

подскажите плз что тут неправильно? что делать?
2. psevdo - 19 Июля, 2017 - 10:46:03 - перейти к сообщению
В 32-ой строке. Разве индекс не нужно заключать в кавычки или апострофы?
CODE (htmlphp):
скопировать код в буфер обмена
  1. $_POST['Login']="Login";
3. Archangel-n - 23 Августа, 2017 - 10:14:15 - перейти к сообщению
Дабы не плодить, темы там то уже понял, но а тут не выходит убрать нотис, может что то не так делаю?
вот Такой нотиc
[img][img]https://preview[dot]ibb[dot]co/crRPP5/PHP[dot]jpg[/img][/img]
но скобки не дает проставить что б обьявить как переменную, подскажите как здесь быть? спасибо
КОД
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <head>
  3.     <title>Authentication</title>
  4.     <link href="styles.css" rel="stylesheet" type="text/css">
  5. </head >
  6.  
  7. <?PHP   require_once("cnt.php");
  8.  
  9. ?>
  10. <body aligh="center">
  11. <br><br><br><br><br><br><br><br><br>
  12. <center>
  13.     <h1>Авторизация</h1>
  14.  
  15.  
  16.     <form  action=Authentication.php method=post>
  17.         <table width="300" height="100" border="3" cellpadding="0" cellspacing="0" class="frame" id="Table_01">
  18.             <tr>
  19.                 <td>Логин </td>
  20.                 <td>Пароль</td>
  21.             </tr>
  22.             <tr>
  23.                 <td><input type=text name=Login value="Enter Login"> </td>
  24.                 <td><input type=password name=pass value="Enter Password"> </td>
  25.             </tr>
  26.             <tr>  <td align="right" colspan="2"><input type=submit value='Авторизировать в системе'></td> </tr>
  27.         </table>
  28.         <form/>
  29.         <?PHP
  30.       //  echo isset ($_POST[Login]);
  31.       //  if(isset($_POST[Login]) && !empty($_POST[Login]) && $_POST[Login] && 'details' == $_POST[Login])
  32.        // $_POST[Login]="Login";
  33.         if (empty($_POST['Login'])) {
  34.             echo "Enter Login";
  35.         }
  36.  
  37.  
  38.         $query = "SELECT pass FROM $dbtables1 WHERE name='$_POST[Login]''";
  39.         $lst = @mysql_query($query);
  40.         $pass = @mysql_fetch_array($lst);
  41.         if(md5($_POST['pass']) != $pass['pass']) {
  42.             if ($_COOKIE['sample'] > 3) {
  43.                 echo "Вы  ввели неверно пароль  <div style='color:#ff0000'>$_COOKIE[sample]</div> раза <br> подождите 5 минут и повторите попытку входа ";
  44.                 exit();
  45.             }
  46.  
  47.         ?>
  48. </center>
  49. <?PHP
  50. $_COOKIE['sample']=2;
  51. setcookie("sample", $_COOKIE[sample] , time() + 600);
  52. if (!isset($_POST['Login'])) echo "не введен параметр";else
  53.     echo "<center><h1 style='color:#ff0000'>неверно введен пароль или логин</h1></center>";
  54. echo "попытка   $_COOKIE[sample] из 4х <br>";
  55. echo "попытка входа  $_COOKIE[sample] из 4х ";
  56.  
  57. if(empty($_POST['Login']))echo "пустое поле<br>";
  58.      else echo  "<br>Введено $_POST[Login]";
  59. //echo  "<br>Введено $_POST[Login]";
  60. if(empty($_POST['pass']))echo "пустое поле<br>";
  61.     else echo  "<br>Введено $_POST[pass]";
  62. //echo  "<br>Введено $_POST[pass]";
  63. if(empty($pass['pass']))echo "пустое поле<br>";
  64.     else echo  "<br>параметр переданный от БД $pass[pass]";
  65. //echo  "<br>параметр переданный от БД $pass[pass]";
  66.  
  67. }
  68. else
  69. {
  70.     session_start();
  71.     SetCookie("sample","");
  72.     //тест передачи данных через сесию
  73.     $_SESSION['test']='Hello world!';
  74.     $_SESSION['name']=$_POST[Login];
  75.     header('Refresh: 0; URL=index.php');
  76.     exit;
  77. }
  78. ?>
  79. </body>
4. rgl - 23 Августа, 2017 - 11:20:33 - перейти к сообщению
38-я строчка - а почему одинарные кавычки в конце двоятся? (к нотису эта ошибка отношения не имеет)
А нотис из-за того, что индекс действительно не определен, что показывают 33-я и 34 строчки.

P.S.
Кстати, вставка напрямую значений, полученных от клиента в SQL-ные селекты (типа ... WHERE name='$_POST[Login]') может быть дыркой в безопасности. Используйте хотя-бы addslashes()
5. htmaker - 24 Августа, 2017 - 07:01:35 - перейти к сообщению
На 32 строке он ключ Login воспринимает как константу потому что она не заключена в кавычки. Для информации константа объявляется в PHP с помощью такой конструкции:
PHP:
скопировать код в буфер обмена
  1. define("CONTS_NAME","Значение константы");


После чего может быть доступна в коде без символа $ (так начинаются переменные).
PHP:
скопировать код в буфер обмена
  1.  
  2. echo CONTS_NAME;
  3.  
6. MouseZver - 24 Августа, 2017 - 11:33:55 - перейти к сообщению
во первых вам надо усвоить одно - все ключи строковые должны быть помещены в апострофы ' $array['key'] $array[0] $array['0_string']

во вторых переходите на MySqli_* или PDO + не используйте @ это грех

и самое главное - валидация всех всех переменных с учетом выявлений их отсутствия undefined. Хорошая Валидация путь к успеху. Пример валидации можно посмотреть у меня:

https://github[dot]com/MouseZver/My-[dot][dot][dot]/64708/index.php
(Добавление)
https://github[dot]com/MouseZver/Mou[dot][dot][dot]ge/auth/init.php
7. Archangel-n - 07 Сентября, 2017 - 13:33:37 - перейти к сообщению
Народ а подскажите плз при наждатие кнопки сейв происходит добавление пробелов, не пойму откуда Улыбка заранее спасибо всем Вам Улыбка
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html>
  2. <head>
  3.     <title>Upload page </title>
  4.     <link href="styles.css" rel="stylesheet" type="text/css">
  5.     <?PHP require_once("cnt.php"); require_once("sesion.php");?>
  6. </head>
  7. <body>
  8. <?PHP
  9. if(isset($_POST['content']))
  10. {
  11.     $fd = @fopen($_POST['filename'], "w");
  12.     if(!$fd) exit("Такой файл отсутствует");
  13.     fwrite($fd, stripslashes($_POST['content']));
  14.     fclose($fd);
  15.     $_GET['filename'] = $_POST['filename'];
  16. }
  17. ?>
  18. <table  width ="100%" height ="100%" border="0" cellpadding="0" cellspacing="0" >
  19.  
  20.     <tr height ="275" ></tr>
  21.     <tr  align ="center" ><td colspan="2"><h3 style="color:LightGreen" >Редактирование  данных в файле </h3></td></tr>
  22.     <tr align ="center"><td>
  23.             <?PHP
  24.                 define("Test_const","Test_constant");
  25.                 echo "Test";
  26.                 echo Test_const;
  27.                 define("Test_const2",NULL);
  28.                 define("filename",NULL);
  29.                 //echo Test_const3;
  30.             ?>
  31.             <form action = "edit_BD.php" name=first method="get">
  32.                 <?PHP
  33.                 if (empty($_POST['filename'])){
  34.                     ?>
  35.                     Имя файла  <input type="text" name="filename"
  36.                                       value="Пустое поле">
  37.                     <input type="submit" value="Open">
  38.                     <?PHP
  39.                 }
  40.                 else {
  41.                     ?>
  42.                      Имя файла  <input type="text" name="filename"
  43.                                      value=<?PHP echo $_GET['filename']; ?>
  44.                       <input type="submit" value="Open">
  45.                     <?PHP
  46.                 }
  47.                 ?>
  48.  
  49.  
  50.                 <?PHP     if(empty($_GET['filename']))echo "пустое поле в именни файла <br>";
  51.                 else { ?>
  52.  
  53.                 <?PHP
  54.                 if (empty($_POST['filename'])){
  55.                     echo "Test= ";
  56.                     echo "Пустая строка";
  57.                 }
  58.                 else {
  59.                     echo "Test= ";
  60.                     echo $_POST['filename'];
  61.                 }
  62.                 ?>
  63.              </form>
  64.         </td>
  65.     </tr>
  66.     <?PHP
  67.     if (isset($_GET['filename']))
  68.     {
  69.     $fd = @fopen($_GET['filename'], "r+");
  70.     if (!$fd) exit("Такой файл отсутствует");
  71.     $bufer = fread($fd, filesize($_GET['filename']));
  72.     //$bufer=trimm($bufer);
  73.     ?>
  74.     <tr align="center">
  75.         <td>
  76.             <form action="edit_BD.php" name=second method="post">
  77.          <textarea cols=76 rows=10 name="content">
  78.             <?PHP
  79.                   echo $bufer;
  80.             ?>
  81.          </textarea><br>
  82.                 <input type="hidden" name=filename value='<?PHP echo $_GET['filename']; ?>'>
  83.                 <input type="submit" name=edit value="Save">
  84.             </form>
  85.             <?PHP
  86.             if (empty($bufer)){
  87.                 echo "Пустой буфер";
  88.             }
  89.             else {
  90.                 echo "Запись";
  91.                 $Test_String="Test String";
  92.                 $test_write =fwrite($fd,$Test_String);
  93.             }
  94.     }
  95.             }
  96.  
  97.  
  98.                 ?>
  99.         </td></tr>
  100.  
  101.  
  102.     <?PHP  if(isset($_GET['filename'])) echo " <tr height ='322'><td></td></tr>"; else echo "  <tr height ='490'><td></td></tr>";?>
  103.     <tr  align ="right"> <td>
  104.             <input type="button" value="Back" onclick="location.href='index.php'" />
  105.         </td> </tr>
  106. </table>
  107. </body>

(Добавление)
MouseZver спасибо Вам, пока не могу нажать спасибо Улыбка

 

Powered by ExBB FM 1.0 RC1