Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pobieranie tekstu z formularza i zapisywanie go w pliku
RaiZeN
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 4
Dołączył: 6.03.2014
Skąd: Suwałki

Ostrzeżenie: (0%)
-----


Cześć

Tworże prosty system skracania linków, który polega na tym że użytkownik wpisuje link do skrócenia, klika guzik i otrzymuje kod składający się z losowych znaków, następnie plik .php nazwany tak jak ten wygenerowany kod trafia do folderu i w treści wpisuje tekst z formularza (czyli link do skrócenia). Kod wygląda tak:
  1. <?
  2. $znaki = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  3. $id = '';
  4. for ($i=0; $i<7; $i++)
  5. {
  6. $url .= $znaki[rand()%(strlen($znaki))];
  7. }
  8. echo 'http://www.banan.pl/url/$url';
  9. $file = "$url.php";
  10. $sk = '<?php echo <meta http-equiv="refresh" content="1;url="$_POST['link'];" /> ?>';
  11. #<meta http-equiv="refresh" content="1;url='$_POST['link'];" />
  12. $fp = fopen($file, "a");
  13. flock($fp, 2);
  14. fwrite($fp, $sk);
  15. flock($fp, 3);
  16. fclose($fp);
  17. ?>


Błąd wygląda tak:

Parse error: syntax error, unexpected T_STRING in /virtual/banan.pl/url/link.php on line 10


Natomiast index.php wygląda tak:
  1. <form action="link.php">
  2. <input type="text" name="link" />
  3. <input type="submit" name="ok" value="Skróć link!" />
  4. </form>

Chodzi o to aby tekst z formularza z index.php wpisać do pliku .php po "url=".
(IMG:style_emoticons/default/smile.gif)

PS: Ta strona nie ma takiego adresu tylko zmieniłem żeby nie reklamować (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował RaiZeN 9.04.2014, 17:08:54
Go to the top of the page
+Quote Post
Geston
post
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 9
Dołączył: 29.11.2010
Skąd: T

Ostrzeżenie: (0%)
-----


Odpowiedź niżej.

Ten post edytował Geston 9.04.2014, 18:48:08
Go to the top of the page
+Quote Post
RaiZeN
post
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 4
Dołączył: 6.03.2014
Skąd: Suwałki

Ostrzeżenie: (0%)
-----


Teraz nie wyświetla nawet tego tekstu tylko "$url" :c
Go to the top of the page
+Quote Post
Geston
post
Post #4





Grupa: Zarejestrowani
Postów: 60
Pomógł: 9
Dołączył: 29.11.2010
Skąd: T

Ostrzeżenie: (0%)
-----


Dobra bo tam napisałem tyle co mi się w oczy rzuciło ale to bzdura była.

  1. <?php
  2. $znaki = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  3. $url = '';
  4.  
  5. for ($i=0; $i<7; $i++)
  6. {
  7. $url .= $znaki[rand()%(strlen($znaki))];
  8. }
  9.  
  10. echo 'http://www.banan.pl/url/' . $url;
  11. $file = $url . ".php";
  12. $sk = '<?php echo "<meta http-equiv=\"refresh\" content=\"1;url=' . $_POST['link'] . '\" />" ?>';
  13. #<meta http-equiv="refresh" content="1;url='$_POST['link'];" />
  14. $fp = fopen($file, "a");
  15. flock($fp, 2);
  16. fwrite($fp, $sk);
  17. flock($fp, 3);
  18. fclose($fp);
  19. ?>


$id = '', zła nazwa zmiennej, dalej używasz $url a z operatorem .= musi być ona wcześniej już "zainicjowana".
Dalej łączenie wartości zmiennych i stringów - w kilku miejscach błąd, poprawiłem.

  1. <form action="link.php" method="POST">
  2. <input type="text" name="link" />
  3. <input type="submit" name="ok" value="Ślij link!" />
  4. </form>


W formularzu musisz określić metodę wysyłania na post, domyślnie robi to przez get więc nie znajdziesz przesłanej wartości w $_POST.

Ten post edytował Geston 9.04.2014, 20:52:54
Go to the top of the page
+Quote Post
RaiZeN
post
Post #5





Grupa: Zarejestrowani
Postów: 112
Pomógł: 4
Dołączył: 6.03.2014
Skąd: Suwałki

Ostrzeżenie: (0%)
-----


Cytat(Geston @ 9.04.2014, 19:53:51 ) *
Dobra bo tam napisałem tyle co mi się w oczy rzuciło ale to bzdura była.

  1. <?php
  2. $znaki = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  3. $url = '';
  4.  
  5. for ($i=0; $i<7; $i++)
  6. {
  7. $url .= $znaki[rand()%(strlen($znaki))];
  8. }
  9.  
  10. echo 'http://www.banan.pl/url/' . $url;
  11. $file = $url . ".php";
  12. $sk = '<?php echo "<meta http-equiv=\"refresh\" content=\"1;url=' . $_POST['link'] . '\" />" ?>';
  13. #<meta http-equiv="refresh" content="1;url='$_POST['link'];" />
  14. $fp = fopen($file, "a");
  15. flock($fp, 2);
  16. fwrite($fp, $sk);
  17. flock($fp, 3);
  18. fclose($fp);
  19. ?>


$id = '', zła nazwa zmiennej, dalej używasz $url a z operatorem .= musi być ona wcześniej już "zainicjowana".
Dalej łączenie wartości zmiennych i stringów - w kilku miejscach błąd, poprawiłem.

  1. <form action="link.php" method="POST">
  2. <input type="text" name="link" />
  3. <input type="submit" name="ok" value="Ślij link!" />
  4. </form>


W formularzu musisz określić metodę wysyłania na post, domyślnie robi to przez get więc nie znajdziesz przesłanej wartości w $_POST.


Rzeczywiście nie zauważyłem nazw zmiennych. (IMG:style_emoticons/default/smile.gif) Wszystko działa jak należy, dzięki za pomoc i podpowiedzi, na przyszłość będę wiedział co i jak. (IMG:style_emoticons/default/smile.gif)

Ten post edytował RaiZeN 10.04.2014, 14:39:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 06:22