Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wysyłanie zdjęcia - błąd w przypadku braku zdjecia
ebate
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
zaq1991zaq
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 29.10.2011

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


A co jest w magicznej linijce 37? Pokaz plik register.php
Go to the top of the page
+Quote Post
ebate
post
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

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


  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. ?>
Go to the top of the page
+Quote Post
zaq1991zaq
post
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 29.10.2011

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


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ą.


Ten post edytował zaq1991zaq 30.10.2011, 17:54:50
Go to the top of the page
+Quote Post
ebate
post
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

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


Dodałem @ i jest wszystko ok.

Dziekuję za pomoc.
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: 21.09.2025 - 22:31