Từ khóa: PHP, MySQL, JavaScript, HTML5, All In One, dummies, 7 Books in 1

rating

PHP, MySQL, JavaScript & HTML5 All-In-One For Dummies 7 Books in 1

Cuốn sách 7 trong 1 dành cho người mới bắt đầu về Web technology, HTML, CSS, JavaScript, PhP, MySQL, Web Application, PHP and Template.

Đặt in tại HoaXanh - Thêm vào giỏ hàng...

  • 225,000đ
  • Mã sản phẩm: PHP164138
  • Tình trạng: 2

Introduction................................................................. 1

Book I: Getting Started with PHP & MySQL.................... 5

Chapter 1: Understanding the Languages of the Web....................................................7

Chapter 2: Installing a Web Server.................................................................................21

Chapter 3: Installing PHP.................................................................................................35

Chapter 4: Setting Up MySQL..........................................................................................55

Chapter 5: Setting Up Your Web Development Environment

with the XAMPP Package...............................................................................................75

Book II: HTML and CSS............................................... 87

Chapter 1: Creating a Basic Page with HTML................................................................89

Chapter 2: Adding Style with CSS.................................................................................121

Chapter 3: Creating and Styling Web Forms...............................................................169

Book III: JavaScript.................................................. 185

Chapter 1: Understanding JavaScript Basics..............................................................187

Chapter 2: Building a JavaScript Program...................................................................191

Chapter 3: Adding jQuery..............................................................................................219

Chapter 4: Reacting to Events with JavaScript and jQuery.......................................241

Chapter 5: Troubleshooting JavaScript Programs.....................................................261

Book IV: PHP........................................................... 269

Chapter 1: Understanding PHP Basics.........................................................................271

Chapter 2: Building PHP Scripts...................................................................................319

Chapter 3: PHP and Your Operating System...............................................................365

Chapter 4: Object-Oriented Programming...................................................................397

Chapter 5: Considering PHP Security...........................................................................425

Chapter 6: Tracking Visitors with Sessions.................................................................437

Book V: MySQL........................................................ 447

Chapter 1: Introducing MySQL......................................................................................449

Chapter 2: Administering MySQL.................................................................................457

Chapter 3: Designing and Building a Database...........................................................475

Chapter 4: Using the Database......................................................................................497

Chapter 5: Communicating with the Database from PHP Scripts.............................515

Introduction.................................................................. 1

About This Book...............................................................................................1

Foolish Assumptions........................................................................................1

How This Book Is Organized...........................................................................2

Book I: Getting Started with PHP and MySQL.....................................2

Book II: HTML and CSS...........................................................................2

Book III: JavaScript.................................................................................2

Book IV:PHP.............................................................................................2

Book V: MySQL........................................................................................2

Book VI: Web Applications....................................................................2

Book VII: PHP and Templates................................................................2

Companion Website...............................................................................3

Icons Used in This Book..................................................................................3

Where to Go from Here....................................................................................3

Book I: Getting Started with PHP & MySQL.................... 5

Chapter 1: Understanding the Languages of the Web 7

Understanding How the Web Works..............................................................7

The web browser....................................................................................8

The web server.......................................................................................8

Understanding Web Page Languages...........................................................10

Marking up with HTML.........................................................................10

Styling pages with CSS.........................................................................11

Changing behaviors with JavaScript..................................................11

Understanding the Language of Web Servers.............................................12

Building dynamic web applications with PHP and MySQL.............12

Sending the page to the browser with Apache.................................13

Choosing How You Want to Develop...........................................................14

Choosing a host for your website.......................................................14

Hosting for a company website..........................................................15

Choosing a web-hosting company......................................................16

Using a hosted website........................................................................18

Setting Up Your Local Computer for Development....................................19

Installing the web server......................................................................19

Installing PHP........................................................................................20

Installing MySQL...................................................................................20

Chapter 2: Installing a Web Server 21

Testing Your Web Server...............................................................................21

Obtaining Apache...........................................................................................22

Selecting a version of Apache.............................................................22

Downloading from the Apache website.............................................23

Obtaining Apache for Windows..........................................................23

Obtaining Apache for Linux.................................................................23

Obtaining Apache for Mac...................................................................24

Obtaining all-in-one installation kits...................................................24

Verifying a downloaded file.................................................................24

Installing Apache............................................................................................25

