2017-03-02 81 views
0

我想用XAMP使用PHP,MySQL和Bootstrap制作一个网站。我是PHP的初学者,所以我把这段代码放在开发人员的网站上,当我试图在本地主机上运行时,我输入了我的凭据,index.php只做了刷新,没有显示任何错误,只是刷新。我研究了网络5天并没有什么,这是我的代码:

的index.php

<?php session_start(); ?><!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 
    <link rel="icon" href="../../favicon.ico"> 

    <title>Signin Template for Bootstrap</title> 

    <!-- Bootstrap core CSS --> 
    <link href="bootstrap.min.css" rel="stylesheet"> 

    <!-- Custom styles for this template --> 
    <link href="signin.css" rel="stylesheet"> 
    </head> 

    <body> 

    <div class="container"> 

     <form class="form-signin" action="validacao.php" method="post"> 
     <h2 class="form-signin-heading">Please sign in</h2> 
     <label for="txUsuario" class="sr-only">Email address</label> 
     <input type="text" name="usuario" id="txUsuario" class="form-control" placeholder="Email" required autofocus> 
     <label for="inputPassword" name="senha" class="sr-only">Password</label> 
     <input type="password" id="inputPassword" class="form-control" placeholder="Password" required> 
     <div class="checkbox"> 
      <label> 
      <input type="checkbox" value="remember-me"> Remember me 
      </label> 
     </div> 
     <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 
     </form> 

    </div> <!-- /container --> 


    <!-- Bootstrap core JavaScript 
    ================================================== --> 
    <!-- Placed at the end of the document so the pages load faster --> 
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> 
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script> 
    </body> 
</html> 

validacao.php

<?php 

    // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s) 
    if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) { 
     header("Location: index.php"); exit; 
    } 

    // Tenta se conectar ao servidor MySQL 
    mysql_connect('localhost', 'root', '') or trigger_error(mysql_error()); 
    // Tenta se conectar a um banco de dados MySQL 
    mysql_select_db('wda_crud') or trigger_error(mysql_error()); 

    $usuario = mysql_real_escape_string($_POST['usuario']); 
    $senha = mysql_real_escape_string($_POST['senha']); 

    // Validação do usuário/senha digitados 
    $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '".$usuario ."') AND (`senha` = '".$senha ."') AND (`ativo` = 1) LIMIT 1"; 
    $query = mysql_query($sql); 
    if (mysql_num_rows($query) != 1) { 
     // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado 
     echo "Login inválido!"; exit; 
    } else { 
     // Salva os dados encontrados na variável $resultado 
     $resultado = mysql_fetch_assoc($query); 

     // Se a sessão não existir, inicia uma 
     if (!isset($_SESSION)) session_start(); 

     // Salva os dados encontrados na sessão 
     $_SESSION['UsuarioID'] = $resultado['id']; 
     $_SESSION['UsuarioNome'] = $resultado['nome']; 
     $_SESSION['UsuarioNivel'] = $resultado['nivel']; 

     // Redireciona o visitante 
     header("Location: site.php"); exit; 
    } 

    ?> 

site.php

