Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wysyłanie zdjęcia - błąd w przypadku braku zdjecia
Forum PHP.pl > Forum > Przedszkole
ebate
Wysyłając plik przy rejestracji jest wszystko ok, lecz problem jest gdy nic nie wysyłam. A mianowicie, chce zrobić tak, aby wyskakiwał błąd, jeśli nie ma pliku wysłanego tak jak przy braku loginu mam : Wpisz swój login. Problemem nie jest to, ze nie wiem jak to zrobić, lecz część kodu, która wysyła plik.

Oto części skryptu odpowiedzialne za upload pliku:

  1. $fileData = pathinfo($_FILES['pliczek']['name']); // to jest line 37
  2.  
  3. $filename = $konto.'.'.$fileData['extension'];
  4.  
  5. move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$filename);
  6.  
  7. $name = 'pliki/'.$filename;
  8.  
  9. (...)
  10.  
  11. if(empty($errors))
  12.  
  13. {
  14.  
  15. $zapytanie="INSERT INTO user (login,password,imie,drugie_imie,nazwisko,email,miasto,plec,data_urodzenia,n
    umer_telefonu,numer_gg,sciezka) VALUES('$konto','$password','$imie','$drugie_imie','$nazwisko','$email','$miasto','$plec','$data_urodzenia','$numer_telefonu','$numer_gg','$name')"
    ;
  16.  
  17. mysql_query($zapytanie) or die("Wystąpił błąd" );
  18.  
  19. echo('Konto '.$konto.' zostalo utworzone. Kliknij <a href=index.php>tutaj</a>, aby przejść do strony głównej.');
  20.  
  21. }
  22.  
  23. else
  24.  
  25. {
  26.  
  27. die(implode('<br>', $errors));
  28.  
  29. }

  1. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  2.  
  3. <strong>Wybierz swoje zdjęcie:</strong><br>
  4.  
  5. <input type="file" name="pliczek" size="40" /><br>
  6.  
  7. <b>Oświadczam iż zaakceptowałem regulamin</b>
  8.  
  9. <input type="checkbox" id="reg" onclick="regulamin()" /><br />
  10.  
  11. <input type="submit" name="submit" value="Rejestracja" id="dalej" disabled="disabled" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" />


Rzecz w tym, że przy takim kodzie przy braku załączonego pliku powinno rejestrować użytkownika jednocześnie nie wysyłając żadnego pliku (gdyż nie mam żadnego IFa). Ten kod owszem rejestruje użytkownika, lecz przy okazji wyrzuca błąd następującej treści:

Notice: Undefined index: extension in C:\xampp\htdocs\PIOTR\register.php on line 37

Dodając IFy czy plik został wysłany lub czy plik został załączony bez problemu wyskakują komunikaty, lecz niestety obok tych komunikatów wyskakuje wyżej przedstawiony błąd.

Wie ktoś może co jest nie tak?
zaq1991zaq
A co jest w magicznej linijce 37? Pokaz plik register.php
ebate
  1. $fileData = pathinfo($_FILES['pliczek']['name']); // to jest line 37


