2012-05-24 3 views
-2

나는 php/mysql에서 새롭다. 나의 질문이 어리석은 경우에 유감스럽게 생각한다. 나는 등록/로그인/로그 아웃 시스템을 PHP와 MySQL로 만들려고하고있다. 내 기술이 좋지 않아 프로그래머가 아니므로 웹에서 찾은 스크립트를 변경하려고했습니다. 그것은 파일, index.php을 포함, PHP를 활성화합니다. login.php, logout.php, register.php.php/mysql을 가진 등록 시스템 : 사용자를 찾을 수 없다

주어진 예제를 시도했을 때 좋았지 만 사용자가 이름, 성 등 등록자에 더 많은 값을 추가하고 사용자 이름, 비밀번호 및 이메일뿐만 아니라 값을 많이 추가했기 때문에 코드가 상당히 바뀌 었습니다. . 그래서 코드를 변경하고 mysql 데이터베이스에서 더 많은 열을 추가했습니다. 지금은 t 작업을 수상, 그는 t가 로그인 '내가 활성화하려고 나는 또한 수있을 때 t이 사용자를 찾을 수'는 수 있다고

의 index.php :.가 HTML 양식을 가지고 있으며, 요청하는 매우 간단한 파일입니다

<?php session_start(); ?> 
<html> 
<body> 
    <?php 
    if(isset($_POST["user"])){ 
     $con = mysql_connect("localhost","root","password"); 
     if (!$con) 
      { 
      die('Could not connect: ' . mysql_error()); 
      } 

     mysql_select_db("myapp", $con); 

     $sql = "SELECT * FROM `users` WHERE `user` LIKE '". mysql_real_escape_string($_POST["user"]) 
     ."' AND ". 
      "`pass` LIKE MD5('". mysql_real_escape_string($_POST["pass"]) 
     ."') AND ". 
      "`active` = 'DONE'"; 

     $result = mysql_query($sql); 

     $found = 0; 
     while ($row = mysql_fetch_array($result)) { 
      if ($row[1]==$_POST["user"]) { 
       $found = 1; 
      } 
     } 

     if ($found) { 
     $_SESSION["USER"] = $_POST["user"]; 
     ?>Thank you for logging in<? 
     } 
     else { 
     ?>User/Pass is wrong!<? 
     } 

     mysql_close($con); 
    } 
    else { 
    ?> 

     Please log-in:<br/> 
     <form action="login.php" method="POST"> 
      User: <input type="text" name="user"><br /> 
      Pass: <input type="password" name="pass"><br /> 
      <input type="submit" /> 
     </form> 

    <?php 
    } 
    ?> 
: 단순히 세션을

login.php 설정을 해제 : 그는 또한 로그인 또는 등록을 원하고있는 경우 알 수없는 사용자는

이 logout.php 세션을 시작합니다

register.php :

<?php session_start(); ?> 
<html> 
<body> 
<?php 
    if(isset($_POST["user"])){ 
     $con = mysql_connect("localhost","root","password"); 
     if (!$con) 
      { 
      die('Could not connect: ' . mysql_error()); 
      } 

     mysql_select_db("myapp", $con); 

     $random = rand(); 

     $sql = "INSERT INTO `myapp`.`users` (`id`, `user`, `pass`, `active`, `firstname`, `lastname`, `mail`) ". 
     " VALUES (NULL, '". mysql_real_escape_string($_POST["user"]) 
     ."', MD5('".mysql_real_escape_string($_POST["pass"]) 
     ."'), '".mysql_real_escape_string($random) 
     ."'), '".mysql_real_escape_string($_POST["firstname"]) 
     ."'), '".mysql_real_escape_string($_POST["lastname"]) 
     ."')'".mysql_real_escape_string($_POST["mail"]) 
     ."');"; 

     mysql_query($sql); 

     mysql_close($con); 

     $message = "Please put this url http://localhost/mypage/activate.php?active=" . $random . " in your browser to activate your account."; 
     @mail($_POST["mail"], 'Thank you for registering', $message); 

     ?>Thank you <?php echo $_POST["user"]; ?> we send you a confirmation e-mail in <?php echo $_POST["mail"]; ?><?php 

     echo $message; 
    } 
    else { 
     ?> 
     Please register:<br/> 
     <form action="register.php" method="POST"> 
      User: <input type="text" name="user"><br /> 
      Pass: <input type="password" name="pass"><br /> 
      firstname:<input type="text" name="firstname"><br /> 
      lastname:<input type="text" name="lastname"><br /> 
      mail: <input type="text" name="mail"><br /> 

      <input type="submit" /> 
     </form> 

     <?php 
    } 
?> 

activate.php :

<?php session_start(); ?> 
<html> 
<body> 
     <?php 
    if(isset($_GET["active"])){ 
     $con = mysql_connect("localhost","root","password"); 
     if (!$con) 
      { 
      die('Could not connect: ' . mysql_error()); 
      } 

     mysql_select_db("myapp", $con); 

     $sql = "SELECT * FROM `users` WHERE `active` LIKE '".  
mysql_real_escape_string($_GET["active"])."'"; 

     $result = mysql_query($sql); 

     $found = 0; 
     while ($row = mysql_fetch_array($result)) { 
      $found = 1; 
     } 

     if ($found) { 

     $sql = "UPDATE `users` SET `active` ='DONE'"; 

     $result = mysql_query($sql); 

     ?>Thank you for activating<? 
     } 
     else { 
     ?>Can't find user!<? 
     } 

     mysql_close($con); 
    } 
    else { 
    ?>Invalid activation<?php 
    } 
    ?> 
</body> 
</html> 

어떤 도움이 될 것이다 환영 해 주셔서 감사합니다. 긴 게시물을 유감스럽게 생각합니다 !!^_^

+0

확인을, 나는 이해! 고맙습니다!! :) – ElaGorilaki

+1

고대의'mysql_ *'함수로 새로운 코드 작성을 중단하십시오. 더 이상 유지 관리되지 않으며 커뮤니티에서 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 결정할 수없는 경우 [이 기사] (http://goo.gl/3gqF9)를 선택하면 도움이됩니다. 당신이 배우고 싶다면 [여기 PDO 관련 튜토리얼] (http://goo.gl/vFWnC)을 참조하십시오. –

답변

2

register.php에서, 당신은 SQL 구문에 오류가 있습니다, 당신은 너무 많은 괄호를 폐쇄해야합니다.
는 다음과 같이이 부분을 교체 :

$sql = "INSERT INTO `myapp`.`users` (`id`, `user`, `pass`, `active`, `firstname`, `lastname`, `mail`) VALUES 
    (NULL,". 
    "'". mysql_real_escape_string($_POST["user"])."',". 
    "MD5('".mysql_real_escape_string($_POST["pass"])."'),". 
    "'".mysql_real_escape_string($random)."',". 
    "'".mysql_real_escape_string($_POST["firstname"])."',". 
    "'".mysql_real_escape_string($_POST["lastname"])."',". 
    "'".mysql_real_escape_string($_POST["mail"])."');"; 
관련 문제