Installing Apache on Windows............................................................25

Installing Apache on a Mac..................................................................27

Installing Apache from source code on Linux and Mac...................27

Starting and Stopping Apache......................................................................28

Starting and stopping Apache on Windows......................................28

Starting Apache on Linux, Unix, and Mac..........................................29

Restarting Apache on Linux, Unix, and Mac......................................30

Stopping Apache on Linux, Unix, and Mac........................................30

Getting Information from Apache.................................................................31

Getting Apache information on Windows..........................................31

Getting Apache information on Linux, Unix, and Mac.....................31

Configuring Apache........................................................................................32

Changing settings..................................................................................32

Changing the location of your Document Root.................................33

Changing the port number..................................................................33

Chapter 3: Installing PHP . 35

Checking the PHP Installation.......................................................................36

Obtaining PHP.................................................................................................36

Downloading from the PHP website...................................................37

Obtaining PHP for Windows................................................................37

Obtaining PHP for Linux......................................................................37

Obtaining PHP for the Mac OS............................................................38

Obtaining all-in-one installation kits...................................................38

Verifying a downloaded file.................................................................39

Installing PHP..................................................................................................40

Installing on Unix and Linux................................................................40

Installing on Mac OS X..........................................................................42

Installation options for Unix, Linux, and Mac...................................44

Installing on Windows..........................................................................46

Configuring Your Web Server for PHP.........................................................47

Configuring your web server on Windows........................................47

Configuring Apache on Linux and Mac..............................................49

Configuring PHP..............................................................................................50

Testing PHP.....................................................................................................51

Troubleshooting.............................................................................................53

Unable to change PHP settings...........................................................53

Displays error message: Undefined function....................................53

Displays a blank page or HTML output only.....................................53

Chapter 4: Setting Up MySQL 55

Checking the MySQL Installation..................................................................55

Finding out if MySQL is running or installed.....................................56

Starting MySQL......................................................................................56

Obtaining MySQL............................................................................................57

Downloading from the MySQL website..............................................58

Obtaining MySQL for Windows...........................................................58

Obtaining MySQL for Linux and Unix.................................................58

Obtaining MySQL for Mac....................................................................59

Obtaining all-in-one installation kits...................................................59

Verifying a downloaded file.................................................................59

Installing MySQL.............................................................................................59

Running the MySQL Setup Wizard on Windows...............................60

Installing MySQL on Linux from an RPM file.....................................61

Installing MySQL on Mac from a DMG file.........................................62

Installing MySQL from source files.....................................................63

Configuring MySQL.........................................................................................65

Starting and Stopping the MySQL Server....................................................66

Controlling the server on Windows....................................................66

Controlling the MySQL server on Linux and Mac.............................67

Testing MySQL................................................................................................68

Troubleshooting MySQL................................................................................69

Displays error message: Access denied.............................................69

Displays error message: Client does not support

authentication protocol...................................................................69

Displays error message: Can’t connect to . . ....................................70

MySQL error log....................................................................................70

The MySQL Administration Program...........................................................70

Activating MySQL Support............................................................................71

Activating MySQL support on Windows............................................71

Activating MySQL support on Linux and the Mac OS......................71

Checking MySQL support....................................................................72

Troubleshooting PHP and MySQL................................................................73

Displays error message: Undefined function....................................73

MySQL functions not activated (Windows).......................................74

Chapter 5: Setting Up Your Web Development Environment

with the XAMPP Package . 75

Obtaining XAMPP...........................................................................................75

Installing XAMPP............................................................................................76

Using the XAMPP Control Panel...................................................................78

Testing Your Development Environment....................................................79

Opening the XAMPP web page............................................................80

Testing phpMyAdmin...........................................................................81

Testing PHP...........................................................................................81

Configuring Your Development Environment.............................................82

Configuring PHP....................................................................................83

Configuring Apache..............................................................................83

Configuring MySQL...............................................................................84

Uninstalling and Reinstalling XAMPP...........................................................84

Troubleshooting.............................................................................................85

Book II: HTML and CSS................................................ 87

Chapter 1: Creating a Basic Page with HTML 89

Understanding the HTML Building Blocks..................................................89

Document types....................................................................................90

Sections of an HTML Document...................................................................91

The root element..................................................................................92

The head section and title element....................................................92

The body section..................................................................................94

Creating Good HTML......................................................................................94

