Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 501 Method Not Implemented
Forum PHP.pl > Forum > PHP
kielek
Witam,

Mam dziwny problem, chyba jeden z dziwniejszych z jakimi się spotkałem...
Dodając wartość do bazy danych przez najzwyklejszy w świecie formularz na swojej stronie wszystko się wysypuje. Dzieje się to tylko w momencie gdy w polu podaje:
"jasność cd/m2"

Problem sprawia właśnie "cd/", serwer widząc coś takiego próbuje przejść chyba do innego katalogu, ale po pierwsze nie wiem czemu wyskakuje, że jest brak jakiejś metody, a po drugie nie wiem czemu to w ogóle wyskakuje.
Dane odbierane z posta są filtrowane przez funkcje htmlspecialchars() oraz addslashes()

Proszę o pomysły jak się z tym uporać.
Dzięki i pozdrawiam smile.gif
fander
A może byś podał skrypt który ci dodaje te informacje do bazy, z czego korzystasz, PDO czy zwykłego php_mysql ?
kielek
Zwykły mysql w php

  1. $name = addslashes(htmlspecialchars($_POST['name']));
  2. $id_group = intval($_POST['id_group']);
  3. $properties = addslashes(htmlspecialchars($_POST['properties']));
  4. $position = intval($_POST['position']);
  5.  
  6. $query = mysql_query("INSERT INTO ".DB_PREFIX."attributes (name, id_group, properties, position) VALUES ('".$name."', '".$id_group."', '".$properties."', '".$position."')");


Działa wszystko poza tym co zawiera "cd/"
fander
użyj: mysql_escape_string() na zmiennych


Poza tym $query powinno wyglądać tak
Kod
$query = mysql_query('INSERT INTO '.DB_PREFIX.'attributes (name, id_group, properties, position) VALUES ("'.$name.'", '.$id_group.', '.$properties.', '.$position.')');


$name jest stringiem
$id_group, $properties (nie wiem), $position powinny być typu int, ty natomiast w swoim zapytaniu wstawiasz string
kielek
Próbowałem też z mysql_escape_string, ale niestety nie podziałało.
Sprawdzałem też kiedy całość się sypie i nie sypie się przy wysyłaniu zapytania, nie sypie się też przy przypisywaniu wartości z posta do zmiennej $name, dzieje się to zaraz po wysłaniu formularza czyli to będzie coś serwerowego...

Jakieś dalsze pomysły?

Ps. co do samego zapytania - przerobione te jak i pozostałe smile.gif
kiler129
Użyj firefoxa i wtyczki Live HTTP Headers, wyślij formualrz i pokaż tutaj co zwróci po jego wysłaniu.
Kod 501 oznacza, że użyto złej metody czyli coś po za GET/POST/PUT itp.
kielek
Kod
http://****/index.php?site=attributes&mode=add

POST /index.php?site=attributes&mode=add HTTP/1.1
Host: ****
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://****/index.php?site=attributes&mode=add
Cookie: __utma=256857236.887506399.1284924800.1286888474.1287410227.18; __utmz=256857236.1284924800.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); last_viewed=260%2C1%2C4%2C3%2C6%2C7%2C8%2C5%2C; PHPSESSID=9eb3a5ab4a4e456b72436dfa67487813
Cache-Control: max-age=0
Content-Type: multipart/form-data; boundary=---------------------------199541875611840
Content-Length: 766
-----------------------------199541875611840
Content-Disposition: form-data; name="name"

jasność cd/m2
-----------------------------199541875611840
Content-Disposition: form-data; name="position"


-----------------------------199541875611840
Content-Disposition: form-data; name="id_group"

4
-----------------------------199541875611840
Content-Disposition: form-data; name="properties"


-----------------------------199541875611840
Content-Disposition: form-data; name="send"

Zapisz
-----------------------------199541875611840--

HTTP/1.1 501 Method Not Implemented
Date: Tue, 19 Oct 2010 00:04:05 GMT
Server: Apache
Allow: TRACE
Content-Length: 403
Connection: close
Content-Type: text/html; charset=iso-8859-1
----------------------------------------------------------


Domenę ja zagwiazdkowałem - serwer do testów i nie chce go upubliczniać.
Jeszcze raz tylko napiszę, że wszystko działa normalnie gdy wpisze cokolwiek innego niż coś co zawiera "cd/"
fander

Nagłówki wyglądają poprawnie, a pokaż jeszcze skrypt formularza

kielek
Formularz to też nic specjalnego...
Spróbuje skontaktować się z kimś z hostingu, może to coś od nich.

  1. <form action="" method="post" enctype="multipart/form-data">
  2. <div class="sub_content">
  3.  
  4. <table style="width: 100%;">
  5.  
  6. <tr><td class="left_td">Nazwa:</td><td class="right_content"><input type="text" name="name" class="title_input" /></td></tr>
  7. <tr><td class="left_td">Pozycja:</td><td class="right_content"><input type="text" name="position" /></td></tr>
  8. <tr><td class="left_td">Kategoria:</td><td class="right_content"><select name="id_group" class="title_input">
  9. {foreach from=$categories item=item}
  10. <option value="{$item.id_group}">{$item.name}</option>
  11. {/foreach}
  12. </select></td></tr>
  13. <tr><td class="left_td">Właściwości:</td><td class="right_content"><input type="text" name="properties" class="title_input" /></td></tr>
  14. <tr><td class="left_td" colspan="2">Zdefiniowane właściwości muszą być oddzielone średnikiem ( ; )</td></tr>
  15. </table><br /><br />
  16. <br /><input type="submit" name="send" value="Zapisz" class="button" style="width: 100%;" />
  17.  
  18. </div>
  19. </form>


Edit...
Serwer testowy stoi na az.pl, sprawdzałem teraz ten sam skrypt na innym serwerze i działa bez zarzutu, nie wysypuje się po wpisaniu "cd/" czyli jest to wina az...
fander

Najwidoczniej, bo u mnie na lokalu i serwerze serwery.pl normalnie wszystko wysyła...

A sprawdź jeszcze w logach dla domeny, czy tam nie ma jakichś dodatkowych informacji o błędach
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.