2016-09-24 5 views
0

У меня есть страница входа пользователя и скрипт php, чтобы проверить учетные данные для входа с данными, хранящимися в базе данных. Все работает нормально, я просто попробовал добавить окно msg, стилизованное под CSS, содержащее текст «неправильный адрес электронной почты», если данные для входа не совпадали с данными в базе данных и автоматически вернутся на страницу входа.PHP echo неправильные данные для входа (div)

К сожалению, тзд не будучи вторит и она возвращается на страницу входа ..

мой PHP код выглядит следующим образом ..

<style> 
.alert { 
    padding: 20px; 
    background-color: #f44336; 
    color: white; 
} 

.closebtn { 
    margin-left: 15px; 
    color: white; 
    font-weight: bold; 
    float: right; 
    font-size: 22px; 
    line-height: 20px; 
    cursor: pointer; 
    transition: 0.3s; 
} 

.closebtn:hover { 
    color: black; 
} 
</style 

<?php 
    //15 2 2015 
    session_start(); 
    $Cser = mysqli_connect("localhost","root","*****","database") or die("Server connection failed : ".mysqli_error($Cser)); 
    $email = $_REQUEST["email"]; 
    $password = $_REQUEST["password"]; 


    $s = "select * from fuser where email='".$email."' and password = '".$password."'"; 

    $result = mysqli_query($Cser,$s); 

    $count = mysqli_num_rows($result); 

    if($count>0) 
    { 
     $_SESSION["username"] = $username; 
     $_SESSION["login"]="1"; 
     header("location:../home.php"); 
    } 
    else 
    { 
     echo '<div class="alert">'; 
     echo '<span class="closebtn" onclick="this.parentElement.style.display="none";">&times;</span>'; 
     echo '<strong>Danger!</strong> wrong email id'; 
     echo '</div>'; 
     header("location:sign.php"); 
    } 
?> 

Мой sign.php код следующим образом ::

<!DOCTYPE html> 
<html > 

<?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = "*******"; 
    $dbname = "database"; 
    $conn = new mysqli($servername, $username, $password, $dbname); 


?> 

    <head> 
    <meta charset="UTF-8"> 
    <title>title</title> 
    <script src="http://s.codepen.io/assets/libs/modernizr.js" type="text/javascript"></script> 

<link href='http://fonts.googleapis.com/css?family=PT+Sans:400,700' rel='stylesheet' type='text/css'> 
<link rel="stylesheet" href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/reset.css"> 

    <link rel="stylesheet" href="css/reset.css"> 
    <link rel="stylesheet" href="css/style.css"> 
    </head> 
    <body> 
    <header role="banner"> 

     <nav class="main-nav"> 
      <ul> 
       <!-- inser more links here --> 

       <li><a class="cd-signin" href="#0">Sign In</a></li> 
       <li><a class="cd-signup" href="#0">Sign Up</a></li> 
      </ul> 
     </nav> 
    </header> 
    <label class="thought"> 
     <p> find your passion, <br><br> make it as your profession </p> 
    </label> 
    <div class="cd-user-modal"> <!-- this is the entire modal form, including the background --> 
     <div class="cd-user-modal-container"> <!-- this is the container wrapper --> 
      <ul class="cd-switcher"> 
       <li><a href="#0">Sign In</a></li> 
       <li><a href="#0">Sign Up</a></li> 
      </ul> 

      <div id="cd-login"> <!-- log in form --> 
       <form class="cd-form" action="logincheck.php" method="post"> 
        <p class="fieldset"> 
         <label class="image-replace cd-email" for="signin-email">E-mail</label> 
         <input class="full-width has-padding has-border" name="email" id="signin-email" type="text" placeholder="E-mail" required autocomplete="off"> 
         <span class="cd-error-message">Error message here!</span> 
        </p> 

        <p class="fieldset"> 
         <label class="image-replace cd-password" for="signin-password">Password</label> 
         <input class="full-width has-padding has-border" name="password" id="signin-password" type="text" placeholder="Password" required autocomplete="off"> 
         <a href="#0" class="hide-password">Hide</a> 
         <span class="cd-error-message">Error message here!</span> 
        </p> 

        <p class="fieldset"> 
         <input type="checkbox" id="remember-me"> 
         <label for="remember-me">Remember me</label> 
        </p> 

        <button class="button button-block" type="submit" > Sign In </button> 
       </form> 

       <p class="cd-form-bottom-message"><a href="#0">Forgot your password?</a></p> 
       <!-- <a href="#0" class="cd-close-form">Close</a> --> 
      </div> <!-- cd-login --> 

      <div id="cd-signup"> <!-- sign up form --> 
       <form class="cd-form" action="register.php" method="post" > 
        <p class="fieldset"> 
         <label class="image-replace cd-username" for="signup-username">Profile Name</label> 
         <input class="full-width has-padding has-border" name="name" id="signup-username" type="text" placeholder="Type your Name" required autocomplete="off"> 
         <span class="cd-error-message">Error message here!</span> 
        </p> 

        <p class="fieldset"> 
         <label class="image-replace cd-email" for="signup-email">E-mail</label> 
         <input class="full-width has-padding has-border" name="email" id="email" type="text" placeholder="[email protected]"required autocomplete="off" onkeyup="checkemail();"> 
         <span class="cd-error-message" id="result"></span> 
        </p> 
        <label id="title" class="dropdown"><font face="verdana">&nbsp;&nbsp;Select any three streams that your skills suits the best: </font><br><br> 
         <select id="job" name="category1" required> 
          <option value="Engineering"><font face="verdana">Engineering</font></option> 
          <option value="Medical"><font face="verdana">Medical</font></option> 
          <option value="Programming"><font face="verdana">Programming</font></option> 
          <option value="Business"><font face="verdana">Business</font></option> 
          <option value="Admin"><font face="verdana">Admin</font></option> 
          <option value="Other"><font face="verdana">Other</font></option> 
         </select> 
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
         <select id="job" name="category2" required> 
          <option value="Engineering"><font face="verdana">Engineering</font></option> 
          <option value="Medical"><font face="verdana">Medical</font></option> 
          <option value="Programming"><font face="verdana">Programming</font></option> 
          <option value="Business"><font face="verdana">Business</font></option> 
          <option value="Admin"><font face="verdana">Admin</font></option> 
          <option value="Other"><font face="verdana">Other</font></option> 
         </select> 
         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
         <select id="job" name="category3" required> 
          <option value="Engineering"><font face="verdana">Engineering</font></option> 
          <option value="Medical"><font face="verdana">Medical</font></option> 
          <option value="Programming"><font face="verdana">Programming</font></option> 
          <option value="Business"><font face="verdana">Business</font></option> 
          <option value="Admin"><font face="verdana">Admin</font></option> 
          <option value="Other"><font face="verdana">Other</font></option> 
         </select> 
        </label> 
        <p class="fieldset"> 
         <label class="image-replace cd-password" for="signup-password">Password</label> 
         <input class="full-width has-padding has-border" name="password" id="signup-password" type="text" placeholder="Password" required autocomplete="off"> 
         <a href="#0" class="hide-password">Hide</a> 
         <span class="cd-error-message">Error message here!</span> 
        </p> 

        <p class="fieldset"> 
         <input type="checkbox" id="accept-terms" required> 
         <label for="accept-terms">I agree to the <a href="#">Terms</a></label> 
        </p> 


         <button class="button button-block" type="submit" > Create an Account </button> 

       </form> 

       <!-- <a href="#0" class="cd-close-form">Close</a> --> 
      </div> <!-- cd-signup --> 

      <div id="cd-reset-password"> <!-- reset password form --> 
       <p class="cd-form-message">Lost your password? Please enter your email address. You will receive a link to create a new password.</p> 

       <form class="cd-form"> 
        <p class="fieldset"> 
         <label class="image-replace cd-email" for="reset-email">E-mail</label> 
         <input class="full-width has-padding has-border" id="reset-email" type="email" placeholder="E-mail" autocomplete="off" required> 
         <span class="cd-error-message">Error message here!</span> 
        </p> 

        <p class="fieldset"> 
         <input class="full-width has-padding" type="submit" value="Reset password"> 
        </p> 
       </form> 

       <p class="cd-form-bottom-message"><a href="#">Back to log-in</a></p> 
      </div> <!-- cd-reset-password --> 
      <a href="#" class="cd-close-form">Close</a> 
     </div> <!-- cd-user-modal-container --> 
    </div> <!-- cd-user-modal --> 

    <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> 

     <script src="js/index.js"></script> 
    </body> 