Using the appropriate elements.........................................................94

Putting text on a page..........................................................................95

Creating your first page.......................................................................97

Choosing block-level or inline elements............................................98

Inserting line breaks and spaces........................................................99

Making your document easier to maintain......................................101

Adding lists and tables.......................................................................102

Practicing Creating a Table.........................................................................105

Including Links and Images on Your Web Page........................................108

Adding links.........................................................................................108

Adding images.....................................................................................113

Writing Valid HTML......................................................................................116

Validating Your HTML.................................................................................117

Chapter 2: Adding Style with CSS 121

Discovering What CSS Can and Can’t Do for Your Web Page.................121

What is CSS?........................................................................................121

Why use CSS?......................................................................................122

Limitations of CSS...............................................................................122

Connecting CSS to a Page............................................................................123

Adding styling to an HTML element.................................................123

Using an internal style sheet.............................................................126

Using an external style sheet............................................................128

Targeting Styles............................................................................................129

Selecting HTML elements..................................................................130

Selecting individual elements............................................................130

Selecting a group of elements...........................................................131

Changing Fonts.............................................................................................134

Setting the font family........................................................................134

Setting font size...................................................................................136

Setting the font color..........................................................................138

Adding Borders.............................................................................................140

Changing List Styles.....................................................................................144

Changing bullet styles........................................................................145

Removing bullets................................................................................146

Adding a Background...................................................................................147

Changing the background color........................................................147

Adding a background image..............................................................150

Creating Page Layouts.................................................................................155

Creating a single-column layout........................................................155

Creating a two-column layout...........................................................159

Adding Headers and Footers to a Page......................................................163

Creating a header, header menu, and footer..................................163

Examining the HTML and CSS files...................................................166

Chapter 3: Creating and Styling Web Forms . 169

Using Web Forms to Get Information.........................................................169

Understanding web forms.................................................................170

Looking at form elements..................................................................170

Creating a Form............................................................................................172

All about the form element................................................................172

Adding a text input.............................................................................173

Adding a drop-down box...................................................................174

Creating check boxes.........................................................................176

Using radio buttons............................................................................178

Submitting and clearing the form.....................................................179

Using CSS to Align Form Fields...................................................................180

Book III: JavaScript................................................... 185

Chapter 1: Understanding JavaScript Basics 187

Viewing the World of JavaScript.................................................................187

JavaScript isn’t Java...........................................................................187

Knowing what JavaScript can do......................................................188

Examining the Ways to Add JavaScript to a Page....................................188

Adding the JavaScript tag..................................................................189

Adding JavaScript to a page’s HTML................................................189

Using external JavaScript..................................................................190

Chapter 2: Building a JavaScript Program . 191

Getting Started with JavaScript Programming..........................................191

Sending an alert to the screen..........................................................191

Adding comments...............................................................................193

Holding data for later in variables....................................................193

Holding multiple values in an array.................................................195

Creating strings to keep track of words...........................................195

Working with numbers.......................................................................196

Testing Things with Conditionals...............................................................197

Performing Actions Multiple Times with Loops.......................................200

For what it’s worth.............................................................................200

While you’re here................................................................................203

Using Functions to Avoid Repeating Yourself..........................................203

Creating functions..............................................................................204

Adding function arguments...............................................................204

Calling a function................................................................................204

Improving the addNumbers function...............................................205

Returning results from functions......................................................207

Objects in Brief.............................................................................................208

Creating objects..................................................................................208

Adding properties to objects............................................................209

Working with HTML Documents.................................................................210

Accessing HTML with JavaScript......................................................211

Using GetElementById to access a specific element......................211

Working with Web Browsers.......................................................................214

Detecting the browser........................................................................214

Redirecting to another page..............................................................216

Chapter 3: Adding jQuery . 219

jQuery Introduced........................................................................................219

Installing jQuery............................................................................................220

Installing jQuery locally.....................................................................220

Using CDN-hosted jQuery..................................................................221

Adding jQuery to a Page..............................................................................221

Adding local jQuery to a page...........................................................221

Adding CDN jQuery to a page............................................................222

Incorporating the jQuery ready() Function..............................................223

Selecting Elements with jQuery..................................................................225

jQuery selectors up close..................................................................226

Filtering................................................................................................227

Working with HTML Using jQuery..............................................................227

Adding HTML to a page......................................................................227

