Magento 1.9 Tidak dapat masuk ke panel admin!

99

Saya telah menginstal Magento 1.9 . Itu bekerja dengan baik selama seminggu. Tiba-tiba kemarin, ketika saya mencoba masuk ke panel admin Magento dan saya mengetik usernamedan password, mengklik tombol Login dan tidak ada yang terjadi. Halaman disegarkan dan itu saja. Tidak ada kesalahan atau pesan lainnya.

Jika saya memasukkan nama pengguna atau kata sandi yang salah, ini menunjukkan kesalahan.

Setelah saya googled tentang masalah ini, saya disarankan untuk berkomentar baris berikut di:

app \ code \ core \ Mage \ Core \ Model \ Session \ Abstract \ Varien.php

/* to solve login issue */
  /*if (!$cookieParams['httponly']) {
  unset($cookieParams['httponly']);
  if (!$cookieParams['secure']) {
  unset($cookieParams['secure']);
  if (!$cookieParams['domain']) {
  unset($cookieParams['domain']);
  }
  }
  }

if (isset($cookieParams['domain'])) {
  $cookieParams['domain'] = $cookie->getDomain();*/ //I have commented these lines

Dan untuk beberapa versi yang lebih tua di bawah ini, recommented di file yang sama.

$cookieParams = array(           
    'lifetime' => $cookie->getLifetime(),           
    'path'     => $cookie->getPath(),           
    //'domain'   => $cookie->getConfigDomain()           
    //'secure'   => $cookie->isSecure(),           
    //'httponly' => $cookie->getHttponly()       
);
  }*/

Bahkan setelah itu, saya tidak bisa masuk ke admin. Seperti apa adanya. Adakah yang menghadapi masalah ini? Apakah ada solusi lain untuk masalah ini?

(Saya mencoba membersihkan cache dan sesi melalui ftp).

SIBHI S
sumber
bisakah Anda menghapus cache / cookie browser dan coba lagi?
alamelu
Salin file inti ke app/code/local/Mage/Core..blahblahuntuk diedit sehingga Magento menimpa file inti. Juga gunakan git untuk kontrol versi, itu adalah anugerah.
Chris K
@SHIBHI S, referensi
Manoj Kumar
1
Jika Anda menggunakan Chrome, kunci F12> Sumber Daya> Cookie> Klik kanan domain Anda> Bersihkan.
rybo111

Jawaban:

122

Berhentilah mengubah kode inti seperti itu - mungkin untuk sementara menyelesaikan suatu masalah, tetapi mungkin membuat masalah di masa depan yang hampir mustahil untuk dilacak.

Ada sejumlah masalah berbeda yang menyebabkan perilaku masuk admin yang salah yang Anda lihat, tetapi semuanya kembali ke Magento karena tidak dapat mengatur atau membaca cookie sesi. Magento menggunakan sesi untuk menyampaikan pesan kesalahan antar halaman - itu sebabnya Anda tidak melihat pesan kesalahan. Magento juga menggunakan sesi untuk menyimpan nilai "login", jadi tidak mengatur sesi juga menyebabkan perilaku kesalahan inti.

Kemungkinan penyebabnya termasuk

  • Waktu komputer lokal vs. ketidakcocokan waktu server, menyebabkan pembatalan cookie instan. Pastikan waktu server Anda benar.

  • Izin salah aktif var/session, mencegah file sesi disimpan

  • Konfigurasi database / redis / penyimpanan sesi lainnya salah, mencegah penghematan nilai sesi

  • Modul membuat sesi untuk awal , mencegah nama sesi yang benar dari yang ditetapkan

  • Anda adalah seorang pengembang yang menggunakan banyak URL dan memiliki banyak domain cookie

  • Pengembang lain entah bagaimana telah dimodifikasi app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, menciptakan bug yang sulit dilacak

  • Domain cookie di System -> Configuration -> Web -> Session Cookie Managementtidak cocok dengan domain situs yang sebenarnya.

  • Anda menggunakan localhostsebagai domain server Anda, dan menggunakan versi webkit yang memiliki masalah / bug untuk mengatur cookie localhostdalam beberapa situasi.

Perbaikan jangka pendek adalah dengan hanya menghapus cookie Anda untuk domain. Itu cukup sering untuk menyelesaikan masalah. Jika masih ada, cari tahu alasan di atas yang menjadi alasan kesalahan Anda, dan ambil langkah untuk mengatasinya (perbaiki izin, dll.)

