• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wysyłanie formularza do 2 różnych miejsc

Hosting forpsi easy 1 pln
+1 głos
282 wizyt
pytanie zadane 13 kwietnia 2021 w PHP przez amator222 Nowicjusz (130 p.)

Witam, dało by się wysłać pliki z formularza do 2 różnych miejsc ? ( dopiero się uczę php )

1- to strona internetowa
2- to plik .txt

Formularz.php
 

<?php

$pole1 = trim($_POST['pole1']);
$pole2 = trim($_POST['pole2']);

if(empty($pole1) and empty($pole2)) {
    
echo '<form action="" method="post">
<input type="text" name="pole1" style="width: 200px;" /><br />
<textarea name="pole2" style="width: 200px; height: 100px;">
</textarea><br />
<input type="submit" value="Zapisz" />
</form>';
}
else {
    
    $dane = $pole1."`".$pole2."\n";
    $file = "logi.txt";
    $fp = fopen($file, "a");
    flock($fp, 2);
    fwrite($fp, $dane);
    flock($fp, 3);
    fclose($fp);
    
}

?>

 

komentarz 13 kwietnia 2021 przez Comandeer Guru (596,220 p.)
Co to znaczy "wysłać"? Chcesz je wysłać mailem?

2 odpowiedzi

0 głosów
odpowiedź 13 kwietnia 2021 przez Jakub 0 Pasjonat (23,120 p.)
edycja 13 kwietnia 2021 przez Jakub 0

dało by się wysłać pliki z formularza do 2 różnych miejsc ?

Z poziomu dokumentu HTML wysyłasz formularz do konkretnego serwera ( atrybut action ). HTML nie zna czegoś takiego jak plik *.txt na twoim serwerze.

Dopiero twój program w PHP może przetworzyć otrzymane dane w odpowiedni sposób. Czyli np. zwrócić je jako odpowiedź serwera, i jednocześnie zapisać do pliku.

komentarz 13 kwietnia 2021 przez amator222 Nowicjusz (130 p.)
Czyli tworze formularz html np. "index.html" <form action="formularz.php">....
i potem musze przekierować go do dwóch różnych plików?

Problem jest w tym że dopiero zaczynam pisać php i nwm za co mam się wziać..
komentarz 13 kwietnia 2021 przez Jakub 0 Pasjonat (23,120 p.)
edycja 13 kwietnia 2021 przez Jakub 0

No więc masz jakiś prosty formularz html:

<form action="" method="post">
        ....
</form>

Kod php:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if(isset($_POST['jakies pole'])) {
        // twój kod ( robisz z tymi danymi co chcesz )
        // możesz użyć echo, zapisać coś do pliku - cokolwiek...
    }
}
else {
    // serwer otrzymał żądanie GET (np. załadowałeś stronę wpisując adres URL)
}

Bawiąc się PHP, musisz pamiętać, że każde wysłane formularza oznacza przeładowanie strony. W związku z tym, kod twojego serwera wykonuje się na nowo.

 

komentarz 13 kwietnia 2021 przez amator222 Nowicjusz (130 p.)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if(isset($_POST['jakies pole'])) {
        // twój kod ( robisz z tymi danymi co chcesz )
        // możesz użyć echo, zapisać coś do pliku - cokolwiek...
    }
}

 

a mógłbyś podać przykład jak wysłać formularz do strony i do pliku.txt?  
 

komentarz 13 kwietnia 2021 przez Jakub 0 Pasjonat (23,120 p.)
Co masz na myśli poprzez wysłanie formularza do pliku? Chcesz tam zapisać otrzymane przez serwer dane?
komentarz 13 kwietnia 2021 przez amator222 Nowicjusz (130 p.)
Chciałbym aby formularz wysyłał się do strony internetowej np.(allegro.pl/?dane=dane) i żeby  dane z formularza zapisywały się w pliku .txt
komentarz 13 kwietnia 2021 przez Jakub 0 Pasjonat (23,120 p.)
edycja 13 kwietnia 2021 przez Jakub 0

wysłać formularz do strony i do pliku.txt

Nie widzę sensu dawać tutaj przykładu. Napisz po prostu w Google: "obsługa plików w PHP". Tutaj przykładowy artykuł. Jest to tak znany temat, że nawet nie musisz po angielsku szukać informacji.

Jeśli chodzi o wysłanie formularza do strony, to wciąż nie wiem jeszcze do końca co masz na myśli. Przypuszczam, że chodzi ci, by dodatkowo wysłać formularz na jakiś inny serwer.

Możesz to zrobić z poziomu php. Z poziomu klienta natomiast wykorzystaj JS (pytanie na stack overflow).

1
komentarz 13 kwietnia 2021 przez Comandeer Guru (596,220 p.)

@amator222, opisz dokładnie problem poprzez edycję pytania i określenie, co chcesz osiągnąć. Bo na razie wszyscy tylko zgadujemy.

0 głosów
odpowiedź 14 kwietnia 2021 przez VBService Ekspert (246,010 p.)
edycja 14 kwietnia 2021 przez VBService

Po analizie zapisów w komentarzach mam taką propozycję.

How to send a $_POST data to another server?

<?php
  if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST)) {
    // var_dump($_POST); // Test - dane z formularza

    $pole1 = (!empty($_POST['pole1'])) ? trim($_POST['pole1']) : null;
    $pole2 = (!empty($_POST['pole2'])) ? trim($_POST['pole2']) : null;

    if ($pole1 && $pole2) {
      $data = $pole1.' [' . date("Y-m-d H:i:s").']'.PHP_EOL
            . $pole2.PHP_EOL.str_repeat("-",40).PHP_EOL;

      file_put_contents('logi.txt', $data, FILE_APPEND | LOCK_EX);

      // Tu umieść kod np.:
      // How to send a $_POST data to another server?
      // https://stackoverflow.com/questions/39471456/how-to-send-a-post-data-to-another-server
 
      $return_message = '<span class="save-ok">Dane zostały zapisane</span>';
    } else {
      $return_message = '<span class="save-error">Bład! Dane nie zostały zapisane</span>';
    }   
  } else {
    $return_message = '';
  }
?>
<!DOCTYPE html>
<html lang="pl">
  <heda>
    <meta charset="utf-8">
    <title>Wysyłanie formularza do 2 różnych miejsc</title>

    <style>
      * {
        box-sizing: border-box;
      }
      input, textarea {
        display: block;
        margin: 1em;      
      }
      input[type="text"] {
        width: 200px;
      }
      textarea {
        width: 200px;
        height: 100px;
      }
      input[type="submit"] {
        cursor: pointer;
      }
      pre {
        margin: 1em;
      }
      pre .save-ok {
        color: green;
      }
      pre .save-error {
        color: red;
      }
    </style>
  </head>
  <body>
    <form action="formularz.php" method="post">
      <input type="text" name="pole1" required>
      <textarea name="pole2" required></textarea>
      <input type="submit" value="Zapisz">
    </form>
    <pre><?php echo $return_message; ?></pre>
  </body>
</html>

 

file_put_contents ]  [ Predefined PHP Constants ]

Podobne pytania

0 głosów
0 odpowiedzi 194 wizyt
pytanie zadane 5 lutego 2018 w PHP przez JSJerry Początkujący (260 p.)
+1 głos
2 odpowiedzi 1,414 wizyt
0 głosów
2 odpowiedzi 732 wizyt
pytanie zadane 24 marca 2020 w PHP przez Hardwell Dyskutant (8,940 p.)

92,089 zapytań

140,748 odpowiedzi

317,711 komentarzy

61,408 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia w koszyku, uzyskując rabat aż -50% (jeszcze tylko dziś 30.11 z okazji Black Week, a potem będzie to 30%) na bilety w wersji "Standard"! Więcej informacji na temat akademii znajdziecie tutaj. Dziękujemy Sekurakowi za tak fajną zniżkę dla Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 15% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...