Changing elements.............................................................................230

Changing Attributes and Styles..................................................................232

Reading attributes..............................................................................233

Writing attributes...............................................................................234

Changing CSS.......................................................................................237

Chapter 4: Reacting to Events with JavaScript and jQuery . 241

Understanding Events..................................................................................241

Working with Forms.....................................................................................242

Adding a Submit Handler...................................................................242

Checking for blank fields....................................................................246

Monitoring Mouse Events............................................................................247

Capturing mouse clicks......................................................................247

Watching mouse movements............................................................251

Reacting to Keyboard Events......................................................................254

Counting characters...........................................................................254

Preventing character input................................................................257

Chapter 5: Troubleshooting JavaScript Programs 261

Employing Basic JavaScript Troubleshooting Techniques.....................261

Adding alerts.......................................................................................262

Using comments in JavaScript..........................................................262

Identifying JavaScript Problems with Firebug..........................................264

Installing Firebug................................................................................264

Using Firebug.......................................................................................266

Book IV: PHP............................................................ 269

Chapter 1: Understanding PHP Basics 271

How PHP Works............................................................................................271

Examining the Structure of a PHP Script...................................................273

Looking at PHP Syntax.................................................................................275

Using simple statements....................................................................276

Using complex statements.................................................................276

Writing PHP Code.........................................................................................277

Displaying Content in a Web Page..............................................................278

Using PHP Variables.....................................................................................281

Naming a variable...............................................................................282

Creating and assigning values to variables.....................................282

Using variable variables.....................................................................283

Displaying variable values.................................................................284

Using PHP Constants....................................................................................287

Understanding Data Types..........................................................................288

Working with integers and floating-point numbers........................289

Working with character strings........................................................292

Working with the Boolean data type................................................295

Working with the NULL data type....................................................296

Using Arrays..................................................................................................296

Creating arrays....................................................................................296

Viewing arrays.....................................................................................298

Removing values from arrays............................................................299

Sorting arrays......................................................................................299

Getting values from arrays................................................................301

Walking through an array..................................................................302

Storing values with multidimensional arrays..................................305

Using Dates and Times.................................................................................307

Setting local time................................................................................307

Formatting a date................................................................................308

Storing a timestamp in a variable.....................................................309

Understanding PHP Error Messages..........................................................310

Types of PHP error messages...........................................................310

Displaying error messages................................................................313

Logging error messages.....................................................................315

Adding Comments to Your PHP Script......................................................316

Chapter 2: Building PHP Scripts . 319

Setting Up Conditions..................................................................................320

Comparing values...............................................................................320

Checking variable content.................................................................322

Pattern matching with regular expressions....................................323

Joining multiple comparisons...........................................................327

Using Conditional Statements.....................................................................329

Using if statements.............................................................................330

Using switch statements....................................................................333

Repeating Actions with Loops....................................................................335

Using for loops....................................................................................335

Using while loops................................................................................339

Using do..while loops.........................................................................341

Avoiding infinite loops.......................................................................343

Breaking out of a loop........................................................................344

Using Functions............................................................................................346

Creating a function.............................................................................347

Using variables in functions..............................................................347

Passing values to a function..............................................................349

Returning a value from a function....................................................354

Using built-in functions......................................................................356

Organizing Scripts........................................................................................357

Separating display code from logic code.........................................357

Reusing code.......................................................................................358

Organizing with functions..................................................................358

Organizing with include files.............................................................359

Chapter 3: PHP and Your Operating System . 365

Managing Files...............................................................................................366

Getting information about files.........................................................366

Copying, renaming, and deleting files..............................................368

Organizing files....................................................................................369

Using Operating System Commands..........................................................372

Using backticks...................................................................................373

Using the system function.................................................................374

Using the exec function......................................................................375

Using the passthru function..............................................................376

Accessing error messages from system commands......................376

Understanding security issues..........................................................377

Using FTP.......................................................................................................378

Logging in to the FTP server.............................................................379

Getting a directory listing..................................................................380

Downloading and uploading files with FTP.....................................380

Looking at other FTP functions.........................................................382

Reading and Writing Files............................................................................383

Accessing files.....................................................................................384

Writing to a file....................................................................................386

Reading from a file..............................................................................387

Exchanging Data with Other Programs......................................................390

Exchanging data in flat files...............................................................390

