Автор Тема: $_get  (Прочетена 701 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

ivakisa

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
$_get
« -: 14 Април 2014, 18:34:21 »
Код: PHP
  1. <form action="postget.php" method="get">
  2.     <input type="text" value="name">
  3.     <input type="text" value="cols">
  4.     <input type="submit" value="Click">
  5. </form>
  6. <?php
  7. echo $_GET['name'];
  8. ?>

Значи пичове имам проблем.Не мисля,че трябва да обяснявам какво прави кода,защото е достатъчно прост.Като отида в браузъра и дава грешка при echo $_GET['name'];. Помогнете :(

howto

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 44
  • -Получени: 4
  • Публикации: 341
Re: $_get
« Отговор #1 -: 14 Април 2014, 18:50:36 »
 :) Здравей пичаго.
Защо се получава така? Трябва да направиш action на формата ти да бъде  post ако си решил да хванеш поле с value=name
И value се ползва когато искаш да дадеш текст към полето .
Ето една форма копирай :
Код: PHP
  1. <form action="postget.php" method="post">
  2.     <input type="text" name="name">
  3.     <input type="text" value="cols">
  4.     <input type="submit" value="Click">
  5. </form>
  6. <?php
  7. if (empty($_POST['name']))
  8. {
  9. echo "Cukni butona purvo";
  10. }
  11. else
  12. {
  13. echo $_POST['name'];
  14. }
  15. ?>
Ако имаш желание да ползваш $_GET трябва да видиш за какво се ползва тук има много добри уроци за PHP лично мое мнение най-добрите в БГ :) успех пиши ако имаш проблеми.
« Последна редакция: 14 Април 2014, 18:54:57 от howto »

ivakisa

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: $_get
« Отговор #2 -: 14 Април 2014, 18:57:14 »
Еми мога само да кажа едно голямо БЛАГОДАРЯ :)

howto

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 44
  • -Получени: 4
  • Публикации: 341
Re: $_get
« Отговор #3 -: 14 Април 2014, 19:01:35 »
Еми нп добре си дошъл във форума :)

HD

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 208
  • -Получени: 165
  • Публикации: 3077
Re: $_get
« Отговор #4 -: 15 Април 2014, 18:03:49 »
Хубаво е че се появяват нови лъвчета във форума. Това означава, че все още не сме замрели.  Най-общо казано $_GET се използва, когато искаш да правиш трансфер на данни, които не представляват някакъв риск за сигурността на проектта ти. Все пак тези данни, които минават през $_GET са видими в url-a на браузъра ти.

howto

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 44
  • -Получени: 4
  • Публикации: 341
Re: $_get
« Отговор #5 -: 15 Април 2014, 19:16:32 »
Така е HD. Все пак всичко зависи от нас самите :) Супер е, че има хора като теб, които добре обясняват кода щот едно е да го разбираш друго е да го обясниш на някого  :).

ivakisa

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: $_get
« Отговор #6 -: 17 Април 2014, 15:49:39 »
Дойде време пак да ви тормозя. :D
Гледам от уроците на гатака и стигнах до урока с адресната книга(1).
Нека ви покажа кода:

Код: PHP
  1. <?php
  2. ?>
  3. <!DOCTYPE html>
  4. <html>
  5.     <head>
  6.         <meta charset="UTF-8">
  7.         <title>Friends</title>
  8.     </head>
  9.     <body>
  10.         <?php
  11.        
  12.         if($_SESSION["is_logged"]==true)
  13.         {
  14.             echo '<a href="logout.php"> Logout </a>';
  15.             //TODO list with friends
  16.         }
  17.         else
  18.         {
  19.             $login= trim($_POST['login']);
  20.             $pass= trim($_POST['pass']);
  21.             if (strlen('login')>3 && strlen('pass')>3)
  22.             {
  23.                if($login=="pesho" && $pass=="12345")
  24.                {
  25.                      $_SESSION['is_logged']=true;
  26.                      header('Location: index.php');
  27.                      
  28.                }
  29.               else
  30.               {
  31.                   echo "wrond username/password";
  32.               }
  33.             }
  34.             else
  35.             {
  36.                  
  37.             }
  38.                
  39.        
  40.             ?>
  41.          <form method="post" action="index.php">
  42.             Username:<input type="text" name="login"><br>  
  43.             Password:<input type="password" name="pass"><br>
  44.             <input type="submit" value="Login">
  45.          </form>    
  46.            <?php
  47.         }
  48.         ?>
  49.     </body>
  50. </html>
  51.  

И проблема е ,че в браузъра се появява това:
Notice: Undefined index: is_logged in D:\xampp\htdocs\friends\index.php on line 13

Did0_

  • Full Member
  • ***
  • Благодарности
  • -Казани: 3
  • -Получени: 1
  • Публикации: 101
Re: $_get
« Отговор #7 -: 17 Април 2014, 16:35:15 »
промени if($_SESSION["is_logged"]==true) на if($_SESSION["is_logged"]==true && isset($_SESSION['is_logged']))

ivakisa

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: $_get
« Отговор #8 -: 17 Април 2014, 17:00:27 »
Няма резултат :)
Също така дава Undefined index и при $_host.Ще съм благодарен ,ако някой ми обясни защо  при мен ги има тези грешки при условие,че в урока на гатака ги няма.

kjufte

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 1
  • -Получени: 51
  • Публикации: 308
Re: $_get
« Отговор #9 -: 17 Април 2014, 18:14:19 »
промени if($_SESSION["is_logged"]==true) на if($_SESSION["is_logged"]==true && isset($_SESSION['is_logged']))

до колкото знам php интерпретера е от мързеливите. Та като се оакат нещата на първото условие той второто хич не го бара. От което следва че да проверяваш isset след като си се опитал да четеш променливата е след дъжд качулка.

ivakisa

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: $_get
« Отговор #10 -: 17 Април 2014, 18:29:00 »
Значи пичове оправих проблема :)

if(isset($_SESSION["is_logged"])==true)

същото и при HOST

kjufte

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 1
  • -Получени: 51
  • Публикации: 308
Re: $_get
« Отговор #11 -: 17 Април 2014, 18:42:22 »
Ако $_SESSION["is_logged"] може да бъде true или false, то тогава кода е невалиден. При стойност false твойта проверкапак връща true.

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: $_get
« Отговор #12 -: 17 Април 2014, 21:40:35 »
@ivakisa, явно основните съставни на езика още не са ти достатъчно добре изяснени. Щом си стигнал до този урок би трябвало да си преминал през началните уроци за начинаещи, би било добре да прегледаш отново някои от тях. Можеш да започнеш също да използваш и най-ценния ресурс - документацията, която за щастие е преведена в голяма степен на роден език. Функцията isset(), която използваш връща като резултат булева стойност в зависимост от това дали дадена променлива е дефинирана или не. Тя не връща стойността на променливата, която се проверява, затова не трябва да правиш подобен неправилен израз от рода на "isset($_SESSION["is_logged"])==true". Също при положение, че променливата $_SESSION["is_logged"] условно приема булева стойност можеш да бъдеш по-стриктен в проверката си като използваш оператора за сравнение по тип и стойност.

Пример:
Код: PHP
  1. if (isset($_SESSION['is_logged']) && $_SESSION['is_logged'] === true) { }

Добре е също да дъмпваш (проучваш, изследваш) даден израз каква стойност има, за да не се объркваш.

Пример:

Код: PHP
  1. $variable = false;
  2.   isset($variable),
  3.   isset($variable) == true,
  4.   $variable == true
  5. );