Mantıksız profil kullanıcı php. WordPress yönetici alanındaki görsel düzenleyiciyi, renk şeması seçimini ve diğer detayları kaldırıyoruz. "Kısayol Tuşlarını" Gizle

Genel Konular

Q: Profil oluşturucu sunucu etkinliğini gösterir, ancak tüm istekleri ve oturumları göstermez.

A: Oturumları yakalamaya başlamak için Başlat düğmesine basmayı unutmayın.

Q: MySQL'e bağlanabildim ama Oturumlar görünmüyor.

A: Neor Profile SQL, bir proxy sunucusu olarak çalışır. Bu, yalnızca profil oluşturucudan geçen oturumların gösterilebileceği anlamına gelir. Uygulamanız (veya siteniz) profil oluşturucuya normal bir MySQL sunucusu gibi bağlanmalıdır. Profil oluşturucu yalnızca TCP gelen bağlantılarını kullanır. Ardından Oturumlar sekmesinde sonucu göreceksiniz.

Q: Neden bazı oturumlarda istekler sıfır zamanlı?

A: Sıfır zamanlı sorgular, gecikme olmaksızın son derece hızlıdır. Örneğin, güçlü bir sunucunuz ve iyi optimize edilmiş tablolarınız varsa, bu tür sorgular DBMS tarafından önbelleğe alınabilir veya çok hızlı bir şekilde yürütülebilir.

Q: Bir oturumda zaman ve süre olarak % ne anlama gelir?

A:"Zaman%", toplam oturum yürütme süresinin bir kısmıdır. "Süre%", oturumdaki en uzun isteğin oranıdır (en uzun isteğe oranı).

Q: JetProfiler kullanıyorum ve kurulumu daha kolay.

A: JetProfiler şuradan bilgi alır: MySQL sunucusu"durumu göster" komutuyla çalışır ve gizli çalıştığı için sunucudaki tüm bilgileri alamaz. Neor Profile SQL, kesinlikle tüm veritabanı sorgularını gösterir. Bu da uygulamanızı profil oluşturucu aracılığıyla istek akışını yönlendirecek şekilde yapılandırmanızı gerektirir.

Q: SQL sekmesindeki Profil düğmesi sonucu göstermiyor

A: SQL düzenleyicideki profil oluşturma özelliği, 5.0.37 sürümünden bu yana MySQL Community Server'a eklenen PROFİLLERİ GÖSTER komutuyla çalışır. MySQL sunucu sürümünüzü kontrol edin.

Q: Profil oluşturucuyu konsol tabanlı yapabilir miyim?

A: Konsol için, bir dizi DBMS günlüğü ve kuyruğu veya oldukça az sayıda bulunan özel konsol araçları kullanın. Neor Profile SQL, bir geliştirici tarafından sistemde barındırılması amaçlanan bir pencereleme işletim sistemi uygulamasıdır.

Q: Profil oluşturucu çalışıyor, ancak neden ana istatistik grafiğini göstermiyor?

A: Ana grafik, ana sunucu için SHOW STATUS komutunu kullanır. Bu komutu sunucuda çalıştırma izniniz olmayabilir. Bu komutun haklarının mevcut olduğundan emin olun.

Q: Yükleyiciyi sessiz modda nasıl çalıştırırım?

A: sqlprofiler-4.1.1.exe / S / D: C: Program Dosyaları (x86) Neor Profil SQL

pencereler

Q: Profiler bağlantısı nasıl kontrol edilir?

A: Profil oluşturucuya bağlanmak için MySQL konsol istemcisini kullanın. Oturumlar sekmesinde oturumunuzu görüyorsanız, her şeyin doğru yapılandırıldığı anlamına gelir.
Örneğin:
Ardından basit bir SQL komutu yürütün:
tabloları göster;
Profil oluşturucudaki Oturumlar sekmesinde ne olduğunu görün.

Linux

Q: localhost üzerinden bağlanılamıyor.