Alan Storm
sumber
7
Anda dapat menggunakan n98-magerun's sys: centang perintah untuk menemukan masalah dengan domain cookie dan url dasar. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench
1
@Lan Storm, Terima kasih atas penjelasannya. Saya memecahkan masalah saya. Dalam kasus saya, alasan masalah adalah yang ke-3.
SIBHI S
4
Dalam kasus saya, tidak ada cukup ruang disk di server. Jadi, Anda mungkin ingin menambahkan ini sebagai kemungkinan penyebabnya.
Simon
@cmuench Saya menjalankan perintah itu dan saya tidak mengerti hasil: Toko BaseURL Tidak Aman Tidak Valid: default nama host salah dikonfigurasi. Nama host harus mengandung titik ✖ TokoURURL Tidak Aman Tidak Valid: Perancis Nama host salah dikonfigurasi. Nama host harus mengandung titik ✖ TokoURURL Tidak Aman Tidak Valid: sot_eng Konfigurasi nama host salah. Nama host harus mengandung titik ✖ TokoURURL Tidak Aman Tidak Valid: sot_fra Konfigurasi nama host salah. Hostname harus mengandung titik ✔ Cookie Domain (aman) dari Store: default OK - Tidak ada set domain Semua domain Cookie terlihat sama Ok dan Tidak ada set domain
Denisa
@Denisa Anda akan memiliki sedikit keberuntungan jika Anda mencoba menanyakan hal itu sebagai pertanyaan baru.
Alan Storm
33

Saya mengalami gejala yang sama pada beberapa instalasi Magento (tidak hanya 1.9). Dalam kasus saya, ini hanya terjadi di Chrome. Saya memperbaikinya dengan masuk ke Firefox / Safari / Opera, dan mengubah 'Gunakan HTTP saja' menjadi 'Tidak' di 'Session Cookies Management' dari pengaturan 'Web'.

Lihat screenshot backend Magento dengan pengaturan cookie

DmitryR
sumber
3
Ini membantu saya menjalankan lingkungan pengembangan saya di Chrome, tetapi ingat untuk tidak menggunakan pengaturan ini dalam produksi karena membuka seluruh kelas kerentanan keamanan.
Stephen Crosby
di mana bagian Manajemen Sesi Cookie?
Aryeh Armon
1
Periksa juga domain cookie Anda - Saya mengembangkan secara lokal dan ini ternyata menjadi masalah saya.
Phil Birnie
Banyak membantu saya! Tidak pernah tahu bahwa ini hanya terjadi di Chrome. Ha ha!
jehzlau
4
Untuk mengatur Use HTTP onlyuntuk Notanpa akses panel admin. Anda dapat meluncurkan langsung permintaan SQL ini: PEMBARUAN __DATABASE_NAME__. core_config_dataSET value= '0' DI MANA core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig
11

Saya punya masalah ini juga. Ternyata sesi tidak bisa mendapatkan ditulis untuk var/session, meskipun direktori itu sendiri diatur untuk 0777. Magento membuat file sesi, tetapi semuanya tetap nol byte.

Mengubah penyimpanan sesi dari filesmenjadi dbmemecahkan masalah bagi saya.

Giel Berkers
sumber
ini bekerja! Saya tidak mengerti mengapa Magento tidak menulis sesi dan cache pada file. Izinnya benar!
Michelangelo
Jika saya mengingat kembali situasi saya, apakah disk sudah penuh, atau direktori sesi memiliki terlalu banyak file.
Giel Berkers
Yang ini bekerja untuk saya !!
Ner
Dalam kasus saya: Mengubah penyimpanan sesi dari db ke file yang diselesaikan masalah.
akgola
7
  1. Buka direktori instalasi Magento Anda. Temukan dan buka file index.php.
  2. Cari laporan kesalahan (E_ALL | E_STRICT); kode.
  3. Beri komentar seperti itu:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. Dan gunakan kode berikut sebagai gantinya:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Batalkan komentar dengan menghapus tanda #, sehingga terlihat seperti itu:

    ini_set('display_errors', 1);

  6. Simpan file ini dan unggah ke server. Muat ulang halaman situs web Anda untuk melihat kesalahan.

Randhir Yadav
sumber
6

Alasan lain yang mungkin: harddisk / volume / kuota penuh dan sehingga data sesi tidak dapat ditulis ke disk. Mungkin sepertinya tidak mungkin, tetapi baru saja terjadi kedua kalinya bagi saya dan perlu waktu untuk mencari tahu.

Saya tidak memiliki cukup reputasi untuk berkomentar, tetapi @Alan Storm, mungkin Anda ingin mengambil ini dalam daftar yang sangat baik.

johjoh
sumber
6

Saya baru-baru ini memiliki masalah yang sama dan trik sederhana berhasil untuk saya. Ini juga untuk orang-orang yang tidak dapat mengakses dasbor di Google Chrome . Jika Anda dapat bekerja di Mozilla Firefox maka silakan lakukan karena saya kira masalah ini tidak persisten di Mozilla firefox.

Jadi solusi untuk chrome adalah:

