Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pierwszy formularz.
Forum PHP.pl > Forum > Przedszkole
marian2299
Jak wstawić do formularza, by wypełniający dodawał plik (tylko i wyłącznie!) mp3, na serwer, a potem wysyłał w załączniku razem z innymi danymi na maila?
erix
Sprawdzasz MIME, wysyłasz przez phpMailer.
marian2299
Napisałem:
  1. <?php
  2. $wyslij = "Imię: $imie <br />Nazwisko: $nazwisko <br />Email: $email <br />Nr gg: $gg<br />Pseudonim: $pseudonim <br />Ulica, plac, aleja: $ulica <br />Miasto: $miasto <br />Wiek: $wiek <br />Próbka głosu: $probkaglosu <br />Dodatkowe uwagi: $uwagi";
  3. mail ("marianex@gery.pl", "Rekrutacja", $wyslij);
  4. ?>
  5.  
  6.  
  7.  
  8. <form enctype="multipart/form-data"  action="formularz.php"  method="post" accept="audio/mpeg">
  9. <table width="520" cellpadding="5" cellspacing="0">
  10. <tr >
  11.  <td width="150" class="left" >
  12.   <label >Imię </label>
  13.  </td>
  14.  <td class="right" >
  15.   <input type="text" size="20" name="imie"  value="" maxlength="100" maxsize="100" />
  16.  
  17.  </td>
  18. </tr>
  19. <tr >
  20.  <td width="150" class="left" >
  21.   <label >Nazwisko </label>
  22.  </td>
  23.  <td class="right" >
  24.   <input type="text" size="20" name="naziwsko"  value="" maxlength="100" maxsize="100" />
  25.  
  26.  </td>
  27. </tr>
  28. <tr >
  29.  <td width="150" class="left" >
  30.   <label >E-mail </label>
  31.  </td>
  32.  <td class="right" >
  33.   <input type="text" size="20" name="email"  value="" maxlength="100" maxsize="100" />
  34.  
  35.  </td>
  36. </tr>
  37. <tr >
  38.  <td width="150" class="left" >
  39.   <label >Numer gadu-gadu </label>
  40.  </td>
  41.  <td class="right" >
  42.   <input type="text" size="20" name="gg"  value="" maxlength="10" maxsize="10" />
  43.  
  44.  </td>
  45. </tr>
  46. <tr >
  47.  <td width="150" class="left" >
  48.   <label >Pseudonim </label>
  49.  </td>
  50.  <td class="right" >
  51.   <input type="text" size="20" name="pseudonim"  value="" maxlength="100" maxsize="100" />
  52.  
  53.  </td>
  54. </tr>
  55. <tr >
  56.  <td width="150" class="left" >
  57.   <label >Ulica/Plac/Aleja </label>
  58.  </td>
  59.  <td class="right" >
  60.   <input type="text" size="20" name="ulica"  value="" maxlength="100" maxsize="100" />
  61.  
  62.  </td>
  63. </tr>
  64. <tr >
  65.  <td width="150" class="left" >
  66.   <label >Miasto </label>
  67.  </td>
  68.  <td class="right" >
  69.   <input type="text" size="20" name="miasto"  value="" id="q4"    maxlength="100" maxsize="100" />
  70.  
  71.  </td>
  72. </tr>
  73. <tr >
  74.  <td width="150" class="left"  valign="top" >
  75.   <label>Wiek </label>
  76.  </td>
  77.  <td class="right">
  78.   <select class="other" name="wiek">
  79.  
  80.  <option></option>
  81.    <option>16</option>
  82.    <option>17</option>
  83.    <option>18</option>
  84.    <option>19</option>
  85.    <option>20</option>
  86.  
  87.    <option>21</option>
  88.    <option>22</option>
  89.    <option>23</option>
  90.    <option>24</option>
  91.    <option>25</option>
  92.    <option>26</option>
  93.  
  94.    <option>27</option>
  95.    <option>28+</option>
  96.   </select>
  97.  </td>
  98. </tr>
  99. <tr >
  100.  <td width="150" class="left" >
  101.     <label>Próbka głosu, w któłrej mółwisz, czemu chcesz u nas grać? </label>
  102.  
  103.  </td>
  104.  <td class="right">
  105.     <input type="file"  size="20" name="probkaglosu" />
  106.  </td>
  107. </tr>
  108. <tr >
  109.  <td width="150" class="left" valign="top"  >
  110.   <label>Dodatkowe uwagi</label>
  111.  
  112.  </td>
  113.  <td class="right" >
  114.   <textarea cols="35" rows="10" name="uwagi"  id="q7" ></textarea>
  115.  </td>
  116. </tr>
  117. <tr >
  118.  <td width="150" class="left" >&nbsp;
  119.  
  120.  </td>
  121.  
  122.  <td class="right">
  123.  <input type="submit" value="Submit" />
  124. </td>
  125. </tr>
  126. </table>
  127. </div>
  128. </div>
  129. </form>