A: Linux, localhost'u bir soket bağlantısıyla ilişkilendirmeye çalışır, ancak Neor Profile SQL yalnızca TCP bağlantılarıyla çalışır. Profil oluşturucudaki sunucu adresini localhost yerine 127.0.0.1 olarak ayarlayın. Uygulama ayarlarınızda da aynısını yapın.
Örneğin:
mysql --host = 127.0.0.1 --user = GİRİŞ --şifre = ŞİFRE --port = 4040

Q: 127.0.0.1'e bağlanamıyorum.

A: Uygulamanızdaki bağlantı türünü kontrol edin. Bağlantı noktası değeri girmenizi gerektirmeyen yerel soket bağlantı türünü de kullanabilirsiniz.

Q: OpenSUSE altında Neor Profile SQL'i nasıl kurarım?

A:Şu anda yalnızca Ubuntu, Debian üzerinde çalışan ve uyumlu DEB paketini destekliyoruz. Linux dağıtımları... Kendiniz bir RPM dosyası oluşturabilir ve bunu yaparak yardımcı olabilirsiniz.

Q: Neden Sysbench sorgularını engelleyemiyorum?

A: Profil oluşturucu yalnızca TCP gelen bağlantılarını kullanır. Sysbench'i ana bilgisayar ve bağlantı noktası parametreleriyle çalıştırın:
sysbench --test = oltp --mysql-host = 127.0.0.1 --mysql-port = 4040--mysql-user = root --mysql-password = şifre hazırla

Mac OS X

Q: Profil oluşturucu, MAMP MySQL sunucusuna bağlanamıyor.

A: Sorun ağ bağlantısı MySQL yapılandırmasında:

  1. MAMP
    Ücretsiz sürüm- standart MySQL yapılandırmasını klasöre kopyalayın
    /Applications/MAMP/conf/my.cnf
    Profesyonel sürüm - menüyü aç DOSYA - DÜZENLE - MySQL şablonu
  2. my.cnf yapılandırmasında satır atlama ağ bağlantısını kaldırın
  3. Profiler Ayarlarında, veritabanı ana bilgisayar adresini localhost'tan 127.0.0.1 olarak değiştirin

Komut dosyanızdaki MySQL bağlantı noktasını değiştirme

Neor Profile SQL'de varsayılan bağlantı noktası 4040'tır. SQL sorguları MySQL bağlantısı için varsayılan değerleri betiğinizde host ve port 3306 olarak değiştirmelisiniz.Bunun nasıl yapılacağına dair örnekler aşağıdadır.

string connStr = " sunucu = 127.0.0.1; bağlantı noktası = 4040; veritabanı = YOUR_VERİTABANI; kullanıcı = YOUR_USER; şifre = YOUR_PASSWORD; ";
http://dev.mysql.com/doc/refman/5.1/en/connector-net-tutorials-intro.html


Popüler CMS'de bağlantı noktası değişikliği

Wordpress

Dosya: wp-config.php
Kod: tanımla ("DB_HOST", "localhost" :4040 ");

PrestaShop

Dosya: config / settings.inc.php
Kod: define ("_ DB_SERVER_", "localhost" :4040 ");

Opencart

Dosya: config.php
Kod: tanımla ("DB_HOSTNAME", "localhost" :4040 ");

Zaten WordPress kullanıcıları yazdım (bağlantıya bakın). Ancak herhangi bir araç gibi (balyoz hariç) Adminimize ideal değildir ve her şeyi tamamen kaldıramaz, ancak bu sadece Vorpress programcıları sayesinde olur.

Bu gönderi kendiliğinden doğdu, teşekkür ederim misafir Darbe. Sorusunun özü şuydu (daha çok bir dizi soru):

1. Kullanıcı için "Renk Şeması Seçimi" nasıl gizlenir?

2. WordPress panosunda "Klavye Kısayolları" ve "Görsel Düzenleyici" nasıl gizlenir?

Direk konuya gireceğim. Bu yöntemi kullanarak, kullanıcının profilinde ve diğer sayfalarda herhangi bir öğeyi gizleyebilirsiniz. En kolay yol, görüntüleme dosyasını düzenlemektir!

"Profil" için dosya budur kullanıcı-edit.php hangi klasörde yatıyor wp-admin.Çok dikkatli bir şekilde düzenlemeniz gerekir, aksi takdirde deneyleriniz için iyi bir "ödeme yapabilirsiniz".

Çözüm (birleşik):

1. Dosyayı bilgisayarınıza indirin ve bir kopyasını alın (güvenli ....)

2. İhtiyacımız olan bilgileri görüntülemekten sorumlu olan Html kodunu arıyoruz.

3. Üzerinde dikkatlice yorum yapın ve yenisiyle "doldurun".

Şimdi alıştırma yapın (User-edit.php'yi düzenleyin):

Dürüst olmak gerekirse, deney sitesinde hangi WP sürümüne sahip olduğumu hatırlamıyorum ama kesinlikle 2.8.2'den düşük değil.

İlk önce dosyayı bilgisayarıma indirdim ve Görüntüleyiciyi kullanarak krom kodu"Kodun kendisine baktım ve kodu Notepad ++'da buldum.

(her iki tarafta iki tire "-")

1. "Görsel düzenleyiciyi" gizleyin

Kodu değiştir:

—>

ps: bu kodu kopyalamayın, kendiniz değiştirin - yüksek bir hata olasılığı var !!!

2. "Renk şemasını seçin"i gizleyin.

Umarım kodlar arasındaki farkı fark etmişsinizdir - toplamda 7 karakter eklemişsinizdir. Bu öğeyi gizlemek için arıyoruz if (sayım ($ _ wp_admin_css_colors)> 1) ve aradaki tüm kodu satırın altına yorumlayın önce

3. "Kısayol Tuşlarını" gizleyin.

İkinci derste iki sınıf daha yazacağız ve senaryonun iç kısmını tamamen bitireceğiz.

Plan

Bu eğitim serisinin amacı, kullanıcıların kaydolmasına, oturum açmasına, oturumu kapatmasına ve ayarları değiştirmesine olanak tanıyan basit bir uygulama oluşturmaktır. Kullanıcı ile ilgili tüm bilgileri içerecek olan sınıfa User adı verilecek ve User.class.php dosyasında tanımlanacaktır. Girmek / çıkmaktan sorumlu olacak sınıf, UserTools (UserTools.class.php) olarak adlandırılacaktır.

Sınıf adlandırma hakkında biraz

Sınıf tanımlarına sahip dosyaları sınıfın kendisiyle aynı adla adlandırmak iyi bir uygulamadır. Bu, sınıf klasöründeki her dosyanın amacını belirlemeyi kolaylaştırır.

Sınıf dosya adının sonuna .class veya .inc eklemek de yaygındır. Böylece, dosyanın amacını net bir şekilde tanımlarız ve bu dosyalara erişimi kısıtlamak için .htaccess kullanabiliriz.

Kullanıcı Sınıfı (User.class.php)

Bu sınıf her kullanıcıyı tanımlayacaktır. Bu uygulama büyüdükçe, "Kullanıcı" tanımı önemli ölçüde değişebilir. Neyse ki, OOP programlama, ek kullanıcı özellikleri eklemeyi kolaylaştırır.

yapıcı

Bu sınıfta bir kurucu kullanacağız - bu, sınıfın başka bir kopyası oluşturulduğunda otomatik olarak çağrılan bir fonksiyondur. Bu, projeyi oluşturduktan sonra bazı nitelikleri otomatik olarak yayınlamamıza izin verir. Bu sınıfta, yapıcı tek bir argüman alacaktır: veritabanımızdaki users tablosundan bir satır içeren bir ilişkisel dizi.

require_once "DB.class.php"; sınıf Kullanıcı (public $ id; public $ kullanıcı adı; public $ hashedPassword; public $ email;
public $ joinDate;
//Yeni bir nesne oluşturulduğunda yapıcı çağrılır// Argüman olarak DB satırı ile ilişkisel bir dizi alır. function __construct ($ data) ($ this-> id = (isset ($ data ["id"]))? $ data ["id"]: ""; $ this-> kullanıcı adı = (isset ($ data [" kullanıcı adı "]))? $ data [" kullanıcı adı "]:" "; $ this-> hashedPassword = (isset ($ data [" password "]))? $ data [" password "]:" "; $ this- > email = (isset ($ data ["email"]))? $ data ["email"]: ""; $ this-> joinDate = (isset ($ data ["join_date"]))? $ data [" birleştirme_tarihi "]:" ";)
public function save ($ isNewUser = false) (// yeni bir veritabanı nesnesi oluşturun. $ db = new DB (); // kullanıcı zaten kayıtlıysa ve bilgilerini // güncelliyoruz. if (! $ isNewUser ) (// veri dizisini ayarlayın $ data = dizi ("username" => "" $ this-> username "", "password" => "" $ this-> hashedPassword "",
"email" => "" $ this-> email "");
// veritabanındaki satırı güncelle $ db-> update ($ data, "users", "id =". $ this-> id); ) else (// kullanıcı ilk kez kayıt oluyorsa. $ data = array ("username" => "" $ this-> username "", "password" => "" $ this-> hashedPassword "" , "email" => "" $ this-> email "", "join_date" => "" ".date (" Ymd H: i: s ", time ())." ""); $ this-> id = $ db-> insert ($ data, "users"); $ this-> joinDate = time ();) return true; ))?>

Açıklama

Kodun sınıf bölgesi dışındaki ilk kısmı, sınıfın veritabanına bağlantısını sağlar (çünkü User sınıfında bu sınıfı gerektiren bir fonksiyon vardır).

“Korumalı” (ders 1'de kullanılan) sınıf değişkenleri yerine onları “genel” olarak tanımlarız. Bu, User nesnesiyle çalışırken sınıfın dışındaki herhangi bir kodun bu değişkenlere erişimi olduğu anlamına gelir.

Yapıcı, tablodaki sütunların anahtar olduğu bir dizi alır. Sınıf değişkenini $ this-> değişkenadı kullanarak belirledik. Bu sınıfın örneğinde, önce belirli bir anahtarın değerinin olup olmadığını kontrol ediyoruz. Eğer öyleyse, o zaman sınıf değişkenini bu değere ayarladık. Aksi takdirde, boş bir dizedir. Kod, if cirosu için kısa bir gösterim biçimi kullanır:

$ değeri = (3 == 4)? "A": "B";

Bu örnekte, 3'ün dörde eşit olup olmadığını kontrol ediyoruz! Evet ise - o zaman $ değeri = “A”, hayır - $ değeri = “B”. Örneğimizde sonuç $ değeri = “B”dir.

Kullanıcılarla ilgili bilgileri veritabanına kaydederiz

Save işlevi, User nesnesindeki mevcut değerlerle veritabanı tablosunda değişiklik yapmak için kullanılır. Bu fonksiyon ilk derste oluşturduğumuz DB sınıfını kullanır. Sınıf değişkenleri kullanılarak $ veri dizisi ayarlanır. Kullanıcı verileri ilk kez kaydediliyorsa, $ isNewUser, $ true olarak geçirilir (varsayılan yanlıştır). $ isNewUser = $ true ise, DB sınıfının insert() işlevi çağrılır. Aksi takdirde update() fonksiyonu çağrılır. Her iki durumda da, kullanıcı nesnesinden gelen bilgiler veritabanına kaydedilecektir.

UserTools.class.php sınıfı

Bu sınıf, kullanıcılarla ilgili işlevleri içerecektir: login (), logout (), checkUsernameExists () ve get (). Ancak bu uygulamanın genişletilmesi ile daha fazlasını ekleyebilirsiniz.

//UserTools.class.php require_once "User.class.php"; require_once "DB.class.php";
sınıf Kullanıcı Araçları (
// Kullanıcının oturumunu açın. Önce // kullanıcı adı ve parolanın veritabanındaki bir satırla eşleşip eşleşmediğini kontrol eder. // Başarılı olursa, oturum değişkenlerini ayarlayın // ve kullanıcı nesnesini içinde saklayın.
genel işlev girişi ($ kullanıcı adı, $ şifre)
{
$ hashedPassword = md5 ($ şifre); $ sonuç = mysql_query ("SELECT * FROM users WHERE kullanıcı adı =" $ kullanıcı adı "VE parola =" $ hashedPassword ""); if (mysql_num_rows ($ sonuç) == 1) ($ _SESSION ["user"] = serileştirme (yeni Kullanıcı (mysql_fetch_assoc ($ sonuç))); $ _SESSION ["login_time"] = zaman (); $ _SESSION ["logged_in "] = 1; true döndür;) başka (yanlış döndür;))
// Kullanıcının oturumunu kapat. Oturum değişkenlerini yok edin. public function çıkış () (unset ($ _ SESSION ["user"]); unset ($ _ SESSION ["login_time"]); unset ($ _ SESSION ["logged_in"]); session_destroy ();) // Kontrol bir kullanıcı adı olup olmadığını görmek için. // Bu, tüm kullanıcı adlarının benzersiz olduğundan emin olmak için kayıt sırasında çağrılır. public function checkUsernameExists ($ kullanıcı adı) ($ sonuç = mysql_query ("kullanıcı adı =" $ kullanıcı adı "" olan kullanıcılardan kimliği seçin); if (mysql_num_rows ($ sonuç) == 0) (yanlış döndür;) başka (doğru dönüş;)
}
// bir kullanıcı al // bir Kullanıcı nesnesi döndürür. Kullanıcı kimliğini girdi olarak alır genel işlev get ($ id) ($ db = yeni DB (); $ sonuç = $ db-> seçin ("kullanıcılar", "id = $ id"); yeni Kullanıcı döndür ($ sonuç );))
?>

Giriş () işlevi

login () işlevi kendini açıklayıcıdır. Kullanıcının $ username ve $ password argümanlarını alır ve eşleşip eşleşmediğini kontrol eder. Her şey eşleşirse, tüm bilgileri içeren bir Kullanıcı nesnesi oluşturur ve bunu oturumda saklar. Lütfen yalnızca PHP'nin serialize () işlevini kullandığımızı unutmayın. Unserialize () işlevini kullanarak kolayca geri alabileceğiniz nesnenin kaydedilmiş bir sürümünü oluşturur. Ayrıca, oturum açma süresi kaydedilecektir. Bu, gelecekte kullanıcılara sitede kalış süreleri hakkında bilgi sağlamak için kullanılabilir.

Ayrıca $ _SESSION ["logged_in"]'i 1 olarak ayarladığımızı fark edebilirsiniz. Bu, kullanıcının her sayfada oturum açıp açmadığını kolayca kontrol etmemizi sağlar. Sadece bu değişkeni kontrol etmek yeterlidir.

Çıkış () işlevi

Ayrıca basit bir işlev. PHP'nin unset() işlevi bellekteki değişkenleri temizlerken session_destroy() işlevi oturumu siler.

CheckUsernameExists () İşlev

İngilizce bilen herkes işlevi kolayca anlayacaktır. Veritabanına benzer bir giriş kullanılıp kullanılmadığını sorar.

() işlevini al

Bu işlev benzersiz bir kullanıcı kimliği alır ve DB sınıfını, yani select () işlevini kullanarak veritabanına bir sorgu yapar. Bir dizi kullanıcı bilgisi içeren bir ilişkisel dizi alacak ve diziyi yapıcıya ileterek yeni bir Kullanıcı nesnesi oluşturacaktır.

Nerede kullanabilirsiniz? Örneğin, belirli kullanıcı profillerini göstermesi gereken bir sayfa oluşturursanız, bu bilgileri dinamik olarak almanız gerekir. Bunu şu şekilde yapabilirsiniz: (URL http://www.website.com/profile.php?userID=3 diyelim)

// not: önce bir veritabanı bağlantısı açmanız gerekecek. // Bunu yapmakla ilgili daha fazla bilgi için Bölüm 1'e bakın. // "Ayrıca" sınıf dosyalarını eklediğinizden emin olmalısınız.
$ araçlar = yeni Kullanıcı Araçları (); $ kullanıcı = $ araçlar-> get ($ _ REQUEST ["userID"]); echo "Kullanıcı Adı:". $ kullanıcı-> kullanıcı adı. ""; echo "Katılım Tarihi:". $ user-> joinDate. "";

Kolayca! Hakikat?

Sunucu tarafı son dokunuş: global.inc.php

global.inc.php sitedeki her sayfa için gereklidir. Niye ya? Bu şekilde ihtiyacımız olan tüm olağan işlemleri sayfaya yerleştireceğiz. Örneğin, session_start()'ı başlatacağız. DB bağlantısı da açılacaktır.

require_once "sınıflar / UserTools.class.php";
require_once "sınıflar / DB.class.php";
// veritabanına bağlanın $ db = yeni DB(); $ db-> bağlan ();
// UserTools nesnesini başlat $ userTools = new UserTools (); // oturumu başlat
oturum_başlangıç();
// oturum açıldıysa oturum değişkenlerini yenile if (isset ($ _ SESSION ["logged_in"])) ($ user = unserialize ($ _ SESSION ["user"]); $ _SESSION ["user"] = serialize ($ userTools -> al ($ user-> id));)?>

O ne yapıyor?

Burada birkaç şey oluyor. Öncelikle baza bir bağlantı açıyoruz.

Bağlandıktan sonra session_start() fonksiyonunu başlatıyoruz. İşlev, bir oturum oluşturur veya kullanıcı zaten oturum açmışsa mevcut oturumu devam ettirir. Uygulamamız kullanıcıların giriş/çıkış yapması için tasarlandığından her sayfada bu özellik gereklidir.

Ardından, kullanıcının oturum açıp açmadığını kontrol ediyoruz. Eğer öyleyse, en son kullanıcı bilgilerini görüntülemek için $ _SESSION ["user"] güncelleyeceğiz. Örneğin, bir kullanıcı e-postasını değiştirirse, eskisi oturumda saklanır. Ancak bu otomatik güncelleme ile olmayacak.

Bu, ikinci bölümü tamamlıyor! Yarın bu konuyla ilgili son bir ders bekleyin.

Herşey gönlünce olsun!

Bu dersi kayıtlı kullanıcılar için kişisel bir profil oluşturmaya ayırmak istiyorum (derse ek olarak Sitede kullanıcı kaydı oluşturma). Artık kullanıcılar avatarlarını ekleyebilir, ad ve soyadlarını değiştirebilir, ikamet yeri ve doğum günü ekleyebilir. Bunu yapmak için tablo kullanıcılar bazı alanlar ekleyelim:

Şimdi bir profil sayfası oluşturalım profile.php ve sayfaya ekleyin index.php ona bağla

Eko "
Benim profilim"; Şimdi profile.php sayfasının kendi kodu

Profil<?php echo $login; ?>

Profil



"; Eko" ". $ dizi [" name_user "]." ". $ dizisi [" soyadı "]."
"; switch ($ array [" doğum tarihi_ay "]) (// Ay numarasını vaka" 1 ": $ ay =" Ocak "; break; case" 2 ": $ ay =" Şubat "; break; vaka" 3 ": $ ay =" Mart "; ara; vaka" 4 ": $ ay =" Nisan "; ara; vaka" 5 ": $ ay =" Mayıs "; ara; vaka" 6 ": $ ay = " Haziran "; ara; vaka" 7 ": $ ay =" Temmuz "; ara; vaka" 8 ": $ ay =" Ağustos "; ara; vaka" 9 ": $ ay =" Eylül "; ara; vaka" 10 " : $ ay = "Ekim"; ara; dava "11": $ ay = "Kasım"; ara; dava "12": $ ay = "Aralık"; ara;) echo "Kayıt tarihi:". $ dizi [" kayıt_tarihi "]."
"; yankı" Cinsiyet: ". $ dizi [" cinsiyet "]."
"; echo" Doğum Günü: ". $ dizi [" doğum tarihi_günü "]." ".$ ay." ". $ dizisi [" doğum tarihi_yıl "]."
"; echo" Ülke: ". $ dizi [" ülke "]."
"; echo" Şehir: ". $ dizi [" şehir "]."
"; if ($ _ GET [" id "] == $ id_user) (// Profil yankısını yalnızca sahibi düzenleyebilir" Profili Düzenle";)) başka (yazdır<<Giriş:
Giriş yapmak: Parola:
kayıtŞifre kurtarma BURADA; )?>

Doğal olarak, bu sayfaya giderek standart bir avatar göreceğiz. noAvatar.jpg ve belki de adı ve soyadı, kullanıcı bunları kayıt sırasında belirtmişse, kalan öğeler boş olacaktır. Bu sayfanın en sonunda profil düzenleme sayfasına bir bağlantı var edit.php... Bu sayfanın kodu çok hafiftir ve veri giriş formlarından oluşur. Oldukça büyük hacim nedeniyle burada tam olarak alıntı yapmayacağım, ancak sadece bir kısmını alıntılayacağım, tamamen kaynak dosyalarda almak mümkün olacak.

Diğer tüm formlar benzerdir ve bir işleyiciye atıfta bulunur save_edit.php, bu veritabanında değişiklik yapacak. Ayrıca oldukça büyük bir kodu var ve onu burada da vermeyeceğim, sadece içinde ne olduğunu biraz anlatayım (kodun tamamını kaynak dosyalarda da bulabilirsiniz). Öncelikle bir avatar oluşturuyoruz, eğer kullanıcı yüklemişse tabii ki, yoksa standart olanı bırakıyoruz. Eğer öyleyse, o zaman her şeyden önce klasöre yüklüyoruz avatarlar(bu arada, bu klasörü oluşturun ve izin verilen uzantıları kontrol ettikten sonra 755 yazma izni verin. Ardından, seçilen moda bağlı olarak formatta yeni bir görüntü oluşturulur: $ rezim = 1 kare bir resim oluşturulur, $ rezim = 2 resim orijinal ile orantılıdır. Ayrıca oluşturulan görüntünün genişliğini de ayarlamanız gerekir. $ g ve kalite $ kalite... Oluşturulan görüntüyü işlevi kullanarak jpg formatında kaydederiz resimjpeg ve bunun için rastgele bir ad oluşturun. Şimdi eski görüntüyü silmeniz ve veritabanında yenisiyle güncellemeniz gerekiyor. Görüntülerle bu kadar.

Diğer tüm öğeler bu dosyanın kullanıcı hakkındaki kişisel verileri güncellemek ve temsil etmek için tasarlanmıştır. basit sorgular alanları güncellemek için veritabanına. Güncellemeden önce, gelen değişkenlerin varlığı ve güvenlikleri kullanılarak kontrol edilir. şeritler ve htmlözel karakterler... Güncelleme başarılı olursa, kullanıcıyı hemen profil sayfasına yönlendiririz.
Şimdi bunu, oturum açmış kullanıcının diğer tüm kayıtlı kullanıcıları görebilmesi için yapacağız. Bunu yapmak için bir sayfa oluşturun kullanıcı.php, tüm kullanıcıları bir döngüde gösterecek.