Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak przesłać tekst bezpośrednio na stronę
Forum PHP.pl > Forum > PHP
Robin_H
Witam i proszę o pomoc w temacie wysyłania linijki tekstu bezpośrednio na stronę napisaną w php.
Jestem nowicjuszem i moje wiadomości na ten temat są nie wielkie .Próbowałem użyć skryptów serwera UDP i TCP .Lecz nie wiem dlaczeko nie chciało działać. Napisałem w Delphi aplikację klienta / serwera do komunikacji i chciałbym wysyłać przekonwertowany tekst na 1 tablice w formacie -byte
i odczytać tekst na stronie . Preferował bym komunikację UDP .
Crozin
Dlaczego UDP skoro w tym przypadku to jedynie masa problemów względem TCP. Chyba, że są jakieś specjalne kryteria o których nam nie napisałeś.

Zresztą... napisz jaki ma być efekt, bo "przesłać tekst na stronę" nie jest zbyt sensownym opisem. Jednak jeżeli jest to zwykły skrypt PHP podpięty pod serwer HTTP, który oczekuje, że po uruchomieniu będzie miał jakieś dane dostępne w $_GET / $_POST czy tam $_SERVER to i tak musisz wykonać pełne żądanie HTTP by mu to udostępnić.
Robin_H
Crozin dzięki za zainteresowanie tematem ale do rzeczy chciałem UDP ze względu na aplikację którą napisałem , ale nie upieram się i jeśli TCP jest prostrzym i mniej skomplikowanym wyjściem jestem za takim rozwiązaniem.
Co do tekstu to chodzi mi tutaj o przesłanie pozycji GPS'a podpiętego do Atmegi32 oraz status wejść i wyjść ,który z kolei przez port usb łączy się z laptopem. Chciałbym wyświetlić ten tekst na stronie .
Crozin
Jak domyślam się to czy dane zostaną przesłane z opóźnieniem 19 ms czy 18,5 ms nie ma większego znaczenia? Tak więc daruj sobie niepotrzebną zabawę z UDP i przesyłaniem danych w formie binarnej - wpakuj to wszystko w XML-a i tak prześlij. A jeżeli ten skrypt PHP działa poprzez serwer HTTP (a zapewne tak jest) to jeszcze opakuj tego XML-a w żądanie HTTP i dopiero to wysyłaj.
Robin_H
Jak wcześniej pisałem mam małą wiedzę na temat php w takiej postaci i w tym miejscu upierał bym się przy przesyłaniu tablicy ale poszukam wiadomości na temat :żądanie HTTP i zobaczę co dalej.
Crozin
O ile nie masz na serwerze PHP odpalonego jako jakiegoś rodzaju daemona, który nasłuchuje na danym porcie nie możesz mu wysłać danych - bo nie ma tam niczego co mogło by je odebrać.

PHP z reguły działa "przez serwer HTTP", czyli to serwer HTTP (np. Apache) nasłuchuje na porcie 80 i jeżeli otrzyma odpowiednie żądanie przekaże je PHP-owi, który je obrobi i zwróci odpowiedź. Zakładając, że masz najbardziej standardową konfigurację serwera HTTP wystarczyłoby Ci coś takiego:

Po stronie serwera:
1. Skrypt PHP umieszczony w {WEB-ROOT}/mojskrypt.php (gdzie {WEB-ROOT} to jakaś tam ścieżka pod którą serwer HTTP trzyma publiczne pliki tak by były one dostępne przez domena.pl/mojskrypt.php)
2. Skrypt PHP, który ma formę przykładowo:
  1. <?php
  2.  
  3. if (!isset($_POST['xml'])) {
  4. die('Niepoprawne żądanie.');
  5. }
  6.  
  7. $xml = simplexml_load_string($_POST['xml']);
  8.  
  9. if ($xml === false) {
  10. die('Nieprawidłowa struktura XML-a');
  11. }
  12.  
  13. // $xml to obiekt reprezentujący dokument XML, więcej na: <a href="http://pl.php.net/manual/en/book.simplexml.php" target="_blank">http://pl.php.net/manual/en/book.simplexml.php</a>
  14.  
  15. // przetwarzasz dane
  16.  
  17. // zwracasz odpowiedź
Po stronie klienta:
1. Musisz jedynie wysłać odpowiednie żądanie HTTP, które przyjmie formę:
Kod
POST /mojskrypt.php HTTP/1.1
Host: domena.pl

xml={{ treść dokumentu XML }}
Robin_H
użyłem metody Get i przekazałem dane na stronę poprzez adres -> http://localhost/DANE.PHP?imie=Gutek&wiek=78
wyświetliły się na stronce Gutek i 78 .Fajnie tylko to działa w obrębie wywołania strony . Czy ja robię jakiś błąd czy jest jakaś metoda zmieniająca dane w źródle strony tak aby klienci podłączeni do serwera i przeglądający tą samą strone widziały wszystkie zmiany na stronie . oto kod stronki :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<meta name="lang" content="pl"/>
</head>
<body>
<h1> metoda GET</h1>
<hr/>
<form action="" method="GET">
<label>Podaj imie:<br/>
<input type="text" name="imie"/>
</label>
<label>Ile masz lat:
<input type="text" name="wiek"/>
</label>
<button type="submit">Wyslij</button>
</form>
<?php
if(isset($_GET['imie']) && isset($_GET['wiek'])) //sprawdzamy czy zmienne istnieją (czy formularz został wysłany)
echo 'Witaj <b>'.$_GET['imie'].'</b>! Masz <b>'.$_GET['wiek'].'</b> lat.';
?>
</body>
</html>

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.