A dostałem :
  1. Imię: <br />Nazwisko: <br />Email: <br />Nr gg: <br />Pseudonim: <br
  2. />Ulica, plac, aleja: <br />Miasto: <br />Wiek: <br />Próbka głosu: <br
  3. />Dodatkowe uwagi:

Czemu nie dostałem załącznika i żadnych danych ?

  1. <?php
  2. $imie=$_POST['imie'];
  3. $nazwisko=$_POST['nazwisko'];
  4. $email=$_POST['email'];
  5. $gg=$_POST['gg'];  
  6. $pseudonim=$_POST['pseudonim'];
  7. $ulica=$_POST['ulica'];
  8. $miasto=$_POST['miasto'];
  9. $wiek=$_POST['wiek'];
  10. $probkaglosu=$_POST['probkaglosu'];
  11. $uwagi=$_POST['uwagi'];
  12. ?>

Tego mi brakowało.Tylko dostaje maila 2 razy, czemu? A co z załącznikiem?
PS: wiem, <br> nie działa.
ArekJ
Ale wysyłaj to przez PHPMailer a nie funkcję mail() wbudowaną w PHP
marian2299
  1. <?php
  2. $imie=$_POST['imie'];
  3. $nazwisko=$_POST['nazwisko'];
  4. $email=$_POST['email'];
  5. $gg=$_POST['gg'];  
  6. $pseudonim=$_POST['pseudonim'];
  7. $ulica=$_POST['ulica'];
  8. $miasto=$_POST['miasto'];
  9. $wiek=$_POST['wiek'];
  10. $probkaglosu=$_POST['probkaglosu'];
  11. $uwagi=$_POST['uwagi'];
  12.  
  13. require("phpmailer/class.phpmailer.php");
  14. $mail = new PHPMailer();
  15.  
  16. $mail->PluginDir = "phpmailer/";
  17. $mail->From = "maxior-zgierz@o2.pl"; //adres naszego konta
  18. $mail->FromName = "Mail";//nagłówek From
  19. $mail->Host = "poczta.o2.pl";//adres serwera SMTP
  20. $mail->Mailer = "smtp";
  21. $mail->Username = "maxior-zgierz";//nazwa użytkownika
  22. $mail->Password = "HASŁOTUTAJ haha.gif";//nasze hasło do konta SMTP
  23. $mail->SMTPAuth = true;
  24. $mail->SetLanguage("pl", "phpmailer/language/");
  25.  
  26. $mail->Subject = "Rekrutacja";//temat maila
  27.  
  28. // w zmienną $text_body wpisujemy treść maila
  29. $text_body = "Imię: $imie \nNazwisko: $nazwisko \nE-mail: $emal \nNumer gg: $gg \nPseudonim: $pseudonim \nUlica,plac, aleja: $ulica \nMiasto: $miasto \nWiek: $wiek \nPróbka głosu: $probkaglosu \nDodatkowe uwagi: $uwagi ";
  30.  
  31. $mail->Body = $text_body;
  32. // adresatów dodajemy poprzez metode 'AddAddress'
  33. $mail->AddAddress("marianex@gery.pl","Prezes");
  34.  
  35.  
  36. if(!$mail->Send())
  37. echo "Wystąpił błąd z mailem<br>";
  38. echo $mail->ErrorInfo."<br>";
  39.  
  40. // Clear all addresses and attachments
  41. $mail->ClearAddresses();
  42. $mail->ClearAttachments();
  43. echo "mail wysłany<br>";
  44.  
  45. ?>
  46.  
  47.  
  48.  
  49. <form enctype="multipart/form-data"  action="formularz.php"  method="post" accept="audio/mpeg">
  50. <table width="520" cellpadding="5" cellspacing="0">
  51. <tr >
  52.  <td width="150" class="left" >
  53.   <label >Imię </label>
  54.  </td>
  55.  <td class="right" >
  56.   <input type="text" size="20" name="imie"  value="" maxlength="100" maxsize="100" />
  57.  
  58.  </td>
  59. </tr>
  60. <tr >
  61.  <td width="150" class="left" >
  62.   <label >Nazwisko </label>
  63.  </td>
  64.  <td class="right" >
  65.   <input type="text" size="20" name="naziwsko"  value="" maxlength="100" maxsize="100" />
  66.  
  67.  </td>
  68. </tr>
  69. <tr >
  70.  <td width="150" class="left" >
  71.   <label >E-mail </label>
  72.  </td>
  73.  <td class="right" >
  74.   <input type="text" size="20" name="email"  value="" maxlength="100" maxsize="100" />
  75.  
  76.  </td>
  77. </tr>
  78. <tr >
  79.  <td width="150" class="left" >
  80.   <label >Numer gadu-gadu </label>
  81.  </td>
  82.  <td class="right" >
  83.   <input type="text" size="20" name="gg"  value="" maxlength="10" maxsize="10" />
  84.  
  85.  </td>
  86. </tr>
  87. <tr >
  88.  <td width="150" class="left" >
  89.   <label >Pseudonim </label>
  90.  </td>
  91.  <td class="right" >
  92.   <input type="text" size="20" name="pseudonim"  value="" maxlength="100" maxsize="100" />
  93.  
  94.  </td>
  95. </tr>
  96. <tr >
  97.  <td width="150" class="left" >
  98.   <label >Ulica/Plac/Aleja </label>
  99.  </td>
  100.  <td class="right" >
  101.   <input type="text" size="20" name="ulica"  value="" maxlength="100" maxsize="100" />
  102.  
  103.  </td>
  104. </tr>
  105. <tr >
  106.  <td width="150" class="left" >
  107.   <label >Miasto </label>
  108.  </td>
  109.  <td class="right" >
  110.   <input type="text" size="20" name="miasto"  value="" id="q4"    maxlength="100" maxsize="100" />
  111.  
  112.  </td>
  113. </tr>
  114. <tr >
  115.  <td width="150" class="left"  valign="top" >
  116.   <label>Wiek </label>
  117.  </td>
  118.  <td class="right">
  119.   <select class="other" name="wiek">
  120.  
  121.  <option></option>
  122.    <option>16</option>
  123.    <option>17</option>
  124.    <option>18</option>
  125.    <option>19</option>
  126.    <option>20</option>
  127.  
  128.    <option>21</option>
  129.    <option>22</option>
  130.    <option>23</option>
  131.    <option>24</option>
  132.    <option>25</option>
  133.    <option>26</option>
  134.  
  135.    <option>27</option>
  136.    <option>28+</option>
  137.   </select>
  138.  </td>
  139. </tr>
  140. <tr >
  141.  <td width="150" class="left" >
  142.     <label>Próbka głosu, w któłrej mółwisz, czemu chcesz u nas grać? </label>
  143.  
  144.  </td>
  145.  <td class="right">
  146.     <input type="file"  size="20" name="probkaglosu" />
  147.  </td>
  148. </tr>
  149. <tr >
  150.  <td width="150" class="left" valign="top"  >
  151.   <label>Dodatkowe uwagi</label>
  152.  
  153.  </td>
  154.  <td class="right" >
  155.   <textarea cols="35" rows="10" name="uwagi"  id="q7" ></textarea>
  156.  </td>
  157. </tr>
  158. <tr >
  159.  <td width="150" class="left" >&nbsp;
  160.  
  161.  </td>
  162.  
  163.  <td class="right">
  164.  <input type="submit" value="Submit" />
  165. </td>
  166. </tr>
  167. </table>
  168. </div>
  169. </div>
  170. </form>

