Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]Porównywarka zdjęć - problem
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
zelka20
Witam, poprałem ostatnio sobie skrypt porównywania zdjąć ( FACEMASH ) i mam problem.Cały skrypt polega na tym że na ekranie wyświetla się dwie fotki i ta w którą klikniemy dostaje lepszą ocenę. Owa ocena jest zapisywana w pliki .txt i problem polega na tym że ta ocena jest dopisywana dopiero gdy klikniemy w fotografię. Natomiast gdy dodam nową fotkę wyskakuje błąd że nie ma skąd poprać tej oceny. I tu bym miał do was małą prośbę abyście mi "podpowiedzieli" co i jak zmienić aby np. nowa fotka którą dodał miała początkową ocenę: np 0

Skrypt do pobrania http://vivaldi.ayz.pl/?page_id=4
ADeM
Sprawdź najpierw czy istnieje plik, jeśli nie, to zwróć 0.
ADeM
Przeanalizuj sobię kod linijka po linijce jak działa. Zastanów się dlaczego sypie błędami i gdzie sprawdzać istnienie pliku (jak wcześniej napisałem).
Nie jest tego dużo i nie jest to trudny do zrozumienia kod.
nospor
To nie pisz, żebyśmy ci "podpowiedzieli" tyko nazwij rzecz od razu po imieniu: chcesz, żebyśmy za Ciebie to poprawili. Oszczędziłbyś w ten sposób pisania pare postów.

Przenoszę więc na giełdę ofert.

zelka20
Tak chciałbym abyście mi poprawili

A powiedział by ktoś gdzie co muszę pozmieniać żeby między tymi zdjęciami dać napis: np. VS

Bitwa.php
  1. <?php
  2.  
  3. class bitwa {
  4.  
  5. var $zdjecie1;
  6. var $zdjecie2;
  7.  
  8. public function pokaz_bitwe() {
  9.  
  10. $katalog = 'images';
  11. $n=0;
  12.  
  13. if($d = opendir($katalog)){
  14.  
  15. while (($file = readdir($d)) == true) {
  16.  
  17. if(stristr($file, '.jpg')){
  18. $n++;
  19. $img_los[$n] = $file;
  20. $img_los2[$n] = $file;
  21. }
  22. }
  23. }
  24.  
  25. if(!empty($img_los) && !empty($img_los2)) {
  26. $img_poz = array_rand($img_los);
  27. $img_poz2 = array_rand($img_los2);
  28.  
  29. if($img_poz != $img_poz2) {
  30.  
  31. $this->zdjecie1 = $img_los[$img_poz];
  32. $this->zdjecie2 = $img_los2[$img_poz2];
  33.  
  34. echo "<td align=\"right\"><a href=\"rate.php?wygrana=$img_los[$img_poz]&przegrana=$img_los2[$img_poz2]\"><img style=\"background: white; border:1px solid grey;border-bottom:1px solid grey;padding:5px;\" src=\"$katalog/$img_los[$img_poz]\"></a></td>";
  35. echo "<td><a href=\"rate.php?wygrana=$img_los2[$img_poz2]&przegrana=$img_los[$img_poz]\"><img style=\"background: white; border:1px solid grey;border-bottom:1px solid grey;padding:5px;\" src=\"$katalog/$img_los2[$img_poz2]\"></a></td>";
  36. } else {
  37. header('Location: index.php');
  38. }
  39. }
  40. }
  41. public function top() {
  42. $dir = dir('ranking');
  43. while($files = $dir->read()) {
  44. if($files != '.' && $files != '..') {
  45.  
  46. $fp = fopen("ranking/".$files, "r");
  47. $stareDane = fread($fp, filesize("ranking/".$files));
  48. fclose($fp);
  49. $nowefiles = substr($files, 0, -4);
  50. $tablica[$nowefiles] = $stareDane;
  51. }
  52.  
  53. }
  54. arsort($tablica);
  55. $liczba_pozycji = count($tablica);
  56. $top = array_slice($tablica, 0, 10);
  57.  
  58. foreach($top as $klucz => $wartosc) {
  59. echo "<img style=\"background: white; border:1px solid grey;border-bottom:1px solid grey;padding:3px; margin: 1px;\" src=\"images/$klucz\" width=\"70\" title=\"Ocena: $wartosc\"/>";
  60. }
  61. }
  62. public function ranking($nazwa_pliku) {
  63. $fp = fopen("ranking/$nazwa_pliku.txt", "r");
  64. $stareDane = fread($fp, filesize("ranking/$nazwa_pliku.txt"));
  65. return $stareDane;
  66. fclose($fp);
  67. }
  68. }
  69.  
  70. ?>