<?php session_start(); ?> 

    <!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 
    <link rel="icon" href="../../favicon.ico"> 

    <title>Dashboard Template for Bootstrap</title> 

    <!-- Bootstrap core CSS --> 
    <link href="bootstrap.min.css" rel="stylesheet"> 

    <!-- Custom styles for this template --> 
    <link href="dashboard.css" rel="stylesheet"> 
    </head> 

    <body> 
    <nav class="navbar navbar-toggleable-md navbar-inverse fixed-top bg-inverse"> 
     <button class="navbar-toggler navbar-toggler-right hidden-lg-up" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation"> 
     <span class="navbar-toggler-icon"></span> 
     </button> 
     <a class="navbar-brand" href="#"><?php echo $_SESSION['UsuarioNome']; ?></a> 

     <div class="collapse navbar-collapse" id="navbarsExampleDefault"> 
     <ul class="navbar-nav mr-auto"> 
      <li class="nav-item active"> 
      <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> 
      </li> 
      <li class="nav-item"> 
      <a class="nav-link" href="#">Settings</a> 
      </li> 
      <li class="nav-item"> 
      <a class="nav-link" href="#">Profile</a> 
      </li> 
      <li class="nav-item"> 
      <a class="nav-link" href="#">Help</a> 
      </li> 
     </ul> 
     <form class="form-inline mt-2 mt-md-0"> 
      <input class="form-control mr-sm-2" type="text" placeholder="Search"> 
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> 
     </form> 
     </div> 
    </nav> 

    <div class="container-fluid"> 
     <div class="row"> 
     <nav class="col-sm-3 col-md-2 hidden-xs-down bg-faded sidebar"> 
      <ul class="nav nav-pills flex-column"> 
      <li class="nav-item"> 
       <a class="nav-link active" href="#">Overview <span class="sr-only">(current)</span></a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Reports</a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Analytics</a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Export</a> 
      </li> 
      </ul> 

      <ul class="nav nav-pills flex-column"> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Nav item</a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Nav item again</a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">One more nav</a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Another nav item</a> 
      </li> 
      </ul> 

      <ul class="nav nav-pills flex-column"> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Nav item again</a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">One more nav</a> 
      </li> 
      <li class="nav-item"> 
       <a class="nav-link" href="#">Another nav item</a> 
      </li> 
      </ul> 
     </nav> 

     <main class="col-sm-9 offset-sm-3 col-md-10 offset-md-2 pt-3"> 
      <h1>Dashboard</h1> 

      <section class="row text-center placeholders"> 
      <div class="col-6 col-sm-3 placeholder"> 
       <img src="data:image/gif;base64,R0lGODlhAQABAIABAAJ12AAAACwAAAAAAQABAAACAkQBADs=" width="200" height="200" class="img-fluid rounded-circle" alt="Generic placeholder thumbnail"> 
       <h4>Label</h4> 
       <div class="text-muted">Something else</div> 
      </div> 
      <div class="col-6 col-sm-3 placeholder"> 
       <img src="data:image/gif;base64,R0lGODlhAQABAIABAADcgwAAACwAAAAAAQABAAACAkQBADs=" width="200" height="200" class="img-fluid rounded-circle" alt="Generic placeholder thumbnail"> 
       <h4>Label</h4> 
       <span class="text-muted">Something else</span> 
      </div> 
      <div class="col-6 col-sm-3 placeholder"> 
       <img src="data:image/gif;base64,R0lGODlhAQABAIABAAJ12AAAACwAAAAAAQABAAACAkQBADs=" width="200" height="200" class="img-fluid rounded-circle" alt="Generic placeholder thumbnail"> 
       <h4>Label</h4> 
       <span class="text-muted">Something else</span> 
      </div> 
      <div class="col-6 col-sm-3 placeholder"> 
       <img src="data:image/gif;base64,R0lGODlhAQABAIABAADcgwAAACwAAAAAAQABAAACAkQBADs=" width="200" height="200" class="img-fluid rounded-circle" alt="Generic placeholder thumbnail"> 
       <h4>Label</h4> 
       <span class="text-muted">Something else</span> 
      </div> 
      </section> 

      <h2>Section title</h2> 
      <div class="table-responsive"> 
      <table class="table table-striped"> 
       <thead> 
       <tr> 
        <th>#</th> 
        <th>Header</th> 
        <th>Header</th> 
        <th>Header</th> 
        <th>Header</th> 
       </tr> 
       </thead> 
       <tbody> 
       <tr> 
        <td>1,001</td> 
        <td>Lorem</td> 
        <td>ipsum</td> 
        <td>dolor</td> 
        <td>sit</td> 
       </tr> 
       <tr> 
        <td>1,002</td> 
        <td>amet</td> 
        <td>consectetur</td> 
        <td>adipiscing</td> 
        <td>elit</td> 
       </tr> 
       <tr> 
        <td>1,003</td> 
        <td>Integer</td> 
        <td>nec</td> 
        <td>odio</td> 
        <td>Praesent</td> 
       </tr> 
       <tr> 
        <td>1,003</td> 
        <td>libero</td> 
        <td>Sed</td> 
        <td>cursus</td> 
        <td>ante</td> 
       </tr> 
       <tr> 
        <td>1,004</td> 
        <td>dapibus</td> 
        <td>diam</td> 
        <td>Sed</td> 
        <td>nisi</td> 
       </tr> 
       <tr> 
        <td>1,005</td> 
        <td>Nulla</td> 
        <td>quis</td> 
        <td>sem</td> 
        <td>at</td> 
       </tr> 
       <tr> 
        <td>1,006</td> 
        <td>nibh</td> 
        <td>elementum</td> 
        <td>imperdiet</td> 
        <td>Duis</td> 
       </tr> 
       <tr> 
        <td>1,007</td> 
        <td>sagittis</td> 
        <td>ipsum</td> 
        <td>Praesent</td> 
        <td>mauris</td> 
       </tr> 
       <tr> 
        <td>1,008</td> 
        <td>Fusce</td> 
        <td>nec</td> 
        <td>tellus</td> 
        <td>sed</td> 
       </tr> 
       <tr> 
        <td>1,009</td> 
        <td>augue</td> 
        <td>semper</td> 
        <td>porta</td> 
        <td>Mauris</td> 
       </tr> 
       <tr> 
        <td>1,010</td> 
        <td>massa</td> 
        <td>Vestibulum</td> 
        <td>lacinia</td> 
        <td>arcu</td> 
       </tr> 
       <tr> 
        <td>1,011</td> 
        <td>eget</td> 
        <td>nulla</td> 
        <td>Class</td> 
        <td>aptent</td> 
       </tr> 
       <tr> 
        <td>1,012</td> 
        <td>taciti</td> 
        <td>sociosqu</td> 
        <td>ad</td> 
        <td>litora</td> 
       </tr> 
       <tr> 
        <td>1,013</td> 
        <td>torquent</td> 
        <td>per</td> 
        <td>conubia</td> 
        <td>nostra</td> 
       </tr> 
       <tr> 
        <td>1,014</td> 
        <td>per</td> 
        <td>inceptos</td> 
        <td>himenaeos</td> 
        <td>Curabitur</td> 
       </tr> 
       <tr> 
        <td>1,015</td> 
        <td>sodales</td> 
        <td>ligula</td> 
        <td>in</td> 
        <td>libero</td> 
       </tr> 
       </tbody> 
      </table> 
      </div> 
     </main> 
     </div> 
    </div> 

    <!-- Bootstrap core JavaScript 
    ================================================== --> 
    <!-- Placed at the end of the document so the pages load faster --> 
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script> 
    <script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script> 
    <script src="../../dist/js/bootstrap.min.js"></script> 
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> 
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script> 
    </body> 