Wysyła mail, bez załącznika, czytałem że najpierw trzeba uploadować plik na serwer i wstawić przez AddAttachment, ale jak wstawić, skoro kazdy dodaje inną próbkę?
Cały czas pokazuje "mail wysłany" czemu ?
I dostaje 2 maile ciągle, czemu ?
kajzur
Mail wysłany jest zwykłym echem, więc będzie zawsze.. A powinien być instrukcją IF'a ..
marian2299
Teraz ok ?
  1. <?php
  2. if(!$mail->Send())
  3. echo "Wystąpił błąd z mailem<br>";
  4. echo $mail->ErrorInfo."<br>";
  5. else {
  6. // Clear all addresses and attachments
  7. $mail->ClearAddresses();
  8. $mail->ClearAttachments();
  9. echo "mail wysłany<br>";
  10. }
  11. ?>
erix
A ciężko sprawdzić...?
marian2299
Wiecie co? Nie chcę się bawić w załącznik. Chciałbym tylko, żeby mp3 z formularza trafiła na serwer i link do niej poszedł na email.
Tylko jak?
erix
PHP - kurs: wysyłanie plików. To naprawdę nie jest trudne, jedna z najprostszych rzeczy. [;
marian2299
To jest zgłoszenie do pracy w radiu.
Jest imię, pseudo, wiek i próbka głosu.
Ktoś wrzuca próbkę, ona na serwer a do mnie przychodzi link do próbki i tamte inne dane.
Co z tego, że wyśle na serwer, jak nie dostanę linku.

Znalazłem tutorial i mam takie cuś:
<form enctype="multipart/form-data" action="plik.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
Plik do wysłania: <input name="userfile" type="file" />
<input type="submit" value="Wyślij" />

  1. <?php
  2.  
  3. $location = 'upload/' . basename($_FILES['userfile']['name']);
  4.  
  5. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $location)) {
  6.   echo "Plik został załadowany poprawnie...";
  7. } else {
  8.   echo "Plik nie został załadowany...";
  9. }
  10.  
  11. ?>

