There are some things that I want to do, but don't know if they are possible with PHP SESSIONS.
1. Avoid multi-session. (I did it using a flag in my database, but the problem comes when the user doesn't log out, and they just close the browser.
2. Log out a user remotely.
I will put my code right here. I tried to do it using the database and checking time differences, so I rewrite the value in my database and the user can log in.
Sessions.php
<?php
//Evitamos que nos salgan los NOTICES de PHP
error_reporting(E_ALL ^ E_NOTICE);
//Obtenemos el timestamp del servidor de cuanto se hizo la petición
$hora = $_SERVER["REQUEST_TIME"];
require('conexion.php');
//Duración de la sesión en segundos
$duracion = 9000;
//Si el tiempo de la petición* es mayor al tiempo permitido de la duración,
//destruye la sesión y crea una nueva
if (isset($_SESSION['ultima_actividad']) && ($hora - $_SESSION['ultima_actividad']) > $duracion) {
session_unset();
session_destroy();
// session_start();
};
// * Por esto este archivo debe ser incluido en cada página que necesite comprobar las sesiones
//Definimos el valor de la sesión "ultima_actividad" como el timestamp del servidor
$_SESSION['ultima_actividad'] = $hora;
?>
access.php
//Conectamos a la base de datos
require('../../config/conexion.php');
//Obtenemos los datos del formulario de acceso
$userPOST = $_POST["idUsuario"];
$passPOST = $_POST["idPass"];
//Filtro anti-XSS Seguridad
$userPOST = htmlspecialchars(mysqli_real_escape_string($conexion, $userPOST));
$passPOST = htmlspecialchars(mysqli_real_escape_string($conexion, $passPOST));
//Definimos la cantidad máxima de caracteres
//Esta comprobación se tiene en cuenta por si se llegase a modificar el "maxlength" del formulario
//Los valores deben coincidir con el tamaño máximo de la fila de la base de datos
$maxCaracteresUsername = "20";
$maxCaracteresPassword = "60";
//Si los input son de mayor tamaño, se "muere" el resto del código y muestra la respuesta correspondiente
if(strlen($userPOST) > $maxCaracteresUsername) {
die('El nombre de usuario no puede superar los '.$maxCaracteresUsername.' caracteres');
};
if(strlen($passPOST) > $maxCaracteresPassword) {
die('La contraseña no puede superar los '.$maxCaracteresPassword.' caracteres');
};
//Pasamos el input del usuario a minúsculas para compararlo después con
//el campo "usernamelowercase" de la base de datos
// $userPOSTMinusculas = strtolower($userPOST);
//Escribimos la consulta necesaria
// $consulta = "SELECT * FROM `users` WHERE usernamelowercase='".$userPOSTMinusculas."'";
//Consulta normal sin pedir comprobaciones de minusculas o mayusculas.
$consulta = "SELECT * FROM `users` WHERE username='".$userPOST."'";
//Obtenemos los resultados
$resultado = mysqli_query($conexion, $consulta) or die ("Query problem");
$datos = mysqli_fetch_array($resultado);
//Guardamos los resultados del nombre de usuario normal, no en minúsculas
//y de la contraseña de la base de datos
$userBD = $datos['username'];
$passwordBD = $datos['password'];
//Comprobamos si los datos son correctos
// if($userBD == $userPOSTMinusculas and password_verify($passPOST, $passwordBD)){
if($userBD == $userPOST and $passPOST == $passwordBD){
date_default_timezone_set('America/Chihuahua');
// die($parsedDate); //2016-08-18 22:54:33
//CrearFuncion para la diferencia en las fechas y el accesso en si para no repetir procedimientos...
//Funciones o declaraciones repetidas deberan ser incluidas en esta clase*****************************************
$time = date('Y-m-d H:i:s');
$time_dt = new DateTime($time);
$databasetime_dt = new DateTime($datos['lastActivity']);
//*******************************OBTENER DIFERENCIAS EN LAS FECHAS. ENTRE EL TIEMPO ACTUAL Y LA HORA QUE SE REGISTRA EN LA BASE DE DATOS.
$interval = $databasetime_dt->diff($time_dt);
// die($interval->format('%Y'));
if($datos['logged'] == 0){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
// ***********************************************************************************//
//SE GENERA UN UPDATE PARA CONFIRMAR QUE EL USUARIO ESTE LOGUEADO, SI LO ESTA, NO PODRA TENER MAS DE UNA SESION ACTIVA CON UN UPDATE EN LA HORA DE ACCESO//
$consultaActivo = "UPDATE users SET logged = 1, lastActivity ='".$time."' WHERE id=".$datos['id'];
$resultadoActivo = mysqli_query($conexion, $consultaActivo);
echo 'Hecho';
}else{
if($interval->format('%Y') >= 1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Uno o mas años de diferencia");
}else{
if($interval->format('%m') >= 1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Uno o mas meses de diferencia");
}else{
if($interval->format('%d') >= 1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Uno o mas dias de diferencia");
}else{
if($interval->format('%H') >=1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Una o mas hora de diferencia");
}else{
if($interval->format('%i') > 10){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
}
else{
echo 'SesionActiva';
}
}
}
}
}
}
/* Sesión iniciada, si se desea, se puede redireccionar desde el servidor */
//Si los datos no son correctos, o están vacíos, muestra un error
//Además, hay un script que vacía los campos con la clase "acceso" (formulario)
// } else if ( $userBD != $userPOSTMinusculas || $userPOST == "" || $passPOST == "" || !password_verify($passPOST, $passwordBD) ) {
} else if ( $userBD != $userPOST || $userPOST == "" || $passPOST == "" || !password_verify($passPOST, $passwordBD) ) {
// die ('<script>$(".input-group-addon").val("");</script>');
echo "Datos erroneos";
} else {
die('Error');
};
?>
logout.php
<?php
//Reanudamos la sesión
session_start();
//Requerimos los datos de la conexión a la BBDD
require('../../config/conexion.php');
$consultaActivo = "UPDATE `users` SET logged=0 WHERE id=".$_SESSION['id'];
$resultadoActivo = mysqli_query($conexion, $consultaActivo);
//Des-establecemos todas las sesiones
unset($_SESSION);
//Destruimos las sesiones
session_destroy();
//Cerramos la conexión con la base de datos
mysqli_close($conexion);
//Redireccionamos a el index
header("Location: ../../");
return true;
die();
?>
Related
I woyld like to know how to restrict products without stock. So not being able to purchase.
public function getAddToCart(Request $request, $id)
{
$product = Product::find($id); //se busca el producto
$oldCart = Session::has('cart') ? Session::get('cart') : null;//Se verifica la sesión por si hay un carro en existencia
$cart = new Cart($oldCart);//Se construye el carro de compras a partir de uno existente, de ser el caso
$cart->add($product, $product->id);//Se añade el nuevo producto
$product-> quantity = $product-> quantity-1; //Se resta una unidad al producto seleccionado
$product->save(); //Se guarda el cambio realizado en la cantidad del producto
$request->session()->put('cart', $cart);//se almacenan los datos en la sesión
return redirect()->route('product.index');
}
After changing this query to be user with binding parameters, It won't work anymore.
$conectar2 = mysqli_connect(HOST, USER, PASS, DATABASE);
$buscarUsuarioExistente = " SELECT userID, userEmail
FROM usuarios
WHERE userEmail =?
";
$usuarioExiste = mysqli_prepare($conectar2,$buscarUsuarioExistente);
mysqli_stmt_bind_param($usuarioExiste, 's', $email);
mysqli_stmt_execute($usuarioExiste);
mysqli_stmt_close($usuarioExiste);
//SI EL MAIL QUE PONE EL USUARIO YA EXISTE EN BASE
if (mysqli_stmt_affected_rows($usuarioExiste) != 0) {
$usuario = mysqli_fetch_assoc($usuarioExiste);
//como nos devuelve un array, extraemos el primer elemento como string. El array contiene sólo un elemento.
$userID = array_shift($usuario);
//si el usuario existe en base, no lo generamos, sino que le agregamos el curso que seleccionó y le asignamos el rol "noAutorizado" hasta no verificar el pago
$asignarRol = "INSERT INTO rolesUsuarios
(userID, nombreRol)
VALUES
(?, ?)
";
$noAutorizado = 'noAutorizado';
$asignarRolenBase = mysqli_prepare($conectar2,$asignarRol);
mysqli_stmt_bind_param($asignarRolenBase, 'ss', $userID, $noAutorizado);
mysqli_stmt_execute($asignarRolenBase);
if ($asignarRolenBase) {
echo 'Estado "pendiente" del usuario generado.<br>';
}
else {
echo 'Error al asignar estado al usuario'.mysqli_error($conectar2).'<br>';
}
mysqli_stmt_close($asignarRolenBase);
}
The problem seems to be with this: mysqli_stmt_affected_rows($usuarioExiste) != 0 (this is line 45)
Because I get this error:
Warning: mysqli_stmt_affected_rows(): Couldn't fetch mysqli_stmt in
/home/public_html/inscripcionUsuario.php on line 45
UPDATE:
I've noticed that I do close it in the line before I call it (thanks Qirel), but moving further down that line, so I don't close it before, gives me this error:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result,
object given
So, with the update:
$conectar2 = mysqli_connect(HOST, USER, PASS, DATABASE);
$buscarUsuarioExistente = " SELECT userID, userEmail
FROM usuarios
WHERE userEmail =?
";
$usuarioExiste = mysqli_prepare($conectar2,$buscarUsuarioExistente);
mysqli_stmt_bind_param($usuarioExiste, 's', $email);
mysqli_stmt_execute($usuarioExiste);
//SI EL MAIL QUE PONE EL USUARIO YA EXISTE EN BASE
if (mysqli_stmt_affected_rows($usuarioExiste) != 0) {
$usuario = mysqli_fetch_assoc($usuarioExiste);
//como nos devuelve un array, extraemos el primer elemento como string. El array contiene sólo un elemento.
$userID = array_shift($usuario);
//si el usuario existe en base, no lo generamos, sino que le agregamos el curso que seleccionó y le asignamos el rol "noAutorizado" hasta no verificar el pago
$asignarRol = "INSERT INTO rolesUsuarios
(userID, nombreRol)
VALUES
(?, ?)
";
$noAutorizado = 'noAutorizado';
$asignarRolenBase = mysqli_prepare($conectar2,$asignarRol);
mysqli_stmt_bind_param($asignarRolenBase, 'ss', $userID, $noAutorizado);
mysqli_stmt_execute($asignarRolenBase);
if ($asignarRolenBase) {
echo 'Estado "pendiente" del usuario generado.<br>';
}
else {
echo 'Error al asignar estado al usuario'.mysqli_error($conectar2).'<br>';
}
mysqli_stmt_close($asignarRolenBase);
mysqli_stmt_close($usuarioExiste);
}
Update:
I've tried with mysqli_stmt_num_rows()
(if (mysqli_stmt_num_rows($usuarioExiste) != 0))
Instead and I've got this error:
Warning: mysqli_stmt_bind_param() expects parameter 1 to be
mysqli_stmt, boolean given
Your problem is here
mysqli_stmt_close($usuarioExiste);
You're closing the mysqli_stmt object which does
Closes a prepared statement. mysqli_stmt_close() also deallocates the statement handle
As to the other question, you're missing a step
$usuario = mysqli_fetch_assoc($usuarioExiste);
That won't work because you have a mysqli_stmt object, and mysqli_fetch_assoc expects a mysqli_result object. This gets a bit tricky because you might not have the MySQL Native Driver installed (that's a server config). If you do, you can fix it like this
$result = mysqli_stmt_get_result($usuarioExiste);
$usuario = mysqli_fetch_assoc($result);
If that function is undefined you'll have to use the much clunkier mysqli_stmt_bind_result and assign variables. The examples here require a lot of recoding on your part, but you can see some examples over at Example of how to use bind_result vs get_result
the problem is when it does return the binary file, pls help me
<!DOCTYPE html>
<html>
<head>
<title>Tienda Online</title>
<FORM action="upload_imagen.php" enctype="multipart/form-data" method="POST">
<input type="file" name="imagen"> Buscar imagen
<input type="submit" value="Buscar">
</FORM>
<div id="visualizar">
</div>
<form action="mostrar_imagen.php" method="POST">
<input type="text" name="valor" >
<input type="submit" value="mostrar">
</form>
</html>
upload_imagen.php this file upload an image and does storage in a DB
<?php
// Conexion a la base de datos
require "db_model.php";
class upload extends db_model {
function whatever() {
// Comprobamos si ha ocurrido un error.
if (!isset($_FILES["imagen"]) || $_FILES["imagen"]["error"] > 0) {
echo "Ha ocurrido un error.";
} else {
var_dump($_FILES["imagen"]);
// Verificamos si el tipo de archivo es un tipo de imagen permitido.
// y que el tamaño del archivo no exceda los 16MB
$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
$limite_kb = 16384;
if (in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb * 1024) {
// Archivo temporal
$imagen_temporal = $_FILES['imagen']['tmp_name'];
// Tipo de archivo
$tipo = $_FILES['imagen']['type'];
// Leemos el contenido del archivo temporal en binario.
$fp = fopen($imagen_temporal, 'r+b');
$data = fread($fp, filesize($imagen_temporal));
fclose($fp);
//Podríamos utilizar también la siguiente instrucción en lugar de las 3 anteriores.
// $data=file_get_contents($imagen_temporal);
// Escapamos los caracteres para que se puedan almacenar en la base de datos correctamente.
$data = mysql_real_escape_string($data);
// Insertamos en la base de datos.
$this->query ="INSERT INTO imagenes (imagen, tipo_imagen) VALUES ('$data', '$tipo')";
$resultado = $this->execute_query();
if ($resultado) {
echo "El archivo ha sido copiado exitosamente.";
} else {
echo "Ocurrió algun error al copiar el archivo.";
}
} else {
echo "Formato de archivo no permitido o excede el tamaño límite de $limite_kb Kbytes.";
}
}
}
}
$obj = new upload();
$obj->whatever();
?>
mostrar_imagen.php this section retrives the image in binary format, then i want to show it, so i read that i need a header and send it the type of image it is for example .jpg, .gif but i dont know if a i have an error
<?php
require 'db_model.php';
class mostrar extends db_model {
function __construct()
{
$id = $_POST['valor'];
$this->query = "SELECT imagen, tipo_imagen
FROM imagenes
WHERE imagen_id=$id";
$datos = $this->execute_query_as();
$imagen = $datos['imagen']; // Datos binarios de la imagen.
$tipo = $datos['tipo_imagen']; // Mime Type de la imagen.
// Mandamos las cabeceras al navegador indicando el tipo de datos que vamos a enviar.
---- > my problem is here, i guess
header("Content-type: image/jpg");
echo $imagen;
// A continuación enviamos el contenido binario de la imagen.
}
}
$obj = new mostrar();
?>
db_model.php
<?php
/**
* clase de la base de datos
*/
include_once('config.php');
class db_model
{
private $db_host = "localhost";
private $db_user = "root";
private $db_pass = "";
protected $db_name = "tienda_cartas";
protected $query;
protected $rows = array();
private $conection;
private function open_conection()
{
$this->conection = new mysqli($this->db_host,$this->db_user,$this->db_pass,$this->db_name);
if ($this->conection->connect_errno) {
echo "error al conectar";
die();
} else {
echo "conectado";
}
}
private function close_conection() {
$this->conection->close();
}
protected function execute_query() {
$this->open_conection();
$result = $this->conection->query($this->query);
if(!$result){
echo "no se pudo ejecutar el sql";
}
$this->close_conection();
return $result;
header("location:index.php");
}
protected function execute_query_as() {
$this->open_conection();
$result = $this->conection->query($this->query);
if(!$result){
echo "no se pudo ejecutar el sql";
}
$array_as = $result->fetch_assoc();
if(!$array_as){
echo "no hay incidencias";
die();
}
$this->close_conection();
return $array_as;
}
}
?>
This could be your problem:
$data = mysql_real_escape_string($data);
In your classes you use mysqli_* functions, but this one belongs to the deprecated mysql_* functions. When you call it it will automatically try to open a new database connection with mysql_connect(), which will fail because it doesn't have any information about your host. mysql_real_escape_string() will then return false:
Warning: mysql_real_escape_string(): A link to the server could not be established in test.php on line 2
bool(false)
Just remove the line, escaping binary data will most probably ruin it anyway. Instead you should use prepared statements to prevent SQL injections.
Hello! I'm having some trouble making a login for normal users, I have to tables, one is for admin users and the other for employees. The thing is that I want to use the same login and in the PHP first check if the username exists in the table admintable and if not check if it exits in empTable.
Here is my code:
It is working and recognizing only admin users but then when I try to log in with employee users it doesn't log in.
THANKS!!
<?php
include 'cod/php/utils.php';
if(isset($_POST['txtuser']) )
{
//get data from POST
$txtuser = $_POST['txtuser'];
$txtpass = $_POST['txtpass'];
//verificar que exista el usuario en la tabla de admins
if(exists('admintable', 'Username', $txtuser))
{
//obtener el password del usuario
if(get_value('admintable', 'Password', 'Username', $txtuser) == $txtpass)
{
//iniciar sesion
session_start();
//almacenar el usuario en esta sesion
$_SESSION['usuario'] = $txtuser;
header('Location: web/admin.php');
}
}
//verificar que exista el usuario en la tabla de admins
else if(exists('empTable', 'empUsername', $txtuser))
{
//obtener el password del usuario
if(get_value('empTable', 'empPassword', 'empUsername', $txtuser) == $txtpass)
{
//iniciar sesion
session_start();
//almacenar el usuario en esta sesion
$_SESSION['usuario'] = $txtuser;
header('Location: web/usr.php');
}
}
else
{
print_login(true);
}
}
else
{
print_login(true);
}
else
{
print_login(false);
}
}
function print_login($showerror)
{}
?>
I have two tables where I need to display text in a table corresponding to the users of the users table.
So I did this:
$email = $_SESSION['email'];
$select = mysql_query("SELECT t.id, t.id_textos, t.userTitleSite, t.userTextSobre, t.userTextContatos, t.userTextMaisInfos FROM vms_textos t INNER JOIN vms_users u ON (t.id = u.id) LIMIT 1") or print (mysql_error());
while($res_select = mysql_fetch_array($select)){
$userTitleSite = $res_select["userTitleSite"];
$userTextSobre = $res_select["userTextSobre"];
$userTextContatos = $res_select["userTextContatos"];
$userTextMaisInfos = $res_select["userTextMaisInfos"];
$id = $res_select["id"];
and working.
Now i need to update this information straight from the INPUTS..
but I can not do because my field UPDATE must be wrong because it always resets everything after that grip on SUBMIT.
This is the code I'm using. Please see what is wrong:
$query=mysql_query("UPDATE vms_textos SET userTitleSite='$userTitleSite', userTextSobre='$userTextSobre', userTextContatos='$userTextContatos', userTextMaisInfos='$userTextMaisInfos' WHERE t.id=u.id");
Thanks!
[EDIT]
ALL IMPORTANT CODE:
// INCLUDES.PHP
// Starts
ob_start();
session_start();
// Globais
$startaction="";
// Ação
if(isset($_GET["acao"])){
$acao=$_GET["acao"];
$startaction=1;
}
// Conexão com o banco de dados
$conectar=new DB;
$conectar=$conectar->conectar();
// Metodos de Cadastro
if($startaction == 1){
if($acao == "cadastrar"){
$usuario=$_POST["usuario"];
$nome=$_POST["nome"];
$sobrenome=$_POST["sobrenome"];
$telefone=$_POST["telefone"];
$email=$_POST["email"];
$senha=$_POST["senha"];
if(empty($usuario) || empty($nome) || empty($sobrenome) || empty($telefone) || empty($email) || empty($senha)){
$msg="Preencha todos os campos!";
}
// Todos os campos preenchidos
else {
// Email válido
if(filter_var($email,FILTER_VALIDATE_EMAIL)){
// Senha inválida
if(strlen($senha) < 8){
$msg="As senhas devem conter no mínimo oito caracteres!";
}
// Senha válida
else {
// Executa a classe de cadastro
$conectar=new Cadastro;
echo "<div class=\"flash\">";
$conectar=$conectar->cadastrar($usuario, $nome, $sobrenome, $telefone, $email, $senha);
echo "</div>";
}
}
// Email invalido
else{
$msg="Digite seu e-mail corretamente!";
}
}
}
}
// Método de Login
if($startaction == 1){
if($acao == "logar"){
// Dados
$email=addslashes($_POST["email"]);
$senha=addslashes(sha1($_POST["senha"].""));
if(empty($email) || empty($senha)){
$msg="Preencha todos os campos!";
} else{
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$msg="Digite seu e-mail corretamente!";
} else {
// Executa a busca pelo usuário
$login=new Login;
echo "<div class=\"flash\">";
$login=$login->logar($email, $senha);
echo "</div>";
}
}
}
}
// Método de Checar usuário
if(isset($_SESSION["email"]) && isset($_SESSION["senha"])){
$logado=1;
$nivel=$_SESSION["nivel"];
}
// LOGIN.PHP -- CLASSE DE LOGIN
class Login {
public function logar($email, $senha){
$buscar=mysql_query("SELECT * FROM vms_users WHERE email='$email' AND senha='$senha' LIMIT 1");
if(mysql_num_rows($buscar) == 1){
$dados=mysql_fetch_array($buscar);
if($dados["status"] == 1){
$_SESSION["email"]=$dados["email"];
$_SESSION["senha"]=$dados["senha"];
$_SESSION["nivel"]=$dados["nivel"];
setcookie("logado",1);
$log=1;
} else{
$flash="Usuário bloqueado! Entre em contato conosco!";
}
}
if(isset($log)){
$flash="Você foi logado com sucesso!";
} else{
if(empty($flash)){
$flash="Ops, digite seu e-mail e sua senha corretamente!";
}
}
echo $flash;
}
}
// CADASTRO.PHP -- CLASSE DE CADASTRO
class Cadastro{
public function cadastrar($usuario, $nome, $sobrenome, $telefone, $email, $senha){
// Tratamento das variaveis
$usuario=ucwords(strtolower($usuario));
$nome=ucwords(strtolower($nome));
$sobrenome=ucwords(strtolower($sobrenome));
$telefone=ucwords(strtolower($telefone));
$email=ucwords(strtolower($email));
$senha=sha1($senha."");
// Inserção no banco de dados
$validaremail=mysql_query("SELECT * FROM vms_users WHERE email='$email' OR usuario='$usuario'");
$contar=mysql_num_rows($validaremail);
if($contar == 0){
$insert=mysql_query("INSERT INTO vms_users(usuario, nome, sobrenome, telefone, email, senha, nivel, status) VALUES('$usuario','$nome','$sobrenome','$telefone','$email','$senha','1','0')");
} else{
$flash="Desculpe, mas já existe um usuário cadastrado com este e-mail em nosso sistema!";
}
if(isset($insert)){
// Cadatro ok
$flash="Cadastro realizado com sucesso, aguarde nossa aprovação!";
} else{
if(empty($flash)){
$flash="Ops, houve um erro em nosso sistema!";
}
}
// Retorno para o usuário
echo $flash;
}
}
$query=mysql_query("UPDATE vms_textos SET t.userTitleSite='$userTitleSite' WHERE t.id='u.id'");
$query=mysql_query("UPDATE vms_textos SET userTitleSite='$userTitleSite' WHERE t.id=u.id");
what field do u want to update in db? SET that particular field in mysql_query(). i mentioned here.. try like this if u set all fields then all fields are updated..