Home Backend Development PHP Tutorial 今天面试php遇到几个小问题不会,请大家帮小弟我看看

今天面试php遇到几个小问题不会,请大家帮小弟我看看

Jun 13, 2016 am 10:04 AM
cookie login mysql php session

今天面试php遇到几个问题不会,请大家帮我看看
1.网站服务器想判断某个用户在网上的行为记录以及下次该用户再次登陆的时候就能判断出是上次登陆的用户,这个是用cookie来判断好,还是用session好? 为什么? 还有一个问题,服务器如何判断某个行为是A用户的还是B用户的行为。(对cookie和session网上虽然有很多解释,但我一直没有100%搞明白这个问题,估计下次面试也会遇到,该怎么理解呢?)

2.某个账号登陆之后如何防止这个账号在其他地方再次登陆,就比如QQ的某个账号登陆了,但在其他地方想再用这个账号登陆,php是如何判断并且阻止的?

3.某个表里的数据起初很少,但是因为业务的关系,数据量猛增(几千万条或者更多),这时该怎么设计这个表,该如何优化?



------解决方案--------------------
1.cookie好。用Session挂在服务器上匹配数据。相当于查数据库了
2。可以在数据库里设置字段 is_login 登陆判断为1 未登陆为0 如果已经为1 再次登陆就判断已经登陆
3.只想到索引。这个是必须的

新手言论。勿喷
------解决方案--------------------
楼主问题目前没有统一答案。
1。大网站用cookie,安全性用session. 虽然session也可以设有效期,但对于有效期的问题,一般更喜欢用cookie.
服务器如何判断某个行为是A用户的还是B用户. 这个是身份识别。可以从cookie或session中取,或生成user对象。

2.这个无法解决。只能是设数据库标识。is_login 登陆判断为1 。 但问题在于,何时清除这个标识。---》高手解答。

3. 简单地就是索引,但索引也没有效率时。可以分表和分区。 具体的只有看你查询需求,测试后才知道。




------解决方案--------------------
1.cookie 最好的方式还是 cookie+session 至于区别之类的 你还是得仔细的看看一些教程,很多就不重复在这粘贴了。

2.使用memchace+mysql来解决,轻松easy...

3.很笼统....这个有很多情况发生 所以 我觉得还是要根据实际的情况来处理.

例如我们可以先观察 mysql-slow.log ...

数据量很多的时候第一个考虑的可能就是分表了...

------解决方案--------------------
面试啊....这么回答:

才几千万啊,我上个公司那里几亿都没当回事.....你们公司的DBA不行......
------解决方案--------------------

探讨

面试啊....这么回答:

才几千万啊,我上个公司那里几亿都没当回事.....你们公司的DBA不行......

------解决方案--------------------
探讨

1.cookie 最好的方式还是 cookie+session 至于区别之类的 你还是得仔细的看看一些教程,很多就不重复在这粘贴了。

2.使用memchace+mysql来解决,轻松easy...

3.很笼统....这个有很多情况发生 所以 我觉得还是要根据实际的情况来处理.

例如我们可以先观察 mysql-slow.log ...

数据量很多的时候第一个考虑的可能就是分……

------解决方案--------------------
应该是memcache过期时间设置来清除mysql中的is_login信息,再通过一些onbeforeunload之类的辅助吧。
------解决方案--------------------
探讨

应该是memcache过期时间设置来清除mysql中的is_login信息,再通过一些onbeforeunload之类的辅助吧。

------解决方案--------------------
【3.某个表里的数据起初很少,但是因为业务的关系,数据量猛增(几千万条或者更多),这时该怎么设计这个表,该如何优化?】

你就说有什么关系啊,就一张表,csdn 600万的纪录都在一张表里,被导出了
------解决方案--------------------
我也想知道第二个问题的答案,因为非人为正常点击退出(比如关闭浏览器、非正常关机)这种情况发生的时候,如果用is_login这种方式来判断的话,就会失效。如果是定期清除的话,也会有问题,就是出现非正常退出的时候由于没有及时处理is_login导致登陆不上
------解决方案--------------------
第二个问题和统计在线人数是同一个道理


------解决方案--------------------
第二個问题 可能更多的是用到 socket.io
做可能会更好一点.及时判断.
因为php不能很精确的确定是否在线.

还有一种方案就是php方案
设置这个在线用户多少分钟内没有做操作,我就判定他已经退出.(每次点击一个事件就是一次更新 online_time)
而且如果有后来者登录的话,你不是去阻止,而是让他登录上去,然后提示之前登录的账户 你的账户在其他地方登录了.

第一个问题呢:个人建议还是偏向session 比较安全.

第三个问题就是:如果应许的话重新设计表...或许这是更好的方法.
如果不行的话.最好是看具体情况...不过考你应该是优化和分表.


------解决方案--------------------
关于第二个问题,是不是可以理解为单点登录呢?
------解决方案--------------------
探讨

第二個问题 可能更多的是用到 socket.io
做可能会更好一点.及时判断.
因为php不能很精确的确定是否在线.

还有一种方案就是php方案
设置这个在线用户多少分钟内没有做操作,我就判定他已经退出.(每次点击一个事件就是一次更新 online_time)
而且如果有后来者登录的话,你不是去阻止,而是让他登录上去,然后提示之前登录的账户 你的账户在其他地方登录了.
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MySQL: An Introduction to the World's Most Popular Database MySQL: An Introduction to the World's Most Popular Database Apr 12, 2025 am 12:18 AM

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

PHP's Current Status: A Look at Web Development Trends PHP's Current Status: A Look at Web Development Trends Apr 13, 2025 am 12:20 AM

PHP remains important in modern web development, especially in content management and e-commerce platforms. 1) PHP has a rich ecosystem and strong framework support, such as Laravel and Symfony. 2) Performance optimization can be achieved through OPcache and Nginx. 3) PHP8.0 introduces JIT compiler to improve performance. 4) Cloud-native applications are deployed through Docker and Kubernetes to improve flexibility and scalability.

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

Why Use MySQL? Benefits and Advantages Why Use MySQL? Benefits and Advantages Apr 12, 2025 am 12:17 AM

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

PHP: The Foundation of Many Websites PHP: The Foundation of Many Websites Apr 13, 2025 am 12:07 AM

The reasons why PHP is the preferred technology stack for many websites include its ease of use, strong community support, and widespread use. 1) Easy to learn and use, suitable for beginners. 2) Have a huge developer community and rich resources. 3) Widely used in WordPress, Drupal and other platforms. 4) Integrate tightly with web servers to simplify development deployment.

MySQL's Place: Databases and Programming MySQL's Place: Databases and Programming Apr 13, 2025 am 12:18 AM

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP vs. Python: Core Features and Functionality PHP vs. Python: Core Features and Functionality Apr 13, 2025 am 12:16 AM

PHP and Python each have their own advantages and are suitable for different scenarios. 1.PHP is suitable for web development and provides built-in web servers and rich function libraries. 2. Python is suitable for data science and machine learning, with concise syntax and a powerful standard library. When choosing, it should be decided based on project requirements.

See all articles