Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
9 views12 pages

PHP Learn

The document discusses best practices for building a chat system using PHP, MySQL, and JavaScript, focusing on security measures like prepared statements to prevent SQL injection and the importance of transactions for data integrity. It also covers principles for input validation, error handling, and efficient data retrieval methods. Additionally, it addresses the design of SQL queries and the use of AJAX for dynamic content updates in the chat interface.

Uploaded by

kwekugt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
9 views12 pages

PHP Learn

The document discusses best practices for building a chat system using PHP, MySQL, and JavaScript, focusing on security measures like prepared statements to prevent SQL injection and the importance of transactions for data integrity. It also covers principles for input validation, error handling, and efficient data retrieval methods. Additionally, it addresses the design of SQL queries and the use of AJAX for dynamic content updates in the chat interface.

Uploaded by

kwekugt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 12
STEEL Cred Ce cca cuy TOM en ec Sete rare a) Teac) eee rd Regn rE cero Deen a) PN eel Dea Mey Coe eased Some aE) Se ent Panter eae Met ce) security, data integrity Data integrity for multi-step DB ops Dea aed Cee Veeco eu oal Wee er Oey Sea wee ag CS eLe) Ome ee sed Comune PCE Premera Explain the purpose of using prepared statements in PHP with MySQL. What security risks do they mitigate? Describe how transactions are used in your chat system. Why are they important when creating a pene rent een td How doas your system ensure that duplicate conversations are not created between the same users for enn ‘What is the difference between INNER JOIN and LEFT JOIN in your SQL queries? Give an example from Pee Da Ou eee ea How doas your chat system handle the case where a conversation doos not exist when a user tries to send| Peer Pa ne rn eee ae eG ot ed How doas your system fetch the latest message for each conversation efficiently? ‘What are the pros and cons of storing chat state in PHP sessions versus passing data via URL Pea’ How would you modify your schema and code to support group chats (more than two participants)? eR Write a PHP prepared statement to select all messages for a given conversation, ordered by time. How do you retrieve the listing_onner_id for a given listing id in PHP? Cee eee ce eC ome How do you check if a conversation exists between two users for a listing in SQL? OT ee ee um Cone cee tOrd How do you handle errors when inserting a new conversation or message in PHP? What is the difference between $stmt->get_result() and $stnt->bind result in MySQLi? See ee ee ere How do you fetch the last message for each conversation in a single SQL query? How do you use jsonencode© in PHP to return data to JavaScript? RE ey ge enn ee kar eae 2. How does your chat interface update the message list without reloading the page? 3. What is the purpose of SetTimeout(smartPoll, 2000); in your polling logic? 4, How do you handle and display errors from the server in your JS code? 5. How would you modify your JS to shaw a loading spinner while fetching messages? Cee Met 1. Why is ita good idea to have a unique constraint on Cconversation id, User id) in the participants ory 2. What indexes would you add to your tables to improve chat performance? 3 How would you design a query to show all users who have chatted with a given user? Feel free to try answering these, or ask for explanations or code samples for any of them! CS cue ued 1. Why use prepared statements in PHP? pon Prepared statements separate SQL logic from user input, preventing SQL. injection attacks. They also improve Se ee ee eee eer cs ee ee eee eee poner By joining the chat conversations_2 table with conversation participants.2 twice (once for each user) and eect Peer vs Fee oe ee eee ete ety Peace th poenreearerer eer erty 3, How do you create a new conversation and add participants atomically? finer oc Pree OR CSoio { Pee ce ees SS eos ecm ese et pt mesrerossy Peete eee Cee eee n eee ee ers SS meer nC ee et Pel mosrerosgy ee USCC come emer oan eects rece a en ee reee nT eg TTS por fd eerste reese feet arr Pienaar cays Se en eee eee force Oe eee Recetas i ene SELECT Parner ery ere eet ee peers Pane care eerarener ety Oar es Pree conversation participants 2 cp_self ON cp_self-conversation id = c-conversation_id riversation_participants_2 cp_other ON c,conversation_id = cp_other.conversation_id AND cp ates w eri air st eatrrrost! fae es neo oer Seager ene ears Ce ea fetes WHERE cp_seUf.user_ fear esr rere een ad poe Eicon eee is Peer ane en eer Cr aeeeneee tees ia eer erat eee Seater ten nen 7. How do you validate and sanitize input in PHP? pe ce Penner eet Per er ores tceeC aT Ty Pe Cees men aT ruts cr ae POM ees ec nT ie(json_encode( ‘error’ => ‘Missing required fields'])) Aree orc ae ed co reer ee ae eee] 9. How do you handle errors and return them as JSON? roe eee Seer ae et meer ane Per eeate aan pier eee reer Seer 10, What is the purpose of transactions in your chat system? Answer: Transactions ensure that creating a conversation and adding both participants either both succeed or both fail Dea aac Ra PU 1. How does your sendMessage() function send data to the server? on re eR eae ter ee ce See rl iereen oreo acetate Pericles Peet cet eas veer etree caren eee Pee) Ooty + Always use prepared statements for any SQL query that includes user input. Pee eo ee ee Su CR oe en OMe cece cero Ona ‘operations (ike creating a conversation and adding participants) + Ensures data integrity: either all steps succeed, or none do. cn) One Rusa See ty eee eee) Error Handling Des os eg en + Log errors with errerlog0) for debugging. + Return clear JSON error messages for API endpoints. eee) + Use clear, consistent table and column names (e.g., chat conversations 2, conversation participants.2 Eeeeereey) ead + Use Session start) at the top of scripts that rely on session data Cremer) ‘+ When outputting user data to HTML, always sanitize to prevent XSS (not shown in backend, but important fo oe General Principles for PHP/MySQL Chat Apps Bee eens ee eed eye nt een teas Pee eee ts Handle and log errors, but don't expose sensitive info to users. Peee eee ee ACh teehee mentees eet ed es eee eee er Certainly! Here are general PHP, SQL, and JavaScript principles illustrated by the functions and patterns you've used in your chat system. These are best practices and foundational concepts ee cet Te eee a Oe eu Ben eee eee ete ere eer ae eee Oe Aeneas meee a ee eet Bacio See ee ite user_id = 7"); es surmrte ecto 2. Input Validation & Sanitization Sea Cane eee + Why: Prevents malicious data, SQL injection, and application errors. Ceci id = filter_var($ GET|'user_id'] 7? 0, FILTER VALIDATE_INT, ['min_range’ = emer eens ied Pee ec Le eet ary Dee Ree We eo RM CIC cece ce eee en ae eS Une a Oe esate ener eat Pci Poeiee eee eee amet tO oa cane Pera eae Pa} Seen eae Crete ce eA Run ese} Oe ees eee eee ne een es se Sec (oconois Peer tectacts Senior SCS eu a rent Bor) + Principle: Use clear, consistent, and descriptive names for tables and fields. «= Why: Improves code readability and maintainability Pac eee Oe Rea ea Cees eed ers CUn Le rciy Oe CM aoa CE eee OT De Mae nu eC ore eect Pesca) Paes Moo Reon Rea ary + Principle: Use jsonLencode() to return structured data to JavaScript clients. Os eee Ly Oe coreg Perinat | Peres CDT OD ri + Principle: Check for existing records before inserting new ones (e.g., conversations) ‘+ Why: Provents data redundancy and logic errors. Becca Ee Peo) Se ie ae ie CLL Ce mee} ‘= Why: Prevents data redundancy and logic errors. Pe Pr Ere a ney Oe es eee enn eee Ie Rea atc ee eer) Oe Aes enc rae eeee N Ae ae eeu ea ue oT OS en een ne een seeks Re ate ty Oe ye Ont) Principle: Use AJAX (e.g., Fetch API) to sendjreceive data without reloading the page. PEER Ue Cee Ee cmt a es fn cs CoCo Ustad -then( response => response.json() -then(data => { ... } 2. DOM Manipulation Ore Cee eee een enue acy Be oe ace Ceci Crone react eae et a

You might also like