2016-04-13 32 views
0

Bu kodu kullanabilmek için bu kodu kullanıyorum ve mysql veritabanında oturum açtığınız sütundaki değeri güncelleştirmek istiyorum. Başlığı göndermeden önce güncellemeye çalıştım ancak güncellenmiyor. Sütunu güncelleştirmek için kodu nereye koymalıyım?kullanıcı oturum açtığında mysql veritabanında güncelleştirme sütunu

mysqli_query($con, 'UPDATE user SET loggedin = 'yes' WHERE userid = 1'); 

bu işlevleri kullanmak, güvenli değil, parolalarını karıştırmak md5() işlevini kullanın etmeyin: Buna

UPDATE user SET loggedin = 'yes' WHERE userid = 1; 

:

if (isset($_POST['login'])) 
    { 
    $username = trim(mysqli_real_escape_string($con, $_POST['username'])); 
    $password = trim(mysqli_real_escape_string($con, $_POST['password'])); 
    $md5password = md5($password); 

    // check user and password match to the database 

    $query = mysqli_query($con, "SELECT * FROM `user` WHERE username='$username' AND password='$md5password'"); 

    // check how much rows return 

    if (mysqli_num_rows($query) == 1) 
     { 

     // login the user 
     // get the id of the user 

     $fetch = mysqli_fetch_assoc($query); 

     // start the session and store user id in the session 

     session_start(); 
     $_SESSION['id'] = $fetch['id']; 
     $_SESSION['username'] = $fetch['username']; 
     $query = mysqli_query($con,"UPDATE user SET loggedin = 'yes' WHERE userid = 1;"); 
     header("Location: message.php"); 
     } 
     else 
     { 

     // show error message 

     echo "<div class='alert alert-danger'>Invalid username Or password.</div>"; 
     } 
    } 
+0

. İdam edilmeli, hepsi bu. – arkascha

+0

Belki de sorun şu ki bu kodun herhangi bir yerinde "UPDATE" işlemi yok ... – David

+0

GÜNCELLEME 'user' SET 'oturum açma' = 'evet' WHERE' user'.'id' = 1; Bunu kullanıyorum ama güncelleme yapmıyor –

cevap

1

doğru userid. Giriş kullanıcıya ait kimlik yerine userid = 1 güncelliyoruz Öyle olmalı. Böyle bir komut yerleştirmek nerede farketmez

$query = mysqli_query($con,"UPDATE user SET loggedin = 'yes' WHERE id = {$_SESSION['id']};"); 
+0

o güncelleme yapmaz .. –

+0

Bir hata var mı? Echo mysqli_error ($ con); 'ne gösteriyor? – Barmar

+0

çalışması ... kullanıcı kodu değiştirilemedi ... kullanıcı kodu çıktığında ... –

0

Bu değiştirmeniz gerekir bunun yerine:
http://php.net/manual/en/function.password-hash.php
http://php.net/manual/en/function.password-verify.php

Ayrıca bu kullanın: kullanıcı adı varsa

if (mysqli_num_rows($query) == 1) 

kontrol etmek için, bu değiştirmeyi öneriyorum:

if (mysqli_num_rows($query)) 

Aynı yapar ama bunu yapmak için daha az kod gerekir. Bunun dışında

, bunları da takmadan önce sorguları prepare öğrenmek lütfen, geçerli kod SQL enjeksiyon için açıktır, bu konuda daha fazla burada bulunabilir: Güncelliyorsunuz değiliz
How can I prevent SQL injection in PHP?

+0

hala güncellenmiyor ... –

İlgili konular