Exchanging data in comma-delimited format.................................390

Using other delimiters........................................................................391

Using SQLite..................................................................................................394

Chapter 4: Object-Oriented Programming 397

Introducing Object-Oriented Programming..............................................397

Objects and classes............................................................................398

Properties............................................................................................399

Methods...............................................................................................399

Inheritance...........................................................................................400

Developing an Object-Oriented Script.......................................................400

Choosing objects................................................................................401

Selecting properties and methods for each object........................401

Creating and using an object.............................................................402

Defining a Class.............................................................................................402

Writing a class statement..................................................................403

Setting properties...............................................................................403

Accessing properties using $this......................................................404

Adding methods..................................................................................405

Understanding public and private properties and methods........407

Writing the constructor.....................................................................409

Putting it all together.........................................................................410

Using a Class in a Script...............................................................................413

Using Abstract Methods in Abstract Classes and Interfaces..................415

Using an abstract class......................................................................415

Using interfaces...................................................................................417

Preventing Changes to a Class or Method................................................418

Handling Errors with Exceptions................................................................419

Copying Objects............................................................................................420

Comparing Objects.......................................................................................421

Getting Information about Objects and Classes.......................................422

Destroying Objects.......................................................................................423

Chapter 5: Considering PHP Security 425

Securing the Server......................................................................................425

Hardening the server..........................................................................425

Using a firewall....................................................................................426

Securing Apache...........................................................................................426

Securing PHP applications with SuExec..........................................426

mod_security.......................................................................................427

Setting Security Options in php.ini............................................................428

Handling Errors Safely.................................................................................429

Understanding the dangers...............................................................429

Testing for unexpected input............................................................430

Handling the unexpected...................................................................431

Checking all form data.......................................................................431

Sanitizing Variables......................................................................................432

Converting HTML special characters...............................................432

Uploading Files without Compromising the Filesystem................433

Avoiding DoS attacks on the filesystem...........................................433

Validating files.....................................................................................433

Using FTP functions to ensure safe file uploads.............................434

Chapter 6: Tracking Visitors with Sessions . 437

Understanding Sessions and Cookies........................................................437

Looking at sessions............................................................................437

Working with cookies.........................................................................438

Checking if cookies are enabled.......................................................438

Using Sessions to Pass Data........................................................................440

Starting a session................................................................................440

Closing a session.................................................................................445

Using session_write_close()..............................................................445

Understanding Other Session Options......................................................446

Book V: MySQL......................................................... 447

Chapter 1: Introducing MySQL 449

Examining How MySQL Works....................................................................449

Understanding Database Structure............................................................450

Communicating with MySQL.......................................................................450

Building SQL queries..........................................................................451

Sending SQL queries...........................................................................452

Using the mysql client........................................................................453

Protecting Your MySQL Databases............................................................454

Chapter 2: Administering MySQL . 457

Understanding the Administrator Responsibilities.................................457

Default Access to Your Data.......................................................................458

Controlling Access to Your Data................................................................459

Account names and hostnames........................................................460

Passwords............................................................................................461

Account privileges..............................................................................461

Setting Up MySQL Accounts........................................................................462

Identifying what accounts currently exist.......................................464

Adding accounts.................................................................................465

Adding and changing passwords......................................................465

Changing privileges............................................................................466

Removing accounts............................................................................467

Backing Up Your Database..........................................................................468

Backing up on Windows.....................................................................469

Backing up on Linux, Unix, and Mac................................................469

Restoring Your Data.....................................................................................471

Upgrading MySQL.........................................................................................473

Chapter 3: Designing and Building a Database . 475

Designing a Database...................................................................................475

Choosing the data...............................................................................475

Organizing the data............................................................................477

Creating relationships between tables............................................480

Storing different types of data..........................................................481

Designing a Sample Database.....................................................................484

Writing Down Your Design..........................................................................487

Building a Database......................................................................................489

Creating a new database....................................................................489

Creating and deleting a database.....................................................490

Adding tables and specifying a primary key...................................491

Removing a table................................................................................493

Changing the Database Structure...............................................................494

Chapter 4: Using the Database 497

Adding Information to a Database..............................................................498

Adding one row at a time...................................................................498

Adding a bunch of data......................................................................500

Looking at the Data in a Database..............................................................502

Retrieving Information from a Database...................................................502

Retrieving specific information.........................................................503

