2014-08-30 3 views
1

Я новичок в разработке веб-сайтов и общаюсь с BootStrap. Я пытаюсь создать веб-форму на своем новом веб-сайте, но я не могу получить доступ к переменной имени пользователя.Невозможно получить доступ к переменной формы с помощью php

Вот мой код формы:

<form class="navbar-form navbar-left" role="search" action="username"> 
     <div class="form-group"> 
      <input name="username" type="text" class="form-control" placeholder="Username"> 
     </div> 
     <button type="submit" class="btn btn-default">Search</button> 
    </form> 

А вот мой index.php в папке Имя пользователя:

<?php 
     echo $_POST['username']; 
     echo 'fail'; 
     echo 'username'; 
     if(isset($_POST['username'])) { 
      $name = $_POST['username']; 
      echo 'success'; 
     } 
    ?> 

С моей отладки, я получаю сообщение не появится, но не имя пользователя, поэтому я предполагаю, что я делаю что-то не так, как с установкой имени пользователя, так и с его доступом.

+5

Неверное значение атрибута 'action' в вашей форме. Это должно быть имя файла, в котором хранится ваш PHP-код. Кроме того, вы не указали атрибут 'method', который должен быть предпочтительно' post'. – Luka

ответ

0

У вас есть следующие ошибки

  1. Вы не установили атрибут method в вашем form.So, когда форма будет отправлен данные будут опубликованы через прибудет method.And вы должны получить доступ к переменным $_GET для получения данных формы. Итак, здесь, когда вы отправляете форму, данные будут в переменной $_GET. Но вы пытаетесь получить доступ к переменной $_POST в вашем коде. Поэтому вы можете попробовать, как установить атрибут метода method="post в вашей форме и продолжить с тем же кодом в индексе. PHP или попробуйте изменить $_POST до $ _GET` в вашем index.php и не делая никаких изменений в вашей форме

  2. вы definging код в index.php, когда форма submitted.So вам нужно установить action="index.php" в вашем форма

Так будет, как это, наконец,

<form class="navbar-form navbar-left" role="search" action="username/index.php" method="post"> 
    <div class="form-group"> 
     <input name="username" type="text" class="form-control" placeholder="Username"> 
    </div> 
    <button type="submit" class="btn btn-default">Search</button> 
</form> 

index.php

<?php 
     echo $_POST['username']; 
     echo 'fail'; 
     echo 'username'; 
     if(isset($_POST['username'])) { 
      $name = $_POST['username']; 
      echo 'success'; 
     } 
    ?> 

ИЛИ

<form class="navbar-form navbar-left" role="search" action="username/index.php"> 
    <div class="form-group"> 
     <input name="username" type="text" class="form-control" placeholder="Username"> 
    </div> 
    <button type="submit" class="btn btn-default">Search</button> 
</form> 

index.php

<?php 
    echo $_GET['username']; 
    echo 'fail'; 
    echo 'username'; 
    if(isset($_GET['username'])) { 
     $name = $_GET['username']; 
     echo 'success'; 
    } 
?> 
+0

Если 'username' является папкой, так как OP говорит, что это должно быть' action = "/ username /" ' –

0

Установите атрибут index.php и установить action ваш method="post", если доступ к имени пользователя с $_POST['username'] ,

2

По вашему описанию, ваш HTML код должен выглядеть следующим образом:

<form method="post" class="navbar-form navbar-left" role="search" action="username/index.php"> 
    <div class="form-group"> 
     <input name="username" type="text" class="form-control" placeholder="Username"> 
    </div> 
    <button type="submit" class="btn btn-default">Search</button> 
</form> 

Вы также можете использовать <input class="btn btn-default" type="submit" value="Search"/> вместо <button type="submit"></button>.

Смежные вопросы