Saya memiliki situs web di mana pengguna dapat masuk. Saya sudah mencoba:
<?php echo $_SESSION ['userlogin']
dan Ketika pengguna login, saya mengatur sesi mereka sebagai userlogin, tetapi tidak akan menampilkan nama pengguna mereka; Ini adalah tutorial yang saya gunakan
Apakah Anda memulai sesi sebelum menggunakannya?
Jadi untuk mengaturnya:
<?php
//Fetch the username from the database
//The $login and $password I use here are examples. You should substitute this
//query with one that matches your needs and variables.
//On top of that I ASSUMED you are storing your passwords MD5 encrypted. If not,
//simply remove the md5() function from below.
$query = "SELECT name FROM users WHERE login='" . mysql_real_escape_string($login) . "' AND password='" . md5($password) . "'";
$result = mysql_query($query);
//Check if any row was returned. If so, fetch the name from that row
if (mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc_assoc($result);
$name = $row['name'];
//Start your session
session_start();
//Store the name in the session
$_SESSION['userlogin'] = $name;
}
else {
echo "The combination of the login and password do not match".
}
?>
Dan untuk mengambilnya di halaman lain lakukan:
<?php
//Start your session
session_start();
//Read your session (if it is set)
if (isset($_SESSION['userlogin']))
echo $_SESSION['userlogin'];
?>
EDIT
Beberapa informasi lebih lanjut tentang cara membuat formulir login... Anda mengatakan bahwa Anda telah mencoba mengatur $_SESSION['user']
tetapi tidak berhasil.
Jadi, pastikan bahwa Anda benar-benar melakukan session_start();
sebelum itu. Jika Anda melakukannya, semuanya akan bekerja. Kecuali jika Anda menetapkan variabel kosong ke session. Jadi, periksa kembali bahwa variabel yang Anda tetapkan benar-benar berisi nilai. Seperti:
<?php
session_start();
echo "Assigning session value to: " . $user;
$_SESSION['user'] = $user;
?>
Dalam tutorial yang Anda tautkan ke saya, mereka melakukannya:
$_SESSION[user]=$_GET[userlogin];
Ini berarti mereka menetapkan nilai yang mereka dapatkan dari loginform yang mereka buat di sini:
function loginform() {
print "please enter your login information to proceed with our site";
print ("<table border='2'><tr><td>username</td><td><input type='text' name='userlogin' size'20'></td></tr><tr><td>password</td><td><input type='password' name='password' size'20'></td></tr></table>");
print "<input type='submit' >";
print "<h3><a href='registerform.php'>register now!</a></h3>";
}
Di sana Anda melihat <input type='text' name='userlogin' size'20'>
. Tetapi tidak ada tag &<form></form>
di sekitar form ini... Jadi ini tidak akan diposting dengan benar. Jadi yang harus Anda lakukan adalah sebagai berikut:
<form method="POST" action="index.php">
<label for="userlogin">Username:</label> <input type="text" id="userlogin" name="userlogin" size="20" />
<label for="password">Password:</label> <input type="password" id="password" name="password" size="20" />
<input type="submit" value="login" />
</form>
Formulir ini akan memposting formulir kembali ke index.php dengan userlogin dan password sebagai variabel $_POST
.
Di index.php Anda kemudian dapat melakukan:
<?php
//Get variables:
$login = mysql_real_escape_string($_POST['userlogin']);
$pass = mysql_real_escape_string($_POST['password']);
//Check your table:
$query = "SELECT userlogin FROM users WHERE userlogin = '" . $login . "' AND password='" . $pass . "'";
$result = mysql_query($query);
//Check if this user exists:
if (mysql_num_rows($result) == 1) {
echo "User exists!";
//Store the login in the session:
session_start();
$_SESSION['userlogin'] = $login;
}
else {
echo "Unknown user";
}
?>
Saya tidak bisa membuatnya lebih jelas tanpa menulis seluruh kode untuk Anda. Jadi saya harap ini membantu Anda.
Tanpa menunjukkan lebih banyak kode, kami tidak dapat berkomentar banyak, tetapi apakah Anda yakin Anda memanggil session_start di setiap halaman yang Anda gunakan variabel sesi Anda juga? Juga pastikan Anda menggunakan kapitalisasi yang sama (userlogin != UserLogin).