Gastenboek in PHP. Voeg hier uw recensie toe

Vandaag zal ik misschien wel de beste taak voor beginners van de PHP-programmeertaal beschrijven: Gastenboek. Naar mijn mening is deze taak de eenvoudigste, maar je kunt er tegelijkertijd alle belangrijke kenmerken van het werken met PHP en de MySQL-database mee leren. Bovendien is deze taak oneindig uitbreidbaar, waardoor u nieuwe technologieën kunt aanscherpen.

De beschrijving en oplossing voor dit probleem zullen hier worden geschreven, zonder te testen op functionaliteit, dus misschien zit er ergens een typefout. Dit gebeurde niet vanwege mijn luiheid, maar opnieuw vanwege extra training bij het maken van een gastenboek door jou. Ook zal de gepresenteerde oplossing een beetje “scheef” zijn, maar daarover meer aan het einde van dit artikel in de sectie “Onafhankelijk werken”.

Als je helemaal niet weet hoe je met PHP moet werken, dan raad ik je aan eerst het artikel PHP – waar te beginnen te lezen.

We analyseren de creatie van het meest primitieve gastenboek, zonder ontwerp en administratie. Met andere woorden, we zullen ons beperken tot het inloggen op het boek, het registreren en het achterlaten van berichten.
Uit de taak zelf wordt duidelijk dat we ons volledig kunnen beperken tot drie PHP-bestanden om deze taak uit te voeren. Uiteraard kan de registratietaak in tweeën worden verdeeld: het registratieformulier en het toevoegen van gegevens aan de database, maar dat gaan we niet doen. Een soortgelijke redenering geldt voor de procedure voor het achterlaten van opmerkingen. We maken dus drie bestanden: index.php, registratie.php, boek.php.

Aan de namen van de bestanden kunt u meteen begrijpen waarvoor ze verantwoordelijk zijn: index.php - inlogpagina, registratie.php - registratiepagina, book.php - gastenboekpagina.

Het eenvoudigste in ons geval is de inlogpagina. Omdat de pagina verantwoordelijk is voor het invoeren van een gebruikersnaam en wachtwoord, moet deze een formulier bevatten waarmee deze gegevens naar de book.php-pagina kunnen worden verzonden. En ook een link naar de registratiepagina. Wij hebben:

Log in op het gastenboek Inloggen:
Wachtwoord:

Registratie

Even weg van het onderwerp, voor degenen die niet weten wat de bovenstaande code betekent. Hier hebben we kale HTML. Het belangrijkste punt is de formuliertag, die twee actieparameters accepteert, die verantwoordelijk zijn voor het adres van de pagina die wordt geopend na bevestiging van de gegevensinvoer, en een methodeparameter, die antwoordt hoe de formuliergegevens naar de opgegeven pagina worden verzonden. (zie POST en GET in eenvoudige bewoordingen). Binnen de formuliertag zijn invoervelden (invoer, selecteren) gespecificeerd, die een naamattribuut moeten hebben. Het is door de waarde van dit attribuut dat het mogelijk zal zijn om de gegevens te verkrijgen die door de gebruiker zijn ingevoerd op de pagina die is opgegeven in de actieformulierparameter. Binnen het formulier moet er een invoer zijn met het verzendtype, wat in wezen een knop is. Wanneer erop wordt geklikt, worden de gegevens naar de actiepagina verzonden.

Laten we doorgaan... Nu moeten we een nieuwe gebruikersregistratiepagina maken. Het is de moeite waard om meteen na te denken over wat we precies willen hebben. Ik besloot dat het voor een eenvoudig gastenboek voldoende zou zijn om gebruikers met unieke logins te hebben, en om het adres van hun website te kennen (als die er is). Zodra we hebben besloten wat we over de gebruiker willen weten, kunnen we beginnen met het ontwerpen van onze database.

Ga naar phpMyAdmin. Laten we daar een database maken met de naam gb. In deze database maken we een tabel Gebruikers met de volgende velden:

Login varchar(50) uniek //gebruikerslogin, uniek veldwachtwoord varchar(150) //wachtwoord www varchar(255) //websiteadres

En aangezien we de database-editor al hebben ingevoerd, kunnen we meteen nadenken over hoe we berichten gaan opslaan. In ons geval is het heel geschikt om te weten wie het bericht heeft achtergelaten en wanneer, en wat de daadwerkelijke tekst van ons bericht is. Voor het gemak is het ook de moeite waard om onze berichten te nummeren. We hebben hiertoe besloten, wat betekent dat we veilig nog een Berichten-tabel kunnen maken met de volgende structuur:

Id int ai(auto_increment) primaire_sleutel //berichtnummer, teller, die zelf me tekst zal verhogen //berichttekst wie varchar(50) //login van de persoon die het bericht heeft achtergelaten wanneer tijdstempel standaard (huidig) //tijdstip van vertrek het bericht, volgens de standaard huidige datum en tijd

We hebben de database uitgezocht. Laten we nu verder gaan met het registratie.php-bestand. Als we het bovenstaande samenvatten, hebben we:

Registratie Inloggen:
Wachtwoord:
Wachtwoord nogmaals:
WWW: http://


Thuis

Iets over de code. Zoals je al hebt gemerkt, is PHP hier aanwezig. Ik zal het formulier niet meer beschrijven, maar zoals we kunnen zien, worden de formuliergegevens hier naar dezelfde pagina gestuurd waar dit formulier zich bevindt. Met andere woorden: het registratie.php-bestand verzendt gegevens naar zichzelf. Niemand verbiedt dit, maar je kunt het niet altijd gebruiken, omdat het de leesbaarheid van de code enorm bederft. Aan de andere kant toont dit echter duidelijk de mogelijkheden van de PHP-taal aan. In wezen is onze pagina verdeeld in twee gevallen. Het eerste geval is wanneer gegevens naar de pagina worden verzonden door een POST-verzoek, het tweede geval is wanneer er geen POST-verzoek naar de pagina wordt verzonden. In het tweede geval laten we het registratieformulier zien en in het eerste geval beginnen we de ingediende gegevens te controleren. Zoals u kunt zien, worden de gegevens verzonden in de vorm van een associatieve array (d.w.z. een array waarvan de indices strings zijn). Bovendien komen de indexen overeen met de namen van de invoervelden die zijn opgegeven in het gegevensinzendingsformulier. Die. als we schrijven

Wanneer we deze gegevens verzenden met een POST-verzoek, hebben we dan een variabele

$_POST["vasa-peta"]

Het is ook vermeldenswaard dat we geen herhalingscontroles bij het inloggen uitvoeren. Deze controle wordt uitgevoerd op databaseniveau, aangezien het inlogveld als uniek is gemarkeerd.

Nu het laatste. Het enige dat overblijft is het gastenboek zelf maken. Een kleine discussie. Omdat het gastenboek werkt met een login en wachtwoord, moeten we eerst de ingevoerde login en wachtwoord controleren op beschikbaarheid in de database. Omdat we besloten hebben om berichten toe te voegen aan het book.php bestand, moet uiteraard de procedure voor het toevoegen van een bericht gevolgd worden. Nou ja, helemaal aan het einde een weergave van alle berichten. (als u een bericht toevoegt nadat dit is weergegeven, wordt het toegevoegde bericht pas weergegeven nadat de pagina opnieuw is geladen). Wij hebben:

Gastenboek