Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED][PHP/MySQL] mysql_connect() i hasło z pliku
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW
View previous topic :: View next topic  
Author Message
Poe
Bodhisattva
Bodhisattva


Joined: 03 Apr 2004
Posts: 2155
Location: Mysłowice/Lublin, Poland

PostPosted: Fri Jun 08, 2007 5:40 pm    Post subject: [SOLVED][PHP/MySQL] mysql_connect() i hasło z pliku Reply with quote

Hej. musze stworzyc prace z informatyki z wykorzystaniem php i mysql (musze zbudowac strone i musze w niej poupychac jak najwiecej funkcji, ktorych uzywalismy na lekcjach). no i na sile próbuje dodac pare skryptow, ot tak, zeby nie bylo nizszej oceny. i teraz tak. jest funkcja mysql_connect(host,user,passwd); gdy podam to w takiej wersji, łaczy sie z bazą. chciałbym jednak zrobic tak, by czytał hasło z pliku .pass (zadne szyfrowane, chociaz, gdyby sie dało, to prosze o namiary). chcialem to rozwiązac w ten sposób:
Code:

   $file = fopen(".pass","r");
   $pass=explode('\t',fgets($file,10));
   mysql_connect(localhost,user,$pass)
   or die("Brak połączenia z bazą. Przepraszamy");

albo
Code:

if(isset($_GET["file"],$_GET["pass"]))
   
   $_GET["file"] = fopen(".pass","r");
   $_GET["pass"] = explode('\t',fgets($_GET["file"],10));
   mysql_connect(localhost,root,$_GET["pass"])
   or die("Brak połączenia z bazą. Przepraszamy");

konczy się tym:
Code:

Warning: fgets(): supplied argument is not a valid stream resource in /home/poe/public_html/prj/buy.php on line 47

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in /home/poe/public_html/prj/buy.php on line 48
Brak połączenia z bazą. Przepraszamy