rate.php
  1. <?php
  2.  
  3. if(isset($_GET['wygrana']) && isset($_GET['przegrana'])) {
  4. $wygrany = $_GET['wygrana'];
  5. $przegrany = $_GET['przegrana'];
  6.  
  7. function wygrana($wynik) {
  8. $fp = fopen("ranking/" . $wynik . ".txt", "r");
  9. $stareDane = fread($fp, filesize("ranking/" . $wynik . ".txt"));
  10. $noweDane = $stareDane + 10;
  11. $fp = fopen("ranking/" . $wynik . ".txt", "w");
  12. fputs($fp, $noweDane);
  13. fclose($fp);
  14. }
  15.  
  16. function przegrana($wynik2) {
  17. $fp = fopen("ranking/" . $wynik2 . ".txt", "r");
  18. $stareDane = fread($fp, filesize("ranking/" . $wynik2 . ".txt"));
  19. $noweDane = $stareDane + 1;
  20. $fp = fopen("ranking/" . $wynik2 . ".txt", "w");
  21. fputs($fp, $noweDane);
  22. fclose($fp);
  23. }
  24.  
  25. wygrana($wygrany);
  26. przegrana($przegrany);
  27.  
  28. header("Location: index.php");
  29. }
  30.  
  31. ?>


index.php
  1. <?php
  2.  
  3. include('bitwa.php');
  4. $bitwa = new bitwa();
  5.  
  6. ?>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  12. <meta name="generator" content="PSPad editor, www.pspad.com">
  13. <meta name="Author" content="Hubert Pasierb">
  14.  
  15. <title>FaceMash</title>
  16.  
  17. <link rel="stylesheet" type="text/css" href="style.css" />
  18. </head>
  19. <body>
  20.  
  21. <center>
  22. <table style="margin-top: 30px">
  23. <tr> <?php $bitwa->pokaz_bitwe(); ?> </tr>
  24. <tr>
  25. <td align="center"><b>Ocena: <?php echo $bitwa->ranking($bitwa->zdjecie1); ?></b></td>
  26. <td align="center"><b>Ocena: <?php echo $bitwa->ranking($bitwa->zdjecie2); ?></b></td>
  27. </tr>
  28. <tr>
  29. <td colspan="2" align="center"><?php $bitwa->top(); ?></td>
  30. </tr>
  31. <tr>
  32. <td align="center" colspan="2">&copy; 2011 Hubert Pasierb</td>
  33. </tr>
  34. </table>
  35. </center>
  36.  
  37. </body>
  38. </html>
  39. <?php
  40.  
  41.  
  42. ?>
skowron-line
  1. <?php
  2. ob_start();
  3.  
  4. include('bitwa.php');
  5. $bitwa = new bitwa();
  6.  
  7. ?>
  8.  
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  10. <head>
  11. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  12. <meta name="generator" content="PSPad editor, www.pspad.com">
  13. <meta name="Author" content="Hubert Pasierb">
  14.  
  15. <title>FaceMash</title>
  16.  
  17. <link rel="stylesheet" type="text/css" href="style.css" />
  18. </head>
  19. <body>
  20.  
  21. <table style="margin-top: 30px">
  22. <tr> <?php $bitwa->pokaz_bitwe(); ?> </tr>
  23. <tr>
  24. <td align="center"><b>Ocena: <?php echo $bitwa->ranking($bitwa->zdjecie1); ?></b></td>
  25. <td>VS</td>
  26. <td align="center"><b>Ocena: <?php echo $bitwa->ranking($bitwa->zdjecie2); ?></b></td>
  27. </tr>
  28. <tr>
  29. <td colspan="3" align="center"><?php $bitwa->top(); ?></td>
  30. </tr>
  31. <tr>
  32. <td align="center" colspan="3">&copy; 2011 Hubert Pasierb</td>
  33. </tr>
  34. </table>
  35. </center>
  36.  
  37. </body>
  38. </html>
  39. <?php
  40.  
  41. ob_end_flush();
  42.  
  43. ?>
zelka20
Nie o to chodzi, gdy tu się wstawi to wyświetla trzecią kolumnę pomiędzy ocenami, a mi chodzi o to aby było pomiędzy zdjęciami.
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.