Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Warunki
Forum PHP.pl > Forum > Przedszkole
Lethys
Napisalem skrypt uploadu avatarow:

  1. <?php
  2.  
  3. $_POST['plik'];
  4. $file_size = $_FILES['plik']['size'];
  5. $file_name = $_FILES['plik']['name'];
  6. $file_type = $_FILES['plik']['type'];
  7.  
  8.  
  9. if($file_size > 40000){
  10. echo "Plik ma zbyt duży rozmiar - maksymalny rozmiar to 40KB, twój plik ma $file_size bitów";
  11. }elseif($file_type != "image/gif" and $file_type != "image/jpg" and $file_type != "image/jpeg"){
  12. echo "Plik ma zły format. Dopuszczalny jest jpg oraz gif. Twój plik ma format $file_type";
  13. }else{
  14. $tmp_name = $_FILES["plik"]["tmp_name"];
  15. $name1 = $_FILES["plik"]["name"];
  16. $nazwa = rand(1, 999990);
  17. move_uploaded_file($tmp_name, "avatars/$nazwa.jpg");
  18. print "Avatar o danych ($file_size bitów, format $file_type) został poprawie wgrany.";
  19. mysql_query("update players set avatar='avatars/$nazwa.jpg' where id=$stat[id]");
  20. print "<br><br><center><img border=\"0\" src=\"$stat[avatar]\" width=\"80\" height=\"80\"></center>";
  21.  
  22.  
  23.  
  24. }
  25.  
  26.  
  27. ?>


Wszystko działa ale problem jest taki że nawet jak ktoś nie ma avataru i po prostu wchodzi w ten skrypt aby wgrac to wywala mu :
Cytat
echo "Plik ma zły format. Dopuszczalny jest jpg oraz gif. Twój plik ma format $file_type";


Jak moge zedytowac tak warunki zeby wiadomosci pojawialy sie tylko przy juz wgranym pliku ?
wookieb
http://pl2.php.net/is_uploaded_file
gorden
brakuje is_uploaded_file
tak to spróbuj może tak (linia 11 w Twoim kodzie)
  1. }elseif($file_type != "image/gif" or $file_type != "image/jpg" or $file_type != "image/jpeg"){
Lethys
ok teraz mi działa z tym is_uploaded_file.

Ale mam jeszcze jeden problem z warunkami.

Mam skrypt odpisywania na wiadomosci :

  1. <?php
  2.  
  3. $czytaj = mysql_fetch_array(mysql_query("select * from poczta where id='$czytaj'"));
  4. $stat = mysql_fetch_array(mysql_query("select * from players where user='$user' and pass='$pass'"));
  5. ?></h2><br>
  6.  
  7. <div class="entry">
  8. <?php
  9. if($czytaj[ownerid] != $stat[id]){
  10. print "Nie posiadasz takiego listu";
  11. print "<br><br><a href=poczta.php?view=sprawdz>wróć do poczty</a>";
  12. }else{
  13.  
  14.  
  15. <form method=post action=odpisz.php?action=wysylanie>
  16.  
  17. <br>ID odbiorcy:<br> <input type=\"text\" name=\"odbiorca\" value=\"$czytaj[senderid]\" readonly=\"readonly\">
  18. <br>Temat:<br> <input type=\"text\" name=\"temat\" value=\"Odp\">
  19. <br>List: <br><textarea name=\"list\" cols=\"50\" rows=\"10\"></textarea>
  20.  
  21.  
  22. <br><br><input type=\"submit\" value=\"Odpisz\" name=\"submit\">
  23. ";
  24.  
  25. }
  26. if ($action == wysylanie) {
  27. if (!$odbiorca || !$temat || !$list) {
  28. print "Musisz wypełnić wszystkie pola.";
  29. }
  30. if (!$odbiorca == $stat[id]) {
  31. print "Nie możesz wysłać listu do siebie.";
  32. }
  33. $dupe2 = mysql_num_rows(mysql_query("select * from players where id='$odbiorca'"));
  34. if ($dupe2 = 0) {
  35. print "Nie ma gracza o takim ID.";
  36. }
  37. $data = date("d.m.y");
  38. $sender = $stat[user];
  39. $senderid = $stat[id];
  40. mysql_query("insert into poczta (ownerid, subject, body, sender, senderid, data) values('$odbiorca','$temat','$list','$sender','$senderid', '$data')") or die("Nie można wysłać");
  41.  
  42. print "List został wysłany.";
  43. }
  44.  
  45. print "<br><br><a href=czytaj.php?czytaj=$czytaj[id]>wróć do listu</a> | <a href=poczta.php?view=sprawdz>wróć do poczty</a>";
  46.  
  47.  
  48.  
  49.  
  50.  
  51. ?>


Oczywiscie skrypt dziala ale po odpisaniu na jakis list wyskakuje nagle wiadomosc z warunku :

Cytat
print "Nie posiadasz takiego listu";


Jak w tym przypadku temu zaradzić ?
Kasat
  1. print "List został wysłany.";


daj po tym die();

i spr.
Lethys
Sprawdziłem i nadal wyskakuje ten górny warunek :/

A musi on być żeby ni ebyło tak że ktoś sobie przegląda nie swoje listy bądź odpisuje na nie swoje.
Kasat
może masz źle coś napisane w tym warunku? nazwę pola w bazie?
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.