Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> xmlhttprequest i problem wysłania danych, Czemu skrypt php wywoływany w tle nie widzi zmiennych?
Kwazi
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2006

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


Witam,
Być może temat był już wałkowany, z góry przepraszam

Mianowicie mam kłopot z którym się już jakiś czas męczę.
Od razu mówię że nie używam żadnych bibliotek AJAXa, a sam tworzę instrukcje xmlhttprequest, kwestia przyzwyczajenia
Kłopot polega na tym że kiedy tworzę sobie obiekt xmlhttprequest i metodą post lub get przesyłam zmienne do skryptu php w tle, to ten wogóle ich nie odczytuje...

Co dziwne na localhoscie wszystko śmiga jak marzenie, a po wgraniu na serwer już nie, choć kiedyś na tym serwerze chodziło wszystko bez zarzutu (tak kojarze).

Skrypt JS z wywołaniem żądania
  1. if(navigator.appName == "Microsoft Internet Explorer") http = new ActiveXObject("Microsoft.XMLHTTP");
  2. else http = new XMLHttpRequest();
  3.  
  4. function deleteFile(myFileName){
  5.  
  6. var ret;
  7. http.abort();
  8. http.open("POST","Ajax/port_delfile.php?tmpFile="+myFileName, true);
  9. http.onreadystatechange=function() {
  10.  
  11. if(http.readyState == 4) {
  12. ret = http.responseText;
  13. alert(ret);
  14. }
  15. }
  16.  
  17. http.send(1);
  18.  
  19. }



Prosty skrypt usuwający plik
  1. <?php
  2. unlink($tmpFile);
  3. echo "moj katalog: $tmpFile";
  4. ?>



Oczywiście sam unlink wyrzuca błąd w tle za pomocą alerta bo nie może usunąć pustego pliku.
Z kolei alert(ret) zwraca alert ("moj katalog: "), a powinien zwrócić np: alert ("moj katalog: data_user/example.jpg")

Czytałem trochę tu i tu na necie, gdzieś tam pisali o jakiś odwołaniach do domen,
ale wiele mi to nie pomogło. Nie wiem gdzie leży problem, być może trzeba mi to łopatologicznie wyjaśnić

Gdzie popełniam błąd? Czemu na lokalu chodz oki?
Jest to kwestia serwera?(chyba nie), źle wywołuję metodę open?

Pozdrawiam,
dziękuje
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kwazi
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2006

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


hej,
dzięki za reakcje, co do register_globals to dyrektywa ustawiona jest na on, więc nie ma znaczenia,
czy użyje tablicy superglobalnej $_POST czy nie, w zasadzie jasna sprawa że powinno tam być $_POST

Co do nagłówka, to już dokładałem
  1. http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

nie pomógł, ale żeby się upewnić, sprawdziłem raz jeszcze


Wykonałem kolejnych kilka testów i zaobserwowałem ciekawą rzecz:
Inna funkcja korzystająca z xmlhttprequest, sprawdza czy e-mail jest w bazie
  1. function checkEmail(email){
  2.  
  3. var ret;
  4. http.abort();
  5. http.open("POST","Ajax/reg_checkemail.php?tmpMail="+email, true);
  6. http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  7. http.onreadystatechange=function() {
  8.  
  9. if(http.readyState == 4) {
  10. ret = http.responseText;
  11. if(ret!="") {
  12. existEmail=true;
  13. }
  14. else {
  15.  
  16. existEmail=false;
  17. }
  18.  
  19. }
  20. }
  21.  
  22. http.send(1);
  23. }



po stronie serwera skrypt php
  1. <?
  2. //------ Połączenie z bazą -------------------------------------------------------------------------------------------------------------
  3. require ("../Bin/db_class.php");
  4. $dbClass=new dbClass();
  5. $dbClass->dblogon();
  6.  
  7. //-----------------------------------------------------------------------------------------------------------------------------------------
  8. $returnEmail=$dbClass->getValuleFromTable("users", "email", "where lower(email)='".strtolower($_POST['tmpMail'])."'");
  9. echo "$returnEmail";
  10. //-----------------------------------------------------------------------------------------------------------------------------------------
  11. ?>


I chyba faktycznie z tymi domenami jest coś na rzeczy.
bo gdy wywołuje adres stronki z rodzimej domeny serwera: http://ottargo.altaynet.masternet.pl/
to działa ok, i jeśli adres jest już w bazie to zwraca błąd.

Natomiast jeśli stronkę wywołam z adresu http://www.ottargo.pl/ to już jest lipa...
Zrobiłem też prosty przykład z jQuery i to samo...
Ciekawe? Ma ktoś jakieś wyjaśnienia?

Pozdrawiam,
dziękuje za sugestie

Ten post edytował Kwazi 10.07.2009, 07:42:27
Go to the top of the page
+Quote Post

Posty w temacie


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: 28.12.2025 - 16:28