(jeszcze przed chwila nie wyswietlal sie warning dot. fgets().
czy ktos tu widzi jakis blad, albo wie jak to inaczej rozwiązac?

pozdrawiam
_________________
Hardware:HP Pavilion DV6875SE[C2DT5550@1.83GHz_3GB-DDR2_320GB-SATA_GF8400GS]
http://popularcoffee.blogspot.com - Popkulturowa Kawa
RLU#342333


Last edited by Poe on Fri Jun 08, 2007 8:10 pm; edited 1 time in total
Back to top
View user's profile Send private message
v7n
Guru
Guru


Joined: 24 Jan 2006
Posts: 352

PostPosted: Fri Jun 08, 2007 5:54 pm    Post subject: Reply with quote

moze sprawdz poprzez echo $pass co tak naprawde wyciagasz z tego pliku ( czy pod $pass kryje sie faktycznie to, co chcesz )
_________________
/~x86 /*-sources /oss /zsh /urxvt /vim /openbox /rox /xmms /Opera
Back to top
View user's profile Send private message
13Homer
Guru
Guru


Joined: 12 Jul 2005
Posts: 461

PostPosted: Fri Jun 08, 2007 6:06 pm    Post subject: Reply with quote

Jeśli mnie pamięć nie myli to explode tworzy tablicę dzieląc napis w miejscach, gdzie występuje pierwszy parametr (w tym wypadku '\t'). Czyli na $pass masz tablicę (być może jednoelementową), a nie hasło.

EDIT: Dodam jeszcze, że takei rzeczy najlepiej debugować za pomocą print_r a nie echo, bo pokazuje rekurencyjną postać zmiennej, jeśli jest to tablica, więc od razu widać, jakie wartości są w niej kluczami.
_________________
Lenovo ThinkPad R61 / C2D@2.6.24 / nVidia Quatro NVS 140M / 2 GB RAM
Back to top
View user's profile Send private message
Poe
Bodhisattva
Bodhisattva


Joined: 03 Apr 2004
Posts: 2155
Location: Mysłowice/Lublin, Poland

PostPosted: Fri Jun 08, 2007 6:44 pm    Post subject: Reply with quote

faktycznie, jest to tablica. po wywolaniu print_r($pass)
Code:

$file=fopen(".pass","r");
$pass=explode("\t",fgets($file,10));
print_r($pass);

dostaje wynik Array( [0] => zawartość_pliku_z_haslem). ok, to skoro tak, to czego innego uzyc do czytania z pliku?

------EDIT------

Ok, poradzilem sobie:

Code:

$file=fopen(".pass","r");
$pass=fgets($file,10);
mysql_connect(localhost,user,$pass)



a czy jest jakas mozliwosc szyfrowania tego ppliku, zeby nie dalo sie odczytac zawartosci go poprzez odpowiedni url?
_________________
Hardware:HP Pavilion DV6875SE[C2DT5550@1.83GHz_3GB-DDR2_320GB-SATA_GF8400GS]
http://popularcoffee.blogspot.com - Popkulturowa Kawa
RLU#342333
Back to top
View user's profile Send private message
c2p
Apprentice
Apprentice


Joined: 26 Mar 2005
Posts: 281
Location: Poland

PostPosted: Fri Jun 08, 2007 7:04 pm    Post subject: Reply with quote

Poe wrote:
a czy jest jakas mozliwosc szyfrowania tego ppliku, zeby nie dalo sie odczytac zawartosci go poprzez odpowiedni url?

Do .htaccess wrzucić:
Code:
<Files .pass> order allow,deny deny from all </Files>

_________________
LRU #389150, Kontakt
Back to top
View user's profile Send private message
13Homer
Guru
Guru


Joined: 12 Jul 2005
Posts: 461

PostPosted: Fri Jun 08, 2007 7:06 pm    Post subject: Reply with quote

Poe wrote:
a czy jest jakas mozliwosc szyfrowania tego ppliku

Pewnie jest, ale to chyba niepotrzebne, bo...
Quote:
, zeby nie dalo sie odczytac zawartosci go poprzez odpowiedni url?

...nie wiem po co się tak męczyć. Równie dobrze możesz to hasło wrzucić do osobnego skryptu (powinno wystarczyć tyle: "<? $haslo="<haslo>";?>" albo podobnie, plik może sie nazywać haslo.php) i go zaincludować (require_once "haslo.php"), wtedy dostaniesz to hasło w głównym skrypcie na zmiennej $haslo. Taki plik (.php) po wpisaniu adresu do niego zwróci pustą stronę, bo nigdzie tam nie jest nic wypisywane. Żeby dostać się do tego hasła, trzebaby obejrzeć kod tego skryptu (a przez WWW łatwe to nie jest). Ewentulane de-szyfrowanie możesz zrobić w pliku głównym (wykorzystując oczywiście wartość zmiennej $haslo).
Poza tym jest jeszcze coś takiego jak .htaccess (ale to już serwer WWW a nie php).
_________________
Lenovo ThinkPad R61 / C2D@2.6.24 / nVidia Quatro NVS 140M / 2 GB RAM
Back to top
View user's profile Send private message
Poe
Bodhisattva
Bodhisattva


Joined: 03 Apr 2004
Posts: 2155
Location: Mysłowice/Lublin, Poland

PostPosted: Fri Jun 08, 2007 8:10 pm    Post subject: Reply with quote

dziękuje za podrzucenie pomyslu z require_once(). działa ładnie.
@c2p, moze po drobnym zmodyfikowaniu by zadzialalo, ale w tej wersji w ogole nie mozna dostac sie do tej strony (error 500).
_________________
Hardware:HP Pavilion DV6875SE[C2DT5550@1.83GHz_3GB-DDR2_320GB-SATA_GF8400GS]
http://popularcoffee.blogspot.com - Popkulturowa Kawa
RLU#342333
Back to top
View user's profile Send private message
Poe
Bodhisattva
Bodhisattva


Joined: 03 Apr 2004
Posts: 2155
Location: Mysłowice/Lublin, Poland

PostPosted: Sat Jun 09, 2007 9:10 am    Post subject: Reply with quote

a tka się teraz zastanawiam, jak mozna ładnie wykorzystac baze mysqla z wpisami typu BLOB do formularza zamówieniowego. ogolnie mam taką wizję, ze na stronie jest formularz. nad nim wybiera się przyciskami typu radio ilosc pozycji do zamówienia. w zaleznosci od wybranej ilosci (np. 2) pokazywałyby się 2 rozwijalne listy w których bylyby wyswietlane te BLOBy. gdy user wybierze jakiegos BLOBa (np. o nazwie kwiatek) z listy, to po wyslaniu formularza otrzymywałbym na maila nazwę tego BLOBa pobieraną z pola "nazwa". nie wiem czy wystarczająco klarownie to przedstawiłem. ktos ma jakis pomysl jak moznaby to w miare sensownie rozwiązac?
_________________
Hardware:HP Pavilion DV6875SE[C2DT5550@1.83GHz_3GB-DDR2_320GB-SATA_GF8400GS]
http://popularcoffee.blogspot.com - Popkulturowa Kawa
RLU#342333
Back to top
View user's profile Send private message
13Homer
Guru
Guru


Joined: 12 Jul 2005
Posts: 461

PostPosted: Sat Jun 09, 2007 9:55 am    Post subject: Reply with quote

Chcesz w combo prezentować zawartość BLOBów, czyli np. grafiki? Próbowałem kiedyś, ale mi nie wyszło. We Flashu zapewne się da. Od biedy możnaby zrobić coś takiego, że w combo masz listę np. grafik, jak wybierzesz jakąś pozycję, to na zdarzeniu onchange możesz przeładować formularz i pokazać gdzieś obok podgląd tej grafiki.
Na pewno można zrobić coś takiego: tabela X z polami: nazwa, opis, zawartość. Nazwa to np. klucz główny tabeli (nazwa pliku graficznego), opis to nazwa prezentowana w combo, zawartość to plik (np. graficzny czy pdf). Po wybraniu w combo jakiejś pozycji i wysłaniu formularza można zawartość wysłać mailem jako załącznik o określonej nazwie.
Sprecyzuj może o co Ci chodzi.
_________________
Lenovo ThinkPad R61 / C2D@2.6.24 / nVidia Quatro NVS 140M / 2 GB RAM
Back to top
View user's profile Send private message
Poe
Bodhisattva
Bodhisattva


Joined: 03 Apr 2004
Posts: 2155
Location: Mysłowice/Lublin, Poland

PostPosted: Sat Jun 09, 2007 10:09 am    Post subject: Reply with quote

ma to być formularz do zakupu moich zdjęć. mam galerię we flashu ("simpleviewer"), więć nie mam jak dodać pod zdjęciem linka do kupna, czy cos w tym stylu, więc chciałbym w dziale "kup" miec formularz, gdzie potencjalny klient mógł zakupić sobie 1,2,3,4 czy 5 zdjec wybierajac z combo zdjęcie (dlatego chcialem to jakos BLOBem rozwiązac, zeby widzial jake chce zdjęcie, bo niekoniecznie musi pamiętac tytul. po prostu miniaturka, zeby skojarzył czy to jest na pewno to, co chce i nie mam zadnego pomyslu jak to sensownie rozwiązać. ten pomysł z tabelą nawet niezły jest, musiałbym pomyslec jak to rozwiązac dokladniej..
_________________
Hardware:HP Pavilion DV6875SE[C2DT5550@1.83GHz_3GB-DDR2_320GB-SATA_GF8400GS]
http://popularcoffee.blogspot.com - Popkulturowa Kawa
RLU#342333
Back to top
View user's profile Send private message
weni
n00b
n00b


Joined: 13 Mar 2006
Posts: 33

PostPosted: Mon Jun 11, 2007 8:07 am    Post subject: Reply with quote

Z tym combobox to chodzi o coś takiego: http://tw.ecritters.biz/select-icons/ ?
Back to top
View user's profile Send private message
Poe
Bodhisattva
Bodhisattva


Joined: 03 Apr 2004
Posts: 2155
Location: Mysłowice/Lublin, Poland

PostPosted: Tue Jun 12, 2007 7:28 pm    Post subject: Reply with quote

@weni, coś w tym stylu, tyle, że miniaturka miałaby się wyświetlać obok combosa. po wybraniu odpowiedniego wpisu z listy pojawialaby się miniaturka obok. ktos wie jak to uzyskac?
_________________
Hardware:HP Pavilion DV6875SE[C2DT5550@1.83GHz_3GB-DDR2_320GB-SATA_GF8400GS]
http://popularcoffee.blogspot.com - Popkulturowa Kawa
RLU#342333
Back to top
View user's profile Send private message
dziadu
Guru
Guru


Joined: 04 May 2006
Posts: 467
Location: Kraków/Darmstadt/Munich

PostPosted: Wed Jun 13, 2007 4:30 am    Post subject: Reply with quote

No ba! Sam coś takiego napisałem.. no może nie do końca ale coś w ten deseń, jak zrozumiesz działanie to w pięć minut rozbudujesz całość o brakującą funkcjonalność.

Tak nawiasem mówiąć wykorzystałem do tego JavaScript + technologia DOM, projekt możesz zobaczyć tutaj (ma pewne wady, ale trzy dni przed oddaniem przypadkowo wpisało mi się rm -fr public_html i potem moje wysiłki skupiły się na odzyskaniu projektu a nie jego rozbudowie [mam reiserfs]).

Zobacz na stronę nr 2, tam jest dynamiczne tworzenie elementów HTML za pomocą JS, dodać do tego funkcjonalność w postaci ComboBox jak i miniaturki to już jest na zasadzie skopiuj->wklej->sed s/coś_tam/coś_innego/g. Powodzenia, jakby co to pytaj, mam sesję ale postaram się jakoś pomóc (-:

PS. Odnośnie poczatkowgo tematu wątku, a myślałem o wykorzystaniu md5 i szyfrowaniu zawartości zwykłego pliku tekstowego? Robiłem coś podobnego ale z wykorzystaniem Perla i zapisywałem (tworzyłem, rozbudowywałem) pliki .digest do autoryzacji przez HTTP z wykorzystaniem md5 właśnie.
Back to top
View user's profile Send private message
13Homer
Guru
Guru


Joined: 12 Jul 2005
Posts: 461

PostPosted: Wed Jun 13, 2007 9:45 am    Post subject: Reply with quote

Rzeczywiście, za pomocą JS można to zrobić i to nawet dość prosto: trzeba utworzyć skrypt, który zwróci miniaturę takiej grafiki (jeśli grafiki są na dysku w postaci plików, a nie w bazie, to nie trzeba tego skryptu). W JS trzeba na zdarzeniu onLoad wczytać do jakiejś tablicy wszystkie te grafiki (to się chyba nazywa preloading grafik, wykorzystuje się to często gdy przyciski-grafiki na stronie mają się zmieniać na zdarzenie onMauseOver albo onClick, pełno tego na sieci). Teraz tworzysz 2 pola: combo i img z boku. W combo na zdarzeniu onChange podmieniasz atrybut src w img - ponieważ wszystkie grafiki były skeszowane, więc grafika się pojawi od razu.
Pseudo kod wyglądałby jakoś tak:
Code:

<html>
<head>
<script>
var IMAGE_ADDRESS = 'http://adres/skrypt?id=';
function initImgs() {
var im = document.HomerImgs = new Array(), str;
var imgNames = ['']; // tu trzeba wyiterować za pomocą PHP wszystkie nazwy czy id grafik - będzie to potrzebne
                           // do odwołania się do skryptu albo pliku na serwerze
for (i = 0; i < imgNames.length; ++i) {
    str = IMAGE_ADDRESS + imgNames[i];
    im[i] = new Image();
    im[j].src = str;
}
}

function changeImage(combo) {
    var img = document.images['xyz']; // ????
    var comboValue;
    var selIndex = combo.selectedIndex;

    comboValue = combo.options[selIndex].value; // a może inaczej? może zależeć od przeglądarki
    img.src = IMAGE_ADDRESS + combovalue;
}
</script>
</head>
<body onload="initImgs();">
<select onchange="changeImage(this);">
<option value="name1">Opis 1</option>
<option value="name2">Opis 2</option>
</select>
<img name="xyz" src="empty">
</body>
</html>

Quote:
PS. Odnośnie poczatkowgo tematu wątku, a myślałem o wykorzystaniu md5 i szyfrowaniu zawartości zwykłego pliku tekstowego? Robiłem coś podobnego ale z wykorzystaniem Perla i zapisywałem (tworzyłem, rozbudowywałem) pliki .digest do autoryzacji przez HTTP z wykorzystaniem md5 właśnie.

MD5 to hashowanie, a nie szyfrowanie, a tutaj chodziło o to, żeby zawartość pliku odtworzyć, hashowanie jest nieodwracalne.
_________________
Lenovo ThinkPad R61 / C2D@2.6.24 / nVidia Quatro NVS 140M / 2 GB RAM
Back to top
View user's profile Send private message
Poe
Bodhisattva
Bodhisattva


Joined: 03 Apr 2004
Posts: 2155
Location: Mysłowice/Lublin, Poland

PostPosted: Wed Jun 13, 2007 7:07 pm    Post subject: Reply with quote

hm, narazie wykoncypowałem ciut inny sposób, moze troche specyficzny.
Code:

while($row = mysql_fetch_row($result)){
echo("<a href='buy.php?foto=$row[0]' title='zamow' border='0'><img src='thumbs/nature/$row[0].jpg' /></a>  ");}

dzięki czemu wyswietlają mi sie ładnie wszystkie zdjęcia, które ładowane są z katalogu, a nie z bazy (z bazy tylko nazwy ciągnie). teraz chcę zrobic tak, zeby po kliknięciu w zdjęcie przeładowywało stronę i to zdjęcie kliknięte pojawiało się rowniez gdzies nizej w tabelce "zamówione", klikając, automatycznie wykonywałby wpis do bazy do innej tabeli pt"zamowienie" do rekordu ID, potem wpisywałoby się do formularza dane osobowe, ktore rowniez beda wysylane do tabeli 'zamowienie' do rekordów osoba i adres. wszystko fajnie, tylko nie potrafie dojsc do tego, jak to zdjecie ma sie pokazywac na dole...
_________________
Hardware:HP Pavilion DV6875SE[C2DT5550@1.83GHz_3GB-DDR2_320GB-SATA_GF8400GS]
http://popularcoffee.blogspot.com - Popkulturowa Kawa
RLU#342333
Back to top
View user's profile Send private message
dziadu
Guru
Guru


Joined: 04 May 2006
Posts: 467
Location: Kraków/Darmstadt/Munich

PostPosted: Wed Jun 13, 2007 8:37 pm    Post subject: Reply with quote

A mechanizm sesji? Możesz w nim zapamiętać wybrane zdjęcia i po przeładowniu wyświetlić co trzeba.

PS. Sorry za te md5, rzeczywiście głupota, ale od 3 w nocy przepisywałem notatki i byłem, z lekka mówiąc, trochę już ogłupiały/zaspany :-)
Back to top
View user's profile Send private message
13Homer
Guru
Guru


Joined: 12 Jul 2005
Posts: 461

PostPosted: Wed Jun 13, 2007 8:38 pm    Post subject: Reply with quote

Ja bym tak nie robił, śmiecenie w bazie to zawsze jest brzydkie rozwiązanie (co zrobić, gdy użytkownik nie zdecyduje się na kupno?), lepiej przekazywać za każdym razem postem tablicę z nazwami wybranych elementów, albo trzymać tę tablicę w sesji, ewentualnie cookies. Podczas iteracji górnej części można sprawdzać, czy dana grafika nie został już wybrana (id==nazwa, więc wszystko jest dużo prostsze) i jeśli tak, to jej nie prezentować. A na dole przeiterować tę tabelę i pokazać odpowiednie grafiki.
_________________
Lenovo ThinkPad R61 / C2D@2.6.24 / nVidia Quatro NVS 140M / 2 GB RAM
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum