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

Zadanie o zbieraniu danych użytkownika.

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
145 wizyt
pytanie zadane 24 listopada 2016 w PHP przez AV'ger Użytkownik (790 p.)

Cześć wszystkim. Piszę z problemem przy którym już dość sporo siedzę. Dostałem kilka zadań ze szkoły do rozwiązania, z dwoma sobie poradziłem, zaś trzeci sprawia problem.
Zadanie brzmi: Napisz program który będzie zbierał dane o użytkowniku. Dane niech będą zbierane w pliku czasowym, którego nazwa będzie przekazywana w ukrytym polu.

Oto wszystko co mam do tego zadania na chwilę obecną:

 

<HTML>
  <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-h">
    <TITLE>trzecie</TITLE>
  </HEAD><BODY>
    <? 
       if (!($_POST['nazwapliku'] || $_POST['zak1'] || $_POST['zakh'])) {
       
         print '<FORM ACTION="4-17.php" METHOD=POST>';
         print '<INPUT TYPE="checkbox" NAME="zak1" VALUE="1">Pierogi<BR>';
         print '<INPUT TYPE="checkbox" NAME="zakh" VALUE="1">Mydlo<BR>';
         print '<INPUT TYPE="submit" VALUE="Wyslij">';
         print '</FORM>';
       } else {
         if (($_POST['zak1']) || ($_POST['zakh'])
) { 
           $nazwapliku = tempnam (' ', '');
           $plik = fopen ($nazwapliku, "w");
           fputs ($plik, $_POST['zak1']."\n");
           fputs ($plik, $_POST['zakh']."\n");
           fclose ($plik);
           print '<FORMACTION="4-17.php" METHOD=POST>';
           print "<INPUT TYPE=\"hidden\" NAME=\"nazwapliku\" ";
           print "VALUE=\"$nazwapliku\">";
           print 'Podaj imie i nazwisko:<BR>';
           print '<INPUT TYPE="text" NAME="imienazwisko">';
           print '<INPUT TYPE="submit" VALUE="Wyslij">';
           print '</FORM>';
         } else { 
           $plik = fopen ($_POST['nazwapliku'], "r");
           $zak1 = fgets ($plik, 255);
           $zakh = fgets ($plik, 255);
           fclose ($plik);
           if ($zak1 > 0) { print 'Wybrano towar 1<BR>'; }
           if ($zakh > 0) { print 'Wybrano towar h<BR>'; }
           print "<BR>Zamawiajacy: ".$_POST['imienazwisko']."<BR>";
           unlink ($_POST['nazwapliku']);
         }
       }
    ?>
  </BODY>
</HTML>

Gdy wejdę w plik wyświetla się:

Zaś po kliknięciu wyślij:

 

Wiem, że ścieżkę muszę ustawić w poleceniu $nazwapliku = tempnam (' ', ''); natomiast czego bym tam nie wpisał zawsze po kliknięciu przycisku wyświetla się error. Działam na hostingerze. Stworzyłem katalog dane więc próbowałem sposobów do zapisania tego pliku:

a) $nazwapliku = tempnam ('dane', ' ');

b) $nazwapliku = tempnam ('public_html /dane ', ' ');

oraz wstawiając w drugą klamrę przedrostek nazwy pliku, czy też nazwę pliku z rozszerzeniem który utworzyłem w katalogu dane. Żaden sposób nie działa. Naprowadzi ktoś na rozwiązanie? Z góry dziękuję.

1 odpowiedź

0 głosów
odpowiedź 24 listopada 2016 przez Boshi VIP (100,240 p.)
Twój kod to sieczka, nic z tego nie idzie poprawić, jedynie na nowo przepisać.

Po co przesyła nazwę pliku w formularzu? do czego to niby ma służyć?  To chyba skrypt ma obrabiać dostarczone dane z formularza i tworzyć ewentualnie plik....

Podobne pytania

0 głosów
0 odpowiedzi 572 wizyt
0 głosów
2 odpowiedzi 2,721 wizyt
pytanie zadane 23 listopada 2017 w HTML i CSS przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
2 odpowiedzi 442 wizyt
pytanie zadane 17 stycznia 2017 w SQL, bazy danych przez Smileandlove Nowicjusz (230 p.)

93,444 zapytań

142,436 odpowiedzi

322,697 komentarzy

62,805 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

...