La plupart des fondations. Comment fonctionne PHP.


  • application Web Contrairement programme régulier
  • Comment PHP, où il a joué?
  • Comment passer une variable de PHP JavaScript et vice versa?
  • Les méthodes de communication avec le navigateur du serveur.
  • Affichage d'un échange en - têtes HTTP
  • TRÈS IMPORTANT
  • Commentaires

    application Web Contrairement programme régulier
    Commencer à écrire des programmes pour le Web, de nombreux programmeurs débutants rencontrent cette erreur. Ils voient le système navigateur-serveur comme une application normale. Interactive. Il appuya sur le bouton - le système a répondu. Nous avons passé une souris - répondis-je. Toutes les informations qui sont disponibles pour le client - et le programme est disponible, le programme est toujours dans la mémoire.
    Ainsi, dans la programmation web est pas! .
    A un moment où l'utilisateur voit une page et commence à faire de l' action avec elle, PHP a déjà terminé les travaux! Et pas un utilisateur interagit avec un script PHP et la page HTML avec elle, qu'il a reçu dans le navigateur. Le résultat d'un script PHP dans la plupart des cas est le texte brut. Le texte d'une page HTML. Qui a donné le navigateur et les affiche comme HTML normal. Vous pouvez voir par vous-même en écrivant un script
    <? echo "Привет, <b>Вася!</b>" ; ?> ; Et puis en regardant le code source du navigateur de la page reçue. Aucun tag PHP est pas là! seulement
    Привет, <b>Вася!</b>
    Parce que PHP est exécuté sur le serveur!


    Le serveur et le navigateur communiquent en envoyant les uns les autres demandes d'un protocole spécial - HTTP. La connexion ne peut lancer un navigateur. Il envoie une demande au serveur - montrent un certain fichier. Le serveur envoie le fichier au client.
    Tout ce qui se passe. Le client a demandé - serveur donné. Aussitôt j'oublié le client. Il devient réponse claire à la question de savoir s'il est possible de connaître la ligne de exactement combien d'utilisateurs. Vous ne pouvez pas. parce que "sur place" ne possède pas. Ils sont reliés, les pages de requête et déconnectés. Ne pas avoir une connexion permanente au serveur, tels que les lecteurs Kwaku. Renseignez-vous sur seulement en enregistrant le temps de chaque connexion et en sélectionnant les enregistrements pendant une certaine période de temps.

    En outre, à partir de là, il devient clair que le serveur peut identifier le client est très faible. Seul le fait que le client envoie dans le HTTP demande. Les résolutions d'écran ne sont pas là ;-)
    Tout ce que le serveur peut savoir sur le client, vous pouvez voir l'équipe
    phpinfo()
    Exemple navigateur de communiquer avec le serveur:
    L'utilisateur clique sur le lien, le navigateur envoie une requête au serveur et attend une réponse:
    Navigateur -> PHP

    PHP exécute le script, donne le résultat dans le navigateur et les sorties:
    PHP -> Navigateur

    Le navigateur affiche la page, "recherche" pour ses liens qui devraient être demandés à partir du serveur (balise <img src>, <script src > , et ainsi de suite), et envoie les enquêtes appropriées. Ils peuvent être vus en regardant l'échange de titres, car il sera juste en dessous:
    Navigateur -> Server Browser -> Navigateur serveur -> serveur ...

    L'utilisateur remplit le formulaire et clique sur le bouton:
    Navigateur -> PHP

    PHP gère la forme, écrire des données dans la base de données et envoie l' en- tête navigateur Lieu:
    PHP -> Navigateur

    Le navigateur a reçu le titre, les demandes de page donnés
    Navigateur -> PHP

    PHP exécute ... et ainsi de suite.

    Comment PHP, où il a joué?
    PHP est exécuté sur le serveur. Le navigateur envoie une requête à un serveur avec la page de code php. Le serveur envoie la page pour exécuter le PHP interprète, interprète génère le code HTML qui donne le serveur, et le serveur envoie au client. Pas de code PHP dans le navigateur ne reçoit pas (ce qui est important! Cela signifie que pour voir le code de script PHP est pas possible!). La seule façon d'envoyer quelque chose au script - est de cliquer sur le lien ou cliquez sur le bouton dans la forme. Alors que PHP gère certaines actions de l'utilisateur dans le navigateur - il est impossible. PHP laissé sur le serveur, dans l'attente de nouvelles requêtes aux données pour un traitement. PHP, mais pas au script! Le script, qui a été réalisée, donnant à l'utilisateur une page a terminé le travail. Toutes les données qui étaient en elle - disparu. Voilà pourquoi, si une variable est nécessaire pour les appels suivants au script, il est nécessaire de passer à nouveau ce script.

    Comment passer une variable de PHP JavaScript et vice versa?
    Commençons par le fait qu'aucune variable est passée, bien sûr, impossible. Puisque la variable - fait partie du programme. Et de l'un à l'autre pour passer nalzya. Envoyer seule variable. Ie texte. Autrement dit, la différence entre la "variable de transmission en JavaScript" et la formation de la table html NON NON!
    D'où la conclusion - "Passez la variable" en Javascript est très facile. Surtout, je le répète, si l'on considère qu'il n'y a pas de «transfert» ne se produit pas. Tout simplement PHP génère JavaScript de la même manière que le reste de la page, ainsi que toutes les variables.
    De la même manière que vous dessinez une ligne dans le navigateur "Bonjour tout le monde, cela est John Doe!" Est affiché et tout JavaScript, avec toutes ses variables.
    La seule condition - que vous avez à imaginer le javascript que vous souhaitez recevoir.
    Par exemple, en PHP , il est une variable $name = "Вася" $name = "Вася" Dont la valeur doit être transférée à JavaScript, pour obtenir
    <script>name="Вася";</script>
    Nous écrivons juste
    <?
    $name
    = "Вася" ;
    ?>
    <script>name=" <? echo $name ; ?> "</script>
    <?
    $name
    = "Вася" ;
    ?>
    <script>name=" <? echo $name ; ?> "</script>
    Echo $ nom;?>" </ Script> Cela est, en fait, nous venons de former notre script PHP, un texte qui ressemble à vous voulez que nous code javascript. Ou, d'autre part, nous avons écrit un javascript dans les bons endroits en insérant les variables de sortie de PHP.
    Afin de ne pas devenir fou avec différentes citations, il est fortement recommandé que toutes les sorties javascript non pas par l'écho, et exactement comme écrit ici - balise de fermeture de PHP et de les ouvrir uniquement lorsque vous souhaitez afficher la variable.

    Comment passer une variable de Javascript vers PHP?
    Tout comme toutes les autres données - l'envoi d'une requête au serveur.
    Mais il faut bien comprendre que pour obtenir quelque chose du javascript, bien sûr, pas possible pendant l'exécution du script php. Ne peut transmettre sur la demande suivante. Et la poignée, il sera un autre script PHP.
    Si nécessaire, mais rbratitsya événement onClick à une base de données, il convient de rappeler qu'il est sur le serveur. C'est, il est nécessaire de demander un serveur qui exécute un script PHP qui fera appel à la base de données, obtenir une réponse d'elle et lui donner au navigateur.

    Tout ce qui précède ne sont pas en conflit avec, bien sûr, la technologie de la mode communication asynchrone avec le navigateur de serveur. Toutes les méthodes sont les mêmes, tout simplement communiquer avec le serveur exécute pas le navigateur lui-même, mais le javascript programme.
    Plus de détails peuvent être lus sur les ressources consacrées à JavaScript. Du point de vue de PHP AJAX demandes ne sont pas différents de l'habituel.

    Les méthodes de communication avec le navigateur du serveur.
    Des moyens fournis par le protocole HTTP, un peu. Cette information est importante. Aucun autre moyen n'est pas présent. Dans la pratique, utiliser deux:
    GET - cela est lorsque les données sont transmises dans la barre d'adresse, par exemple, lorsque l'utilisateur clique sur un lien.
    POST - quand il appuie sur un bouton sur le formulaire.
    Formé page avec un lien ou une forme de la méthode GET - une demande GET vient-e. Formé à la forme dans laquelle la méthode POST spécifiée - viennent POST-ème.
    Pour déterminer quelle méthode doit être utilisée, il est très simple. Si le formulaire utilisé pour demander certaines informations, par exemple - dans la recherche, il doit envoyer la méthode GET. Pour être en mesure d'actualiser la page, vous pouvez signet et ou envoyer à un ami.
    Si à la suite des données sous forme de soumission est écrit ou modifié sur le serveur, vous devez les envoyer à la méthode POST, et certainement après le traitement de la forme est nécessaire de rediriger le navigateur en utilisant la méthode GET. En outre, POST peut être nécessaire si le serveur est nécessaire de transférer une grande quantité de données (GET, il est très limité), aussi bien que si la "lumière" ne doit pas être transmis aux données dans la barre d'adresse (en entrant le nom d'utilisateur et mot de passe, par exemple). Mais en tout cas, après le traitement POST doit toujours rediriger le navigateur vers une page, même si le même, mais sans les données du formulaire à la mise à niveau ne sont pas la page réécrites. Par exemple:
    header ( "Location: http://" . $_SERVER [ 'HTTP_HOST' ]. $_SERVER [ 'REQUEST_URI' ]);
    exit;

    La chose la plus importante à retenir: le serveur de leur propre initiative à appliquer au client ne peut pas. Nous ne pouvons que sur demande de donner quelque chose au navigateur - ou de la page ou cliquez pour demander une autre ressource.

    Informations pratiques peuvent être contenus dans divers en-têtes HTTP.
    Cookie - si le serveur définir un cookie, et il est à jour, le navigateur envoie avec chaque demande.
    authentification HTTP - si le serveur HTTP demande l' authentification, le navigateur envoie chaque fois que l' adresse est entré et mot de passe.

    PHP peut envoyer des en- têtes HTTP à deux équipes - header () et setcookie ().

    Affichage d'un échange en - têtes HTTP
    Je recommande vivement la pratique avec les en-têtes HTTP, voir comment ils échangent serveur et le client.
    Pour ce faire, il existe de nombreuses façons différentes. Si vous avez un gestionnaire de téléchargement FlashGet populaire, vous pouvez l'utiliser. Juste en-têtes montre programme Proxomitron populaire, vous pouvez télécharger des outils spéciaux.
    En outre, il y a beaucoup d'autres services publics, être trouvé facilement sur le réseau demande renifleur de HTTP.
    Assurez-vous d'utiliser tous les moyens pour voir les en-têtes HTTP que le navigateur communique avec le serveur. Ceci est une très bonne pratique, ainsi que de vérifier - qui envoie votre script. Il est pratique lors du débogage des cookies d'installation ou questions séances.
    Une idée approximative de qui est venu Les titres peuvent également être obtenus en utilisant les getallheaders de fonction (). Mais il convient de garder à l'esprit qu'il ne fonctionne que lorsque PHP est compilé comme module.

    TRÈS IMPORTANT
    Du fait que PHP est exécuté sur le serveur, et envoie le résultat au navigateur, il devrait être une conclusion simple, mais très importants. Qu'est-ce que PHP, en principe, ne peut être affiché dans un navigateur est rien qui ne pourrait être fait par le biais de html.
    Avant de vous écrire quelque chose sur PHP - essayer de le rendre pur HTML.
    "Appuyer sur Enter" ne se traduit pas la chaîne? Et en html vous n'essayez donc newline? Cela n'a pas fonctionné? Quelle honte. Découvrez comment en html faire un saut de ligne et de revenir.

    PHP en raison de leur travail forme l'image sans texte, comme vous le voyez à l'écran! PHP génère du code HTML! Et ce code est significativement différent de l'image que vous voyez à l'écran. Si vous avez quelque chose ne fonctionne pas, vous devez toujours regarder exactement le code source de la page, et non pas comment il vous attire navigateur. Dans Internet Explorer, le code source peut être consulté en sélectionnant le menu Affichage - Voir HTML-Code.
    Si vous n'êtes pas en cours d'exécution Javascript généré script PHP ou html montre pas ce que vous voulez, alors ceci est facile à résoudre le problème.

    1. Tout d' abord, vous écrivez les mains JavaScript ou HTML nécessaires. Si vous avez un problème avec ça - s'il vous plaît contacter le forum approprié - pour javascript ou html. PHP rien à voir avec.
    2. comparer avec ceux obtenus à partir du PHP
    3. Pour effectuer des corrections dans le script PHP pour le texte, pour leur donner, ne diffère pas de ce qui est écrit à la main.

    Le navigateur ne peut pas afficher les fichiers qui entassent les deux images html. Le navigateur peut afficher uniquement connu pour les types de données lui. En particulier, ceci ou html ou des images. Mais pas ensemble. Si l'image - l'ONE. Quelques photos montrent le navigateur dans une rangée ne peuvent pas. Le navigateur peut afficher HTML, qui définit les références à plusieurs images.
    S'il vous plaît, avant de vous apprendre PHP - apprendre au moins les bases HTML! Avant que vous exigez quelque chose de PHP - essayer de le faire sur le html.