</html> 

Любая помощь очень ценится ..

+1

Не храните пароли в виде обычного текста. [Хеши их] (http://php.net/password_hash). – Mike

+0

отмечено .......... – harishk

+1

Неточный дубликат, но: http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php/ 8028979 # 8028979 – Mike

ответ

0

Удалите код перенаправления из т он else условие, PHP будет перенаправлять без эха/отображения чего-либо на экране.

... else 
{ 
    echo '<div class="alert">'; 
    echo '<span class="closebtn" onclick="this.parentElement.style.display="none";">&times;</span>'; 
    echo '<strong>Danger!</strong> wrong email id'; 
    echo '</div>'; 
} 
+1

нет, он не вернулся на страницу входа. Он просто показал страницу с ошибкой на пустой странице, где адрес говорит, что logincheck.php – harishk

+0

@harishk Есть ли у вас функция перенаправления в другом месте? – GeekBot

+0

нет ... у меня нет – harishk

0

Чтобы сохранить код необходимо удалить заголовок() перенаправлять и либо поставить ссылку на нижней части сообщения об ошибке или используйте META тэг для перенаправления.

ниже код будет перенаправлять через 10 секунд, так что пользователь может прочитать ваше сообщение об ошибке:

... else 
{ 
    echo '<div class="alert">'; 
    echo '<span class="closebtn" onclick="this.parentElement.style.display="none";">&times;</span>'; 
    echo '<strong>Danger!</strong> wrong email id'; 
    echo '</div>'; 
    echo '<meta http-equiv="refresh" content="10;url=sign.php">'; 
} 

или со ссылкой

... else 
{ 
    echo '<div class="alert">'; 
    echo '<span class="closebtn" onclick="this.parentElement.style.display="none";">&times;</span>'; 
    echo '<strong>Danger!</strong> wrong email id'; 
    echo '</div>'; 
    echo '<a href="sign.php">go back to login page</a>'; 
} 
+0

мы можем сделать эту ошибку msg появляться на одной странице .. Я имею в виду, что когда пользователь вводит логин с неправильными настройками, он будет перенаправлен на страницу входа, где он видит ошибку msg. наверху ... @moni_dragu – harishk

+0

@harishk Вы должны перестать просить людей, чтобы ваши сообщения об ошибках отображались на странице входа. Это просто объяснять в ответ. Страница входа должна стать одной с кодом проверки входа, чтобы достичь того, чего вы хотите. Или вам придется отправить сообщения об ошибках обратно на страницу входа в систему. Это не то, что можно сделать или объяснить вам в нескольких словах. Это просто означает, что половина вашего кода должна быть переписана. – icecub

+0

@harishk Здесь: http://pastebin.com/zDZz0zVG Это пример того, как вы это делаете. Сохраните этот код в файле 'test.php' и попробуйте его. После этого удача переписывает ваш код, чтобы сделать то же самое. – icecub

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