Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Polaczenie z baza danych, troche nietypowy problem
-Gość_MK-
post 8.02.2005, 18:04:44
Post #1





Goście







Mam formulaz ktory przekazuje do pliku nazwijmy go polacz.php cztery zmienne:
$host, $login, $haslo, $nazwa.
Plik polacz.php wyglada nastepujaco:
Kod
$file=fopen("dane.dat","w");
fwrite($file,$host."\n");
fwrite($file,$nazwa."\n");
fwrite($file,$login."\n");
fwrite($file,$haslo);
fclose($file);

$file=fopen("dane.dat","r");
$host1=fgets($file);
$nazwa1=fgets($file);
$login1=fgets($file);
$haslo1=fgets($file);
fclose($file);

$db=mysql_connect($host1,$login1,$haslo1);
mysql_select_db($nazwa1,$db);


I tu pojawi sie problem. Przegladarka wywala nastepujacy komunikat:
Kod
Warning: mysql_connect(): Unknown MySQL Server Host 'localhost ' (11001) in c:\usr\krasnal\www\moje\funkcje.php on line 18

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\usr\krasnal\www\moje\funkcje.php on line 19

Wiem ze ten problem mozna rozwiazac na kilka innych sposobow. Mnie interesuje dlaczego w tym przypadku nie nastepuje nawiazanie polaczenia z baza danych.
Gdy pozbede sie zapisu i odczytu z pliku czyli plik pokaz.php wygladal by:
Kod
$db=mysql_connect($host,$login,$haslo);
mysql_select_db($nazwa,$db);

Wszystko dziala OK. Interesuje mnie dlaczego gdy pod zmienne wykozystywane w funkcji mysql_connect podstawiam jakis ciag znakow z pliku to nie jest on traktowany tak samo jak gdyby zmiennym wartosci zostaly przypisane recznie.
Go to the top of the page
+Quote Post
dr_bonzo
post 8.02.2005, 18:09:10
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


No przeciez pisze:
Unknown MySQL Server Host 'localhost '
biggrin.gif tam jest jeszcze spacja! ktorej byc nie powinno.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
mdco
post 8.02.2005, 18:10:05
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

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


Po fclose($file) sprawdź co masz w zmiennej $host1:
  1. <?php
  2.  
  3. echo $host1;
  4.  
  5. ?>


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
-Guest-
post 8.02.2005, 19:39:38
Post #4





Goście







dr_bonzo: tam nie ma zadnej spacji
mdco: we wszystkich zmiennych dane sie zgadzaja
Go to the top of the page
+Quote Post
crash
post 8.02.2005, 19:46:43
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Widać wyraźnie spację, spróbuj podać normalnie adres do połączenia.


--------------------
Go to the top of the page
+Quote Post
sf
post 8.02.2005, 20:03:35
Post #6





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


  1. <?php
  2. $host1=trim(fgets($file));
  3. // do wszystkich elementow tak zrob
  4. ?>


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
-Guest-
post 8.02.2005, 20:28:12
Post #7





Goście







Nie wiedzialem ze znak \n jest odczytywany jako spacja, sugerowalem sie zastosowaniem tego znaku z c++ gdzie osnacza on nowa linie. Dzieki wszystkim za pomoc.
Go to the top of the page
+Quote Post
sf
post 8.02.2005, 20:37:38
Post #8





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Nie jest odczytywany jako spacja lecz jako ten znak. Co powoduje, że są błędy podczas połączenia. Np. hasło jest takie "tajnehaslo\n" i ten ostatni znak też jest brany pod uwagę.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
dr_bonzo
post 8.02.2005, 20:52:54
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


file() wlasnie nie pozbywa sie znakow \n. A ze wygladal jak spacja... no coz.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
crash
post 8.02.2005, 21:39:18
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Cytat(dr_bonzo)
file() wlasnie nie pozbywa sie znakow \n. A ze wygladal jak spacja... no coz.
No i to by się zgadzało gdyby była tu użyta funkcja file(), ale są tylko fgets() no i niby funkcje ten powinny pobierać całą linię minus 1 bajt (np. \n) ale coś się nie udało...


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 8.02.2005, 21:48:19
Post #11





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Moj blad -- nie ma tam uzytej funkcji file() -- po prostu nie przyjrzalem sie dokladnie kodowi ($file).
Cytat
string fgets ( resource handle [, int length])
Returns a string of up to length - 1 bytes read from the file pointed to by handle. Reading ends when length - 1 bytes have been read, on a newline (which is included in the return value)

fgets() tez zwraca \n.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:12