Witam, mam problem z funkcją mod_rewrite na mojej stronie.


Przykładowy adres ma następujący kształt:

http://gupie.pl/share.php?mode=kawaly&voted=1&id=76
http://gupie.pl/share.php?mode=kawaly&voted=2&id=76

gdzie voted = 1 oznacza głos na +, a voted = 2 oznacza głos na -

Wartości te są stałe i są tylko te dwie. Natomiast wartość id jest dynamiczna
Z tym że share może być również w zależności od podstrony różne występuję też trzy inne nazwy (casting/swiezynki/najgupsze).

Stworzyłem takie reguły:
  1. RewriteRule ^plus(^-]+).html$ casting.php?mode=kawaly&voted=1&id=$1 [L]
  2. RewriteRule ^minus([^-]+).html$ casting.php?mode=kawaly&voted=2&id=$ [L]



Wszystko działa tylko jeden jedno małe ale - głosowanie nie zapisuję wyników, cała reszta jest poprawna.


Skrypt odpowiedzialny za głosowanie:

  1. //We only run this code if the user has just clicked a voting link
  2. if ( $_GET['mode']=="kawaly")
  3. {
  4. $voted = $_GET['voted'];
  5. $id= $_GET['id'];
  6.  
  7.  
  8. //If the user has already voted on the particular thing, we do not allow them to vote again $cookie = "Mysite$id";
  9. $cookie = "Mysite$id";
  10. if(isset($_COOKIE[$cookie]))
  11. {
  12. Echo "Zgupiałeś? Raz wystarczy :)";
  13. }
  14.  
  15. //Otherwise, we set a cooking telling us they have now voted
  16. else
  17. {
  18. $month = 2592000 + time();
  19. setcookie($cookie, 'Voted', $month);
  20.  
  21. //Then we update the voting information by adding 1 to the total votes and adding their vote (1,2,3,etc) to the total rating
  22.  
  23.  
  24.  
  25. if($_GET['voted'] == '1')
  26. mysql_query('UPDATE `kawaly` SET `plus`=`plus`+1 WHERE `id`='.mysql_real_escape_string($_GET['id']).'');
  27. if($_GET['voted'] == '2')
  28. mysql_query('UPDATE `kawaly` SET `plus`=`plus`-1 WHERE `id`='.mysql_real_escape_string($_GET['id']).'');
  29.  
  30. Echo "Dzięki za głos!";
  31. }
  32. }


Wcześniej głosowanie działało bez zarzutu ale po wprowadzeniu prostych urli niestety przestało.

Mam nadzieje że mi ktoś pomoże smile.gif

Poradziłem sobie z tamtymi problemami niestety pojawił się nowy z tym związany..

Problem, rozwiązany.