2013-09-15 4 views
0
<?php 
$utype = $_POST['type']; 
$username=$_POST['username']; 
$pre = $_POST['pre']; 
$fname = $_POST['fname']; 
$fname = ucwords($fname); 
$lname = $_POST['lname']; 
$lname = ucwords($lname); 
$address = $_POST['address']; 
$city = $_POST['city']; 
$city = ucwords($city); 
$province=$_POST['province']; 
$pcode = $_POST['pcode']; 
$pcode = mb_strtoupper($pcode); 
$area_code = $_POST['area_code']; 
$number1= $_POST['number1']; 
$number2= $_POST['number2']; 
$phnum = "(".$area_code.")".$number1."-".$number2; 
$email = $_POST['nemail']; 
$opass=$_POST['pass1']; 
$pass = md5($_POST['pass1']); 
$time=date("F j, Y"); 
$status="Not Activated"; 
                if($email=="" || $username=="" || $fname=="" || $lname=="" || $address=="" or $pass==""){             die("<script language='JavaScript'> 
                    window.alert('Not Enough Data Provided!')</script> 
                    <meta http-equiv='REFRESH' content='0; r egister.php'>");; 
                  } 
include 'db_connect.php'; 
$sql = "select * from estatedeal_login where username = '".strtolower($username)."' OR  email = '".strtolower($email)."'"; 

      $result=mysql_query($sql); 
     $row=mysql_fetch_array($result); 
      if($row){ 
                 die("<script language='JavaScript'> 
                  window.alert('Username/E-mail address already Exists!')</script> 
                  <meta http-equiv='REFRESH' content='0; register.php'>");; 
      } 


$sql="INSERT INTO estatedeal_login (username, email, password, utype, opass, time, status) 
       VALUES ('$username', '$email', '$pass', '$utype', '$opass', '$time', '$status')"; 

$result=mysql_query($sql); 
       if($result){ 
         $sql2="Select uid from estatedeal_login where email='$email' AND password='$pass'"; 
         $result2=mysql_query($sql2); 
         $row=mysql_fetch_array($result2); 
         $uid=$row["uid"]; 



         $sql3="INSERT INTO estate_userinfo(uid, pre, fname, lname, address, city, province, pcode, phnum, email) VALUES ('$uid', '$pre', '$fname', '$lname', '$address', '$city', '$province', '$pcode', '$phnum', '$email')"; 
         $result3=mysql_query($sql3) or die("<script language='JavaScript'> 
                  window.alert('Sorry, Database Error!')</script> 
                  <meta http-equiv='REFRESH' content='0; register.php'>");; 
         if ($result3){ 

             $hour = time() + 3600*2; 
             setcookie('USERNAME_COOKIE', $email, $hour); 
             setcookie('PASSWORD_COOKIE', $pass, $hour); 
             if($utype=="Realtor"){ die("<meta http-equiv='REFRESH' content='0; regRealtor.php'>");; } 
            echo "<script language='JavaScript'> 
            window.location ='main.php';</script>"; 
            } 
    } 
    else{ 
     die(mysql_error()); 
    } 
?> 

Выше мой код. Он правильно вставляет поля данных в mysql, но не устанавливает файлы cookie на стороне клиента. Если я попробую войти в систему, используя информацию, которую я вставил в базу данных, тот же код для настройки файлов cookie отлично работает на странице входа. Есть ли еще варианты настройки файлов cookie?PHP - MySql - настройка cookies не работает

$hour = time() + 3600*2; 
setcookie('USERNAME_COOKIE', $email, $hour); 
setcookie('PASSWORD_COOKIE', $pass, $hour); 
+0

Ваш скрипт уязвим для SQL-инъекций. – Gumbo

ответ

0

Не является прямым ответом на ваш вопрос, но, возможно, полезно:

Вместо печенья, вы можете использовать SESSION, посмотрите на этот вопрос: Cookie VS Session.

Вы также можете взглянуть на UserCake, который реализует управление пользователями с помощью СЕССИИ. Ниже приводится snipet из UserCake (login.php):

 //Passwords match! we're good to go' 

     //Construct a new logged in user object 
     //Transfer some db data to the session object 
     $loggedInUser = new loggedInUser(); 
     $loggedInUser->email = $userdetails["email"]; 
     $loggedInUser->user_id = $userdetails["id"]; 
     $loggedInUser->hash_pw = $userdetails["password"]; 
     $loggedInUser->title = $userdetails["title"]; 
     $loggedInUser->displayname = $userdetails["display_name"]; 
     $loggedInUser->username = $userdetails["user_name"]; 

     //Update last sign in 
     $loggedInUser->updateLastSignIn(); 
     $_SESSION["userCakeUser"] = $loggedInUser; 

Для меня, по крайней мере, это чувствует себя так гораздо чище затем вызывая setcookie('USERNAME_COOKIE', $email, $hour);.

0

Я stronly рекомендуем вам узнать о $_SESSION и как очистить переменные, которые вы прочитали из $_POST или $_GET перед установкой что-либо в базе данных;

http://php.net/manual/en/function.mysql-real-escape-string.php Также учтите предупреждения, которые вы видите на странице, которую я вам отправил.

0

1 Try положить ob_start()

<?php 
ob_start() 

2 попытка положить путь аргумент

setcookie('USERNAME_COOKIE', $email, $hour,'/'); 
setcookie('PASSWORD_COOKIE', $pass, $hour,'/'); 
0

Использование сессии вместо печенья. Сессии более безопасны, чем файлы cookie &, хранящиеся на серверах.

Использовать session_start(); в начале файла PHP &, затем храните что-либо внутри сеанса следующим образом:

$ _SESSION ['email'] = $ email;

& принимают значения, хранящихся в сессии session_start() функции при запуске файла

$ электронной почты = $ _SESSION [ 'электронной почты'];

Сессии более защищены, поскольку они хранятся на сервере, а не в браузере.

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