PHP логин форм скрипт

Discussion in 'PHP' started by russboy666, 16 Apr 2012.

  1. russboy666

    russboy666 New Member

    Joined:
    20 Mar 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    <?php
    ob_start();
    session_start();
    $conn = mysql_connect('localhost','root','');
    mysql_select_db('mydb',$conn);

    if(isset($_POST['login'])){
    $email = $_POST['email'];
    $password = $_POST['password'];

    if(!empty($email)&&!empty($password))
    {

    $query = "SELECT id FROM users WHERE email = '$email' AND password = '$password'";

    if($run = mysql_query($query))
    {


    $numrows = mysql_num_rows($run);




    if($numrows ==0){
    echo "<fieldset>Incorrect username or password</fieldset>";
    }else if ($numrows==1){
    $_SESSION['name'] = $_POST['email'];
    header('Location: vavas.php');

    echo "Logged in";

    }
    }
    }
    }



    ?><style type="text/css">
    <!--
    a:link {
    color: #006;
    }
    -->
    </style>

    <br /><br /><br /><br /><br />
    <form action="pap.php" method="POST">
    <center>
    <body bgcolor="#E7E7E7">
    <br /><br />
    <div id="bobi">
    Email:<br /><input type="text" placeholder="Email here" name="email" class="email" size="31" required/><br />
    Password:<br /><input type="text" placeholder="Password here" name="password" class="password" size="31" required/><br />
    <input type="submit" class="bobi" name="login" value="Login" />


    </center>
    <style type="text/css">

    fieldset{
    box-shadow: 0px 1px 2px gray;
    background-color:#FF2D2D;
    border:2px #C00 solid;
    height:56px;
    text-align:left;
    }



    input.bobi:hover{

    cursor:pointer;
    box-shadow: 1px 1px 2px gray;
    border-radius:2px;
    border:0px;
    border-top:2px white;
    background: -moz-linear-gradient( white,#e5e5e5);
    height:32;
    width:70;
    }


    input.bobi{
    border:#999 1px solid;

    position:relative;
    bottom:-7px;
    right:-66px;
    box-shadow: 1px 1px 2px gray;
    border-radius:2px;
    border:0px;
    border-top:2px white;
    background: -moz-linear-gradient( white,#e5e5e5);
    height:32;
    width:70;
    }


    input.bobi:hover{


    box-shadow: 1px 1px 2px gray;
    border-radius:2px;
    border:0px;
    border-top:2px white;
    background: -moz-linear-gradient( #e5e5e5,white);
    height:32;
    width:70;
    }




    #bobi{
    font-family:"adobe gothic std";
    font-size:14px;
    border:#333 1px solid;
    -moz-transform: rotate(7deg);
    width:250px;
    background:
    -moz-linear-gradient(#FF0,#FC0);
    height:148px;
    box-shadow:0px 0px 7px gray;
    }
    input.email:focus{
    box-shadow:0px 0px 5px #4A8EE1;
    }

    input.password:focus{
    box-shadow:0px 0px 5px #4A8EE1;
    }




    input.email{
    border:#06F 1px solid;
    }

    input.password{
    border:#06F 1px solid;
    }

    #mite{
    #bobi
    font-family:"adobe gothic std";
    font-size:14px;
    border:#333 1px solid;
    -moz-transform: rotate(7deg);
    width:250px;
    background:
    -moz-linear-gradient(#FF0,#FC0);
    height:50px;
    box-shadow:0px 0px 7px gray;

    }

    href{
    position:relative;
    bottom:-7px;
    }

    </style> :D
     
  2. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    забанься, мудилкин
     
  3. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Было бы неплохо если бы ТС заключил код в bb-code PHP и обьяснил зачем он сюда его выложил.
     
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    hi sql inj
     
    2 people like this.
  5. cardons

    cardons Elder - Старейшина

    Joined:
    19 Jul 2005
    Messages:
    778
    Likes Received:
    324
    Reputations:
    83
    1) Вот это категорически не правильно
    PHP:
    $query "SELECT id FROM users WHERE email = '$email' AND password = '$password'";
    Во первых приучитесь оформлять названия поле и таблиц в `, а во вторых у вас тут sql inj, в третих при запросе не надо указывать сразу 2 параметра логин и пароль, и только в том случае если логин у нас есть тогда сравниваем переданный пароль с тем что в базе. Правильнее будет так. Да и раз на то пошло надо бы выше добавить проверку на то что введен именно email а не левые какие то данные.

    PHP:
    $query "SELECT `id`,`password` FROM `users` WHERE `email` = '".mysql_real_escape_string($email)."'";
    $run mysql_query($query) or die(mysql_error());  

    if(isset(
    $run["id"]))  {

      if(
    $run["password"]==$password) echo "Логин осуществлен";
      else echo 
    "Не вошли"
    }
    2) Зачем if($run = mysql_query($query)) если проще и правильнее это все не в if..
    PHP:
    mysql_query($query) or die("Не могу выполнить запрос"); 
    или
    PHP:
    mysql_query($query) or die(mysql_error());
    3) Зачем $numrows = mysql_num_rows($run); if($numrows ==0)
    Правильнее так.
    PHP:
     if(isset($run["id"])) {

    }
    4) Зачем echo "Logged in"; если у вас перед этим происходит редирект и пользователь это не увидит )

    А вообще тут много еще чего не так ) Дальше лень писать.
     
    #5 cardons, 17 Apr 2012
    Last edited: 17 Apr 2012