Cały plik:
  1. <?php
  2.  
  3. require('conn.php');
  4.  
  5. if(isset($_POST['submit']))
  6.  
  7. {
  8.  
  9. $konto = mysql_real_escape_string (trim($_POST['konto']));
  10.  
  11. $password = sha1(mysql_real_escape_string (trim($_POST['password'])));
  12.  
  13. $imie = mysql_real_escape_string (trim($_POST['imie']));
  14.  
  15. $drugie_imie = mysql_real_escape_string (trim($_POST['drugie_imie']));
  16.  
  17. $nazwisko = mysql_real_escape_string (trim($_POST['nazwisko']));
  18.  
  19. $email = mysql_real_escape_string (trim($_POST['email']));
  20.  
  21. $miasto = mysql_real_escape_string (trim($_POST['miasto']));
  22.  
  23. $plec = mysql_real_escape_string (trim($_POST['plec']));
  24.  
  25. $data_urodzenia = date($_POST['data_urodzenia']['rok'].'.'.$_POST['data_urodzenia']['miesiac'].'.'.$_POST['data_urodzenia']['dzien']);
  26.  
  27. $numer_telefonu = mysql_real_escape_string (trim($_POST['numer_telefonu']));
  28.  
  29. $numer_gg = mysql_real_escape_string (trim($_POST['numer_gg']));
  30.  
  31. $ile =mysql_query("SELECT * FROM `user` WHERE login = '$konto'");
  32.  
  33. $ile = mysql_num_rows($ile);
  34.  
  35. $fileData = pathinfo($_FILES['pliczek']['name']);
  36.  
  37. $filename = $konto.'.'.$fileData['extension'];
  38.  
  39. move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$filename);
  40.  
  41. $name = 'pliki/'.$filename;
  42.  
  43.  
  44.  
  45. $errors = array();
  46.  
  47. if($ile!=0)
  48.  
  49. {
  50.  
  51. $errors[] = 'Taki użytkownik już istnieje. Kliknij <a href=register.php>tutaj</a>, aby spróbować ponownie.';
  52.  
  53. }
  54.  
  55. if($_POST['password']!=$_POST['password2'])
  56.  
  57. {
  58.  
  59. $errors[] = 'Podane hasła nie zgadzają się ze sobą. Kliknij <a href=register.php>tutaj</a>, aby spróbować ponownie.';
  60.  
  61. }
  62.  
  63. if(empty($_POST['konto']))
  64.  
  65. {
  66.  
  67. $errors[] = 'Musisz wpisać swój login.';
  68.  
  69. }
  70.  
  71. if(empty($_POST['password']))
  72.  
  73. {
  74.  
  75. $errors[] = 'Musisz wpisać swóje hasło.';
  76.  
  77. }
  78.  
  79. if(empty($_POST['imie']))
  80.  
  81. {
  82.  
  83. $errors[] = 'Musisz wpisać swóje imię.';
  84.  
  85. }
  86.  
  87. if(empty($_POST['plec']))
  88.  
  89. {
  90.  
  91. $errors[] = 'Musisz wybrać swoją płeć.';
  92.  
  93. }
  94.  
  95.  
  96. if(empty($errors))
  97.  
  98. {
  99.  
  100. $zapytanie="INSERT INTO user (login,password,imie,drugie_imie,nazwisko,email,miasto,plec,data_urodzenia,n
    umer_telefonu,numer_gg,sciezka) VALUES('$konto','$password','$imie','$drugie_imie','$nazwisko','$email','$miasto','$plec','$data_urodzenia','$numer_telefonu','$numer_gg','$name')"
    ;
  101.  
  102. mysql_query($zapytanie) or die("Wystąpił błąd" );
  103.  
  104. echo('Konto '.$konto.' zostalo utworzone. Kliknij <a href=index.php>tutaj</a>, aby przejść do strony głównej.');
  105.  
  106. }
  107.  
  108. else
  109.  
  110. {
  111.  
  112. die(implode('<br>', $errors));
  113.  
  114. }
  115.  
  116. }
  117.  
  118. else
  119.  
  120. {
  121.  
  122. ?>
  123.  
  124. <html>
  125.  
  126. <body>
  127.  
  128. <h1>Rejestracja</h1>
  129.  
  130. <form action="register.php" method="post" enctype="multipart/form-data">
  131.  
  132. <strong>*Login:</strong><input name="konto" type="text" value="" /><br>
  133.  
  134. <strong>*Hasło:</strong><input name="password" type="password" value="" /><br>
  135.  
  136. <strong>*Powtorz hasło:</strong><input name="password2" type="password" value="" /><br>
  137.  
  138. <strong>*Imię:</strong><input name="imie" type="text" value="" /><br>
  139.  
  140. <strong>Drugie imię:</strong><input name="drugie_imie" type="text" value="" /><br>
  141.  
  142. <strong>Nazwisko:</strong><input name="nazwisko" type="text" value="" /><br>
  143.  
  144. <strong>Miasto:</strong><input name="miasto" type="text" value="" /><br>
  145.  
  146. <strong>*Płeć:</strong><select name="plec"><option value="Mężczyzna">Mężczyzna</option><option value="Kobieta">Kobieta</option></select><br>
  147.  
  148. <strong>E-mail:</strong><input name="email" type="text" value="" /><br>
  149.  
  150. <strong>Numer telefonu:</strong><input name="numer_telefonu" type="text" value="" /><br>
  151.  
  152. <strong>Numer Gadu-Gadu:</strong><input name="numer_gg" type="text" value="" /><br>
  153.  
  154. <strong>Data urodzenia:</strong><select name="data_urodzenia[dzien]"><?php for ($i=1; $i<=31; $i++){echo "<option value='$i'>$i</option>";}?></select> <select name="data_urodzenia[miesiac]"><?php for ($i=1; $i<=12; $i++){echo "<option value='$i'>$i</option>";}?></select> <select name="data_urodzenia[rok]"><?php for ($i=2011; $i>=1900; $i=$i-1){echo "<option value='$i'>$i</option>";} ?></select><br>
  155.  
  156. <script type="text/javascript">
  157. <!-- //
  158. function regulamin()
  159. {
  160. if(document.getElementById('reg').checked == true )
  161. {
  162. document.getElementById('dalej').disabled=false;
  163. }
  164. else
  165. {
  166. document.getElementById('dalej').disabled=true;
  167. }
  168. }
  169. // -->
  170. </script>
  171.  
  172. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  173.  
  174. <strong>Wybierz swoje zdjęcie:</strong><br>
  175.  
  176. <input type="file" name="pliczek" size="40" /><br>
  177.  
  178. <b>Oświadczam iż zaakceptowałem regulamin</b>
  179.  
  180. <input type="checkbox" id="reg" onclick="regulamin()" /><br />
  181.  
  182. <input type="submit" name="submit" value="Rejestracja" id="dalej" disabled="disabled" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" />
  183.  
  184. </form>
  185.  
  186. </body>
  187.  
  188. </html>
  189.  
  190. <?php
  191.  
  192. }
  193.  
  194. ?>
zaq1991zaq
Notice: Undefined index: extension in C:\xampp\htdocs\PIOTR\register.php on line 37
$filename = $konto.'.'.$fileData['extension'];
Bląd jasno mówi o co biega. Możesz, albo wyłączyć błędy notice, albo dodać @ przed zmienną.
ebate
Dodałem @ i jest wszystko ok.

Dziekuję za pomoc.
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.