Jak zmienić nazwę pliku na "probka-1" i tak po kolei probka-2, probka-3.
I jak wysłać to z innymi danymi na email (jako link).

Aha, to mi zapisuje z CHMOD 600, a ja chcę 755, jak to zrobić?
erix
Cytat
Jak zmienić nazwę pliku na "probka-1" i tak po kolei probka-2, probka-3.

Zapisuj sobie w pliku ostatni identyfikator (sama liczba) i zwiększaj co każdy upload (oczywiście zapisując zmiany w tym pliku).

Cytat
I jak wysłać to z innymi danymi na email (jako link).

Link wysyłasz jak zwykły mail, więc to są podstawy. A jeśli chodzi o samą formę odsyłacza - najważniejsze, aby plik znajdował się w katalogu, do którego możesz odwołać się przez przeglądarkę.
marian2299
A jak `zapisać sobie ostatni identyfikator` ?
erix
A co z zapisem danych do pliku? tongue.gif

Przecież napisałem, czytaj uważnie.
marian2299
  1. <?php
  2.  
  3. // zmienna $dane, która będzie zapisana
  4. // może także pochodzić z formularza np. $dane = $_POST['dane'];
  5. $dane="$_POST['probkaglosu']\n";
  6.  
  7. // przypisanie zmniennej $file nazwy pliku
  8. $file="probka.mp3";
  9.  
  10. // uchwyt pliku, otwarcie do odczytu i dopisania
  11. $fp=fopen("$file", "r+");
  12.  
  13. // dodanie do zmiennej dane poprzedniej zawartości pliku
  14. $dane=$dane.fread($fp, filesize($file));
  15.  
  16. // ustawienie kursora na początku pliku
  17. rewind($fp);
  18.  
  19. // blokada pliku do zapisu
  20. flock($fp, 2);
  21.  
  22. // zapisanie danych do pliku
  23. fwrite($fp, $dane);
  24.  
  25. // odblokowanie pliku
  26. flock($fp, 3);
  27.  
  28. // zamknięcie pliku
  29. fclose($fp);
  30. ?>