</html> 

有人能告诉我什么是错误?它可以是XAMP?

+1

每次使用后正确的['mysql_'(HTTP://计算器。在新代码中的数据库扩展 ** [一只小猫在世界的某个地方被勒死](http://2.bp。com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)它已被弃用,并且已有多年,并一直消失在PHP7中。 如果您只是学习PHP,花费精力学习'PDO'或'mysqli'数据库扩展和准备语句。 [从这里开始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+2

您的脚本存在[SQL注入攻击]的风险(http://stackoverflow.com/questions/60174/how -can-i-prevent-sql -injection-in-php) 看看发生了什么事[Little Bobby Tables](http://bobby-tables.com/)即使 [如果你是逃避投入,它的不安全!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) 使用[prepared parameterized statements](http://php.net) /manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

+1

'session_start()'必须是你在每一页上做的第一件事情,即'validacao。php' – Darren

回答

1

你在这一行

有一个在

<input type="password" id="inputPassword" class="form-control" placeholder="Password" required> 

没有名字字段,你已经把名称字段标签

<label for="inputPassword" name="senha" class="sr-only">Password</label> 

改变这两条线

<input type="password" name="senha" id="inputPassword" class="form-control" placeholder="Password" required> 

    <label for="inputPassword" class="sr-only">Password</label> 
错误
+0

Omg,这工作!谢谢。 – alipseight

+0

感觉很好,谢谢.. –

1

The <input...>标记必须具有name=属性,否则它们不会由浏览器从HTML表单发送到PHP脚本。

所以一个name=属性添加到这个<input>

<input type="password" name="senha" id="inputPassword" class="form-control" placeholder="Password" required> 
         ^^^^^^^^^^^^ 

我猜它只是一个错字,因为你必须在<label>一个name="senha"属性,这是没有必要的。

<label for="inputPassword" name="senha" class="sr-only">Password</label> 
     can be removed  ^^^^^^^^^^^^ 

注意:您应该始终编码你session_start();在你的脚本的顶部的第一<?php

+0

谢谢!我用上面的答案和答案解决了问题。 – alipseight