2016-09-14 3 views
1

будет держать это короткое! Итак, у меня есть страница входа/регистрации, и когда пользователь регистрируется на сайте, я хочу, чтобы на них была показана страница входа. Обратите внимание, что это ОДНА страница с регистрацией и регистрацией бок о бок, и когда ее нажимают, она отображается, а другая скрыта.Заголовок PHP ('Местоположение: XYZ'); найти на div

Адрес: http://prntscr.com/ci48ee - Как это выглядит при погрузке. Вот -index страницы при нажатии битого логина: http://prntscr.com/ci48jh

индекса кода:

<?php 
include 'dbh.php'; 
if(isset($_POST['rsubmit'])){ 
$username = $_POST['username']; 
$email = $_POST['email']; 
$plainpass = $_POST['password']; 
$password = password_hash($plainpass, PASSWORD_BCRYPT, array('cost' => 10)); 
$sql = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$password')"; 
$result = mysqli_query($conn, $sql); 
header('Location: #login'); 
}else {} 
?> 
<!DOCTYPE html> 
<html > 
    <head> 
    <meta charset="UTF-8"> 
    <title>Mr. Liam</title> 
    <link href='http://fonts.googleapis.com/css?family=Titillium+Web:400,300,600' rel='stylesheet' type='text/css'> 
    <link rel="stylesheet" href="css/normalize.css"> 
     <link rel="stylesheet" href="css/style.css"> 
    </head> 
    <body> 
    <div class="form"> 
     <ul class="tab-group"> 
     <li class="tab active"><a href="#signup">Sign Up</a></li> 
     <li class="tab"><a href="#login">Log In</a></li> 
     </ul>  
     <div class="tab-content"> 
     <div id="signup"> 
      <h1>Sign Up to view content</h1>   
      <form action="index.php" method="post">   
      <div class="field-wrap"> 
      <label> 
       Username<span class="req">*</span> 
      </label> 
      <input name="username" type="text"required/> 
      </div> 
      <div class="field-wrap"> 
      <label> 
       Email Address<span class="req">*</span> 
      </label> 
      <input name="email" type="email"required autocomplete="off"/> 
      </div>   
      <div class="field-wrap"> 
      <label> 
       Set A Password<span class="req">*</span> 
      </label> 
      <input name="password" type="password"required autocomplete="off"/> 
      </div>   
      <button name="rsubmit" type="submit" class="button button-block"/>Register</button>   
      </form> 
     </div>   
     <div id="login"> 
      <h1>Welcome Back!</h1>   
      <form action="/" method="post">   
      <div class="field-wrap"> 
      <label> 
       Email Address<span class="req">*</span> 
      </label> 
      <input type="email"required autocomplete="off"/> 
      </div>   
      <div class="field-wrap"> 
      <label> 
       Password<span class="req">*</span> 
      </label> 
      <input type="password"required autocomplete="off"/> 
      </div>   
      <p class="forgot"><a href="#">Forgot Password?</a></p>   
      <button class="button button-block"/>Log In</button>   
      </form> 
     </div>   
     </div><!-- tab-content -->  
</div> <!-- /form --> 
    <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> 
     <script src="js/index.js"></script> 
    </body> 
</html> 

Я предполагаю, что это что-то вдоль линий это ??

Header('Location: #login'); 

Но когда я пробовал, чтобы он не работал. Если вам нужна дополнительная информация, дайте мне знать!

+0

Опубликовать свой PHP-код, чтобы быть в состоянии помочь! –

+1

'Заголовок (« Местоположение: [...] »)' обычно пересылается на другую страницу.Возможно, вы думаете о якорных тегах? – Blake

+0

lighshots-links недоступно ... лучше включить скриншоты здесь! – Jeff

ответ

1

Вы должны изменить активную вкладку, установив активный класс на соответствующую вкладку.

В настоящее время он находится на вкладке регистрации, и поэтому это будет вкладка, которая будет загружаться по умолчанию. Я изменил его ниже.

 <ul class="tab-group"> 
     <li class="tab"><a href="#signup">Sign Up</a></li> 
     <li class="tab active"><a href="#login">Log In</a></li> 
     </ul> 

Если вы хотите сделать это динамически вы можете сделать ..

<?php 
$currentPage = $_GET['page']; 
?> 

     <ul class="tab-group"> 
     <li class="tab <?php if ($currentPage == "signup"){echo "active" } ?>"><a href="#signup">Sign Up</a></li> 
     <li class="tab <?php if ($currentPage == "login"){echo "active" } ?>"><a href="#login">Log In</a></li> 
     </ul> 

Таким образом, если пользователь переходит на

www.website.com/user?page=login

если отобразится вкладка входа. или если они идут в

www.website.com/user?page=signup

он покажет вкладку регистра.

+2

Это уже на 2 вкладках. –

+0

@LewisHoggerson Извините, что я только что понял. Я обновил свой ответ. Это то, что вы искали? –

1

Ты почти там Льюис. Единственное, что нужно отметить с header("Location: [...]"); и с использованием якоря, такого как #login, это то, что он попытается найти <.... id="login"> и прокрутите его до конца. Он не делает то, что вы хотите, без каких-либо изменений в jQuery.

var allowed = ['#signup', '#login']; 
if (!empty(window.location.hash)) { 
    var action = window.location.hash; 
    // check if in our array 
    if(jQuery.inArray(action, allowed)) { 
     jQuery('a[href=' + action + ']').trigger('click'); 
    } 
} 

Я только что сделал белый список выше (var allowed = ...). Просто для того, чтобы сохранить его от любого нежелательного использования.

Если вы используете Bootstrap, он обычно заботится о самом себе.


Одно замечание о header() является то, что вам нужно квалифицированное местоположение для перенаправления. Таким образом, header("Location: yourwebsite.com/#login"); будет более адекватным.

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