Tak?
erix
A ciężko spróbować? Radź sobie trochę...
marian2299
Dobra mam tak:
  1. <?php
  2.  
  3. // zmienna $dane, która będzie zapisana
  4. // może także pochodzić z formularza np. $dane = $_POST['dane'];
  5. $dane = $_POST['probkaglosu'];
  6.  
  7. // przypisanie zmniennej $file nazwy pliku
  8. $file="probka.mp3";
  9.  
  10. // uchwyt pliku, otwarcie do odczytu i dopisania
  11. $fp=fopen("$file", "r+");
  12.  
  13. // dodanie do zmiennej dane poprzedniej zawartości pliku
  14. $dane=$dane.fread($fp, filesize($file));
  15.  
  16. // ustawienie kursora na początku pliku
  17. rewind($fp);
  18.  
  19. // blokada pliku do zapisu
  20. flock($fp, 2);
  21.  
  22. // zapisanie danych do pliku
  23. fwrite($fp, $dane);
  24.  
  25. // odblokowanie pliku
  26. flock($fp, 3);
  27.  
  28. // zamknięcie pliku
  29. fclose($fp);
  30. ?>
  31. <?php
  32. $imie=$_POST['imie'];
  33. $nazwisko=$_POST['nazwisko'];
  34. $email=$_POST['email'];
  35. $gg=$_POST['gg'];  
  36. $pseudonim=$_POST['pseudonim'];
  37. $ulica=$_POST['ulica'];
  38. $miasto=$_POST['miasto'];
  39. $wiek=$_POST['wiek'];
  40. $uwagi=$_POST['uwagi'];
  41.  
  42. $wyslij = "Imię: $imie \nNazwisko: $nazwisko \nEmail: $email \nNr gg: $gg\nPseudonim: $pseudonim \nUlica, plac, aleja: $ulica \nMiasto: $miasto \nWiek: $wiek \nPróbka głosu: $dane \nDodatkowe uwagi: $uwagi";
  43. mail ("marianex@gery.pl", "Rekrutacja", $wyslij);
  44. ?>
  45.  
  46.  
  47.  
  48. <form enctype="multipart/form-data"  action="formularz.php"  method="post" accept="audio/mpeg">
  49. <table width="520" cellpadding="5" cellspacing="0">
  50. <tr ><hr><hr>
  51. <td width="150" class="left" >
  52.  <label >Imię </label>
  53. </td>
  54. <td class="right" >
  55.  <input type="text" size="20" name="imie"  value="" maxlength="100" maxsize="100" />
  56.  
  57. </td>
  58. </tr>
  59. <tr >
  60. <td width="150" class="left" >
  61.  <label >Nazwisko </label>
  62. </td>
  63. <td class="right" >
  64.  <input type="text" size="20" name="naziwsko"  value="" maxlength="100" maxsize="100" />
  65.  
  66. </td>
  67. </tr>
  68. <tr >
  69. <td width="150" class="left" >
  70.  <label >E-mail </label>
  71. </td>
  72. <td class="right" >
  73.  <input type="text" size="20" name="email"  value="" maxlength="100" maxsize="100" />
  74.  
  75. </td>
  76. </tr>
  77. <tr >
  78. <td width="150" class="left" >
  79.  <label >Numer gadu-gadu </label>
  80. </td>
  81. <td class="right" >
  82.  <input type="text" size="20" name="gg"  value="" maxlength="10" maxsize="10" />
  83.  
  84. </td>
  85. </tr>
  86. <tr >
  87. <td width="150" class="left" >
  88.  <label >Pseudonim </label>
  89. </td>
  90. <td class="right" >
  91.  <input type="text" size="20" name="pseudonim"  value="" maxlength="100" maxsize="100" />
  92.  
  93. </td>
  94. </tr>
  95. <tr >
  96. <td width="150" class="left" >
  97.  <label >Ulica/Plac/Aleja </label>
  98. </td>
  99. <td class="right" >
  100.  <input type="text" size="20" name="ulica"  value="" maxlength="100" maxsize="100" />
  101.  
  102. </td>
  103. </tr>
  104. <tr >
  105. <td width="150" class="left" >
  106.  <label >Miasto </label>
  107. </td>
  108. <td class="right" >
  109.  <input type="text" size="20" name="miasto"  value="" id="q4"    maxlength="100" maxsize="100" />
  110.  
  111. </td>
  112. </tr>
  113. <tr >
  114. <td width="150" class="left"  valign="top" >
  115.  <label>Wiek </label>
  116. </td>
  117. <td class="right">
  118.  <select class="other" name="wiek">
  119.  
  120. <option></option>
  121.   <option>16</option>
  122.   <option>17</option>
  123.   <option>18</option>
  124.   <option>19</option>
  125.   <option>20</option>
  126.  
  127.   <option>21</option>
  128.   <option>22</option>
  129.   <option>23</option>
  130.   <option>24</option>
  131.   <option>25</option>
  132.   <option>26</option>
  133.  
  134.   <option>27</option>
  135.   <option>28+</option>
  136.  </select>
  137. </td>
  138. </tr>
  139. <tr >
  140. <td width="150" class="left" >
  141.    <label>Próbka głosu, w któłrej mółwisz, czemu chcesz u nas grać? </label>
  142.  
  143. </td>
  144. <td class="right">
  145.    <input type="file"  size="20" name="probkaglosu" />
  146. </td>
  147. </tr>
  148. <tr >
  149. <td width="150" class="left" valign="top"  >
  150.  <label>Dodatkowe uwagi</label>
  151.  
  152. </td>
  153. <td class="right" >
  154.  <textarea cols="35" rows="10" name="uwagi"  id="q7" ></textarea>
  155. </td>
  156. </tr>
  157. <tr >
  158. <td width="150" class="left" >&nbsp;
  159.  
  160. </td>
  161.  
  162. <td class="right">
  163. <input type="submit" value="Submit" />
  164. </td>
  165. </tr>
  166. </table>
  167. </div>
  168. </div>
  169. </form>

1. Próbka się nie dodaje, dlaczego ?
2. Jak dać probka-1, probka-2 ?
3. Na mailu mam coś takiego: Próbka głosu: ID3 ;/.
Marcuez
Zainspirowałeś mnie tym problemem i jestem w stanie zrobić gotowca. GG - 10466282.
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.