Невозможно войти - PullRequest
       1

Невозможно войти

0 голосов
/ 07 марта 2011

dbConfig.php

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die;

$dbname = 'charitydatabase';
mysql_select_db($dbname);
echo("Successfully Connected to ". $dbname . " !");
mysql_query($sql);

?>

register.php

<?php

        // dbConfig.php is a file that contains your
        // database connection information. This
        // tutorial assumes a connection is made from
        // this existing file.
        include ("dbConfig.php");


//Input vaildation and the dbase code
        if ( $_GET["op"] == "reg" )
  {
  $bInputFlag = false;
  foreach ( $_POST as $field )
        {
        if ($field == "")
    {
    $bInputFlag = false;
    }
        else
    {
    $bInputFlag = true;
    }
        }
  // If we had problems with the input, exit with error
  if ($bInputFlag == false)
        {
        die( "Problem with your registration info. "
    ."Please go back and try again.");
        }

  // Fields are clear, add user to database
  //  Setup query
  $q = "INSERT INTO `dbuser` (`username`,`password`,`email`) "
        ."VALUES ('".$_POST["username"]."', "
        ."PASSWORD('".$_POST["password"]."'), "
        ."'".$_POST["email"]."')";
  //  Run query
  $r = mysql_query($q);

  // Make sure query inserted user successfully
  if ( !mysql_insert_id() )
        {
        die("Error: User not added to database.");
        }
  else
        {
        // Redirect to thank you page.
        Header("Location: register.php?op=thanks");
        }
  } // end if


//The thank you page
        elseif ( $_GET["op"] == "thanks" )
  {
  echo "<h2>Thanks for registering!</h2>";
  }

//The web form for input ability
        else
  {
  echo "<form action=\"?op=reg\" method=\"POST\">\n";
  echo "Username: <input name=\"username\" MAXLENGTH=\"16\"><br />\n";
  echo "Password: <input type=\"password\" name=\"password\" MAXLENGTH=\"16\"><br />\n";
  echo "Email Address: <input name=\"email\" MAXLENGTH=\"25\"><br />\n";
  echo "<input type=\"submit\">\n";
  echo "</form>\n";
  }
        // EOF
        ?>

login.php

    <?php
        session_start();
        // dBase file
        include "dbConfig.php";

        if ($_GET["op"] == "login")
  {
  if (!$_POST["username"] || !$_POST["password"])
        {
        die("You need to provide a username and password.");
        }

  // Create query
  $q = "SELECT * FROM `dbuser` "
        ."WHERE `username`='".$_POST["username"]."' "
        ."AND `password`=PASSWORD('".$_POST["password"]."') "
        ."LIMIT 1";
  // Run query
  $r = mysql_query($q);

  if ( $obj = @mysql_fetch_object($r) )
        {
        // Login good, create session variables
        $_SESSION["valid_id"] = $obj->id;
        $_SESSION["valid_user"] = $_POST["username"];
        $_SESSION["valid_time"] = time();

        // Redirect to member page
        Header("Location: member.php");
        }
  else
        {
        // Login not successful
        die("Sorry, could not log you in. Wrong login information.");
        }
  }
        else
  {
//If all went right the Web form appears and users can log in
  echo "<form action=\"?op=login\" method=\"POST\">";
  echo "Username: <input name=\"username\" size=\"15\"><br />";
  echo "Password: <input type=\"password\" name=\"password\" size=\"8\"><br />";
  echo "<input type=\"submit\" value=\"Login\">";
  echo "</form>";
  }
        ?>

Проблема 1: Возможность добавить пользователя в базу данных.Но я получаю сообщение об ошибке после отладки кода:

Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался в C: \ xampp \ htdocs \ Login \ dbConfig.php: 4)в C: \ xampp \ htdocs \ Login \ register.php в строке 49

Проблема 2: и ошибка сохранения поля пароля в базе данных.

Проблема 3:

Не удалось войти.

Пожалуйста, помогите мне решить вопрос, tq!

Ответы [ 2 ]

2 голосов
/ 07 марта 2011

Удалите эхо из dbConfig.php, вы не можете использовать функцию header () после эха. (заголовок, который мы использовали для перенаправления в register.php)

1 голос
/ 07 марта 2011

РЕШЕНИЕ

  1. используйте ob_start() вверху страницы, где вы пишете header('');
  2. не используйте функцию mysql PASSWORD(), USE md5() или любую другую декодированную функцию php
  3. для сохранения пароля в базе данных. datatype пароль, указанный в varchar, и длина 255

что это значит

if (!$_POST["username"] || !$_POST["password"])
        {
        die("You need to provide a username and password.");
        }

напишите вместо

if (empty($_POST["username"]) || empty($_POST["password"]) )
 {
        die("You need to provide a username and password.");
 }

и позаботьтесь о MySQL инъекций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...