Goto System> Konfigurasi-> Web . Buka tab Tidak Aman dan Aman . Ubah URL Basis menjadi http://127.0.0.1/[Your folder name]jika Anda menggunakan localhost atau ubah ke URL Situs tempat Anda mengakses frontend. Saya harus masuk dua kali untuk sampai ke Dasbor karena ketika saya memasukkan detail untuk pertama kalinya, itu hanya menyegarkan dan kembali ke halaman yang sama seperti yang Anda sebutkan sebagai perulangan.

rash.tay
sumber
5

Buka phpMyAdmin Anda dari host Anda coba sekali perintah sql ini.

Jalankan SQL ini:

SET FOREIGN_KEY_CHECKS=0;
UPDATE core_store SET store_id = 0 WHERE code='admin';
UPDATE core_store_group SET group_id = 0 WHERE name='Default';
UPDATE core_website SET website_id = 0 WHERE code='admin';
UPDATE customer_group SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';SET FOREIGN_KEY_CHECKS=1;

Sekarang admin bisa masuk.

Silakan ikuti ini:

Halaman admin menunjukkan 404 halaman tidak ditemukan

Teja Bhagavan Kollepara
sumber
1
jangan lupa untuk membuka di jendela anonim atau browser lain untuk menghapus sesi
Martin
3

Saya memiliki masalah yang sama dan saya menyelesaikannya dengan menghapus semua file di / var / session. Saya pikir itu karena terlalu banyak sesi di Magento!

pengguna3213786
sumber
3

Daftar Badai Alarm sudah benar dan terperinci. Berikut adalah beberapa kasus tambahan.

  1. Dalam gelandangan, periksa izin var/sessionMesin host juga
    (masalah pemasangan)
  2. Periksa apakah disk Anda penuh atau terlalu banyak file dalam var / sesi
  3. Jalankan n98-magerun.phar sys:check(menangkap masalah termasuk domain cookie)
  4. Ubah sesi ke database dengan mengedit local.xml. Ini akan mengesampingkan sebagian besar masalah izin dengan menggunakan insidie<global>

    <session_save><![CDATA[db]]></session_save>

Juga bervariasi ekstensi pihak ketiga (ekstensi firewall / keamanan) misalnya https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 menempatkan Anda dalam daftar hitam jika Anda mencoba terlalu banyak.

Dapat terjadi jika sesi Anda awalnya tidak berfungsi untuk masalah izin tetapi kemudian terus gagal bahkan setelah Anda memperbaiki masalah asli

Dalam kasus khusus Anda, awasi admin_session_user_login_successacara karena sebagian besar modul keamanan / firewall menggunakan acara ini. Perhatikan secara khusus jika variabel $_SESSION['admin']disetel ulang oleh pengamat

zainengineer
sumber
2

Penting juga bahwa Anda memiliki hadiah kunci formulir, jika tidak, formulir Anda tidak akan diproses.

<?php echo $this->getBlockHtml('formkey'); ?>
Tahir Yasin
sumber
2

Solusi sederhana untuk masalah ini adalah menggunakan http://127.0.0.1 sebagai nama inang alih-alih localhost.

Karena masalahnya adalah Anda tidak dapat masuk ke admin Anda, Anda harus mengubah url basis aman dan tidak aman dalam tabel database: core_config_data

Ini juga akan membuat baseurl Anda validasi dengan sys n98-magerun: check

munkholm
sumber
2

Jika Anda mengembangkan localhostdan telah menetapkan atau mengubah nama domain Anda localhost, perbarui core_config_datanama domain tabel database Anda 127.0.0.1sebagai gantinya. MisalnyaUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";

Jonathan
sumber
2

Selain itu, Anda dapat memperbarui kata sandi dalam database jika segala sesuatu dari atas tidak berfungsi dan Anda perlu akses putus asa:

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;

ganti kata-kata pengguna dan kata sandi sesuai dengan kebutuhan Anda.

Claudiu Creanga
sumber
2

Pertama-tama cobalah untuk menghapus cache Anda, saya pikir dan jika ini tidak berhasil, cobalah untuk membuat chmod 700 pada folder var Anda.

Felix Schönherr
sumber
1

Anda dapat mengubah browser Anda mungkin ini berfungsi untuk saya. Ketika kesalahan ini terjadi, saya telah mengubah browser chrome ke firefox dan berfungsi.

Ansari Ziyaurrahman
sumber
0

Hal yang sama terjadi pada saya beberapa waktu lalu dan masalah saya berasal dari sesi. Saya tidak punya cukup ruang DISK untuk membuat sesi dan cache var/. Saya menghapus beberapa hal dan semuanya bekerja setelahnya. Mungkin itu akan membantu seseorang.

Tepuk tangan

Attila Naghi
sumber
0

Cobalah untuk menghapus cache Anda dengan mengosongkan folder "var / cache" dan "var / session", ini menyelesaikannya untuk saya.

Saya juga harus me-restart server web setelah itu sekali.

Hitam
sumber