Retrieving data in a specific order....................................................505

Retrieving data from specific rows...................................................505

Combining information from more than one table.........................508

Updating Information in a Database..........................................................513

Removing Information from a Database....................................................513

Chapter 5: Communicating with the Database from PHP Scripts . 515

Knowing How MySQL and PHP Work Together........................................515

PHP Functions That Communicate with MySQL......................................516

Communicating with MySQL.......................................................................516

Connecting to the MySQL server......................................................517

Sending an SQL statement.................................................................519

Sending multiple queries...................................................................520

Selecting a Database....................................................................................521

Handling MySQL Errors...............................................................................522

Using Other Helpful mysqli Functions.......................................................523

Counting the number of rows returned by a query.......................523

Determining the last auto entry........................................................524

Counting affected rows......................................................................525

Escaping characters...........................................................................525

Converting mysqli Functions to mysql Functions....................................526

Book VI: Web Applications......................................... 529

Chapter 1: Improving Your PHP Programs 531

Automatically Including Helper Functions................................................531

Using auto_prepend_file....................................................................531

Starting sessions with a prepended file...........................................532

Using classes for efficiency................................................................534

Reusing Code.................................................................................................535

Using functions...................................................................................536

Using object-oriented programming................................................539

Chapter 2: Creating and Using a Web Service . 541

Understanding Web Services......................................................................541

Returning Data from a Web Service...........................................................542

Returning the date..............................................................................542

Returning web service data from a database..................................545

Accepting Input to a Web Service..............................................................548

Querying with input data...................................................................548

Returning XML results.......................................................................550

Returning JSON and XML...................................................................551

Chapter 3: Validating Web Forms with JavaScript and PHP 555

Understanding How to Validate Web Forms.............................................555

Always assume bad data....................................................................556

Never assume JavaScript...................................................................556

Sometimes mirror client- and server-side validation.....................556

Performing Basic JavaScript Validation....................................................557

Looking at the form HTML and CSS..................................................561

Adding JavaScript validation.............................................................563

Performing PHP Validation..........................................................................574

Validating required fields..................................................................576

Validating text.....................................................................................579

Validating drop-downs, radio buttons, and check boxes..............579

Validating numbers............................................................................580

Validating URLs and e-mail addresses.............................................581

Making sure the passwords match...................................................582

Creating a validation function...........................................................585

Chapter 4: Building a Members-Only Website 587

Understanding a Members-Only Site.........................................................588

Creating the User Database.........................................................................589

Designing the Customer database....................................................589

Building the Customer database.......................................................590

Accessing the Customer database...................................................591

Creating Base Functions..............................................................................591

Creating Web Forms.....................................................................................593

Creating the registration pages.........................................................593

Building a success page.....................................................................603

Creating the login page......................................................................604

Creating a User Object.................................................................................607

Building the User class.......................................................................607

Building the login-process PHP file..................................................610

Adding Authenticated Pages.......................................................................612

Building a protected page..................................................................612

Building a log out page.......................................................................614

Adding E-mail Functionality........................................................................618

Building the password reset database.............................................619

Building the password recovery page.............................................619

Building the process files...................................................................625

Building the class methods...............................................................628

Book VII: PHP and Templates..................................... 633

Chapter 1: Configuring PHP . 635

Understanding the php.ini...........................................................................635

Working with the php.ini...................................................................635

Making changes outside of the php.ini............................................636

Understanding Common Configuration Changes.....................................636

Changing session timeout..................................................................636

Changing other session parameters.................................................637

Disabling functions and classes........................................................637

Changing error display.......................................................................639

Changing resource limits...................................................................639

Chapter 2: Building a Templating System . 641

Understanding Template Systems..............................................................641

Building a PHP Template.............................................................................642

Creating a template class...................................................................642

Creating the top of the page..............................................................643

Creating the bottom of the page.......................................................646

Connecting the top, bottom, and middle.........................................646

Extending the Template...............................................................................650

Building an About page......................................................................650

Building a Contact page.....................................................................651

Index........................................................................ 655

Màu Sắc
Sách Trắng Đen
Ngôn Ngữ
Tiếng Anh
Nhà Bán Hàng
Hoa Xanh

Không có đánh giá nào cho sản phẩm này.

Viết đánh giá

Vui lòng đăng nhập hoặc đăng ký trước khi đánh giá