Pomoć u vezi programiranja sajta

  • Začetnik teme Začetnik teme ikob
  • Datum pokretanja Datum pokretanja

ikob

Početnik
Poruka
30
Pozdrav!
Da li neko može da mi pomogne oko kodiranja sajta.
Trebaju mi dvije stranice:
- prva je loggin
- druga je prikaz FTP naloga

Malo detaljnije:
Imam zakupljen hosting i postavljen sajt na njemu. Sada želim da oformim te dvije stranice koje bi zamijenile desktop aplikacije (tipa FileZilla) zbog toga što želim da neko drugi može dodavati ili uklanjati fajlove i foldere sa tog servera online bez upotrebe bilo kojeg desktop softvera, ali pomoću FTP naloga.
Sve u svrhu zaštite privatnosti ostalih fajlova na serveru jer pomoću FileZille se lako dođe do ostalih direktorijuma.

Kreiranjem FTP naloga dodjeljujem određeni direktorijum (folder) u koji želim da korisnik može dodavati fajlove i foldere, ali bez uvida u ostatak sadržaja na serveru.
Loggin forma bi zahtjevala da unese Username i Password koji oformim kreiranjem FTP naloga na serveru i dugme za Loggin, nako čega bi bio preusmjeren na drugu stranicu koja bi imala polje za pregled sadržaja samo u dodjeljenom direktorijumu i dugmadi za dodavanje novih i uklanjanje nekih od postojećih u tom direktorijumu.

Ovdje možete preuzeti ilustrovan prikaz onog što mi treba:
http://www.sendspace.com/file/0j7x7r

Nadam se da mi neko može pomoći.
Hvala
 

Prilozi

  • Ilustrovano.jpg
    Ilustrovano.jpg
    37,6 KB · Pregleda: 20
dakle napravićeš log in stranu i ftp stranu

Log In strana hoćeš ovo
ako je na log in strani šifra i username jednaka onome koju ti dozvoliš nekome, otvori FTP stranu

FTP strana
Ako je log in ispravan, korisnik može dodati fajl koji se nalazi u folderu 'public_html', a da pritom nema pristupa drugim folderima?

hmm to nebi trebalo biti teško ako si na to mislio?
 
Napravio bih dvije strane (html ili php) jedna bi imala login formu koja bi provjerila FTP nalog i ako je postojeci uputila bi korisnika na drugu pomocu koje bi mogao dodavati ili brisati podatke iz dodjeljenog foldera. Jednostavno djeluje, ali ja to nzm uraditi, nazalost :(
Zbog toga mi treba pomoc strucnijih. FileZilla to radi i znam napraviti desktop aplikaciju koja bi to radila, ali mi je to suludo jer je efikasnije da se to online obavlja bez ikakvih programcica. Pretpostavljam da ovaj servis funkcionise na istom principu, samo sto ja hocu svedeniji i jednostavniji.



dakle napravićeš log in stranu i ftp stranu

Log In strana hoćeš ovo
ako je na log in strani šifra i username jednaka onome koju ti dozvoliš nekome, otvori FTP stranu

FTP strana
Ako je log in ispravan, korisnik može dodati fajl koji se nalazi u folderu 'public_html', a da pritom nema pristupa drugim folderima?

hmm to nebi trebalo biti teško ako si na to mislio?
 
Evo kako to može u PHP-u:

Kod:
<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
?>
 
:)
u svakom slucaju dijelom pomaze...hvala..
ipak, lakse je redom i laganini istrazivati step by step i Vasom tehnikom copy paste...paaa nesto ce i funkcionisati :)
resurse za copy-paste imam sve ovdje
Evo kako to može u PHP-u:
mada, znatno lakse bi sve ukapirao na gotovom primjeru, zbog cega sam se i obratio za pomoc strucnjaka.

Kod:
<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
?>
 
Evo kako to može u PHP-u:

Kod:
<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
?>

Pre ovog svega mislim da je neophodno da u js fajlu daš uslov:

ako je ime_tekst_polja.value jednako šifri, taj korisnik će smeti da koristi sledeću stranu, tj. ftp stranu
recimo da si imao 2 tekst polja, sa imenima txt1 i txt2:
JS kod bi izgledao ovako
Kod:
if(txt1.value == "User Name" & txt2.value=="Sifra")
{
      onda otvori ftp stranu
}  
else
{
      alert("moša :)");
}
i onda je
$ftp_user_name, $ftp_user_pass jednak txt1.value i txt2.value ili nekoj varijabli unutar js-a...
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

takođe
Moraćeš zameniti u varijabli "file", somefile.txt sa javascript funkcijom za otvaranje open file dialoga i staviti u neku varijablu izabrani "path" i proslediti tu putanju(path) php-u da zna koji fajl da ubaci. :)
Guglaj za open file dialog ima dosta source-a koji ce ti posluziti, a usput ces i nauciti nesto, najlakse i najgluplje je kad je sve na tanjiru... :)

EDIT: I NAJBITNIJE je da staviš metodu php-a na POST, a ne get, jer će get prikazati šifre u link baru
 
Poslednja izmena:
Hvala brate.
***...najvise od svega bih zeleo da znam to bez ikakvih pitanja i pojasnjavanja, ali posto sam pocetnik i bez sekunde ikakvog kursa to je nemoguce :)
Zato mi je lakse da se posluzim sa vec serviranim stvarima i njih malo prostudiram, pamtim, modifikujem iii...zadovoljim svoje potrebe :)
Hvala puno na pomoci jos jednom.

Pre ovog svega mislim da je neophodno da u js fajlu daš uslov:

ako je ime_tekst_polja.value jednako šifri, taj korisnik će smeti da koristi sledeću stranu, tj. ftp stranu
recimo da si imao 2 tekst polja, sa imenima txt1 i txt2:
JS kod bi izgledao ovako
Kod:
if(txt1.value == "User Name" & txt2.value=="Sifra")
{
      onda otvori ftp stranu
}  
else
{
      alert("moša :)");
}
i onda je
$ftp_user_name, $ftp_user_pass jednak txt1.value i txt2.value ili nekoj varijabli unutar js-a...
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

takođe
Moraćeš zameniti u varijabli "file", somefile.txt sa javascript funkcijom za otvaranje open file dialoga i staviti u neku varijablu izabrani "path" i proslediti tu putanju(path) php-u da zna koji fajl da ubaci. :)
Guglaj za open file dialog ima dosta source-a koji ce ti posluziti, a usput ces i nauciti nesto, najlakse i najgluplje je kad je sve na tanjiru... :)

EDIT: I NAJBITNIJE je da staviš metodu php-a na POST, a ne get, jer će get prikazati šifre u link baru
 
Zdravo kraljevi :)
Opet jaa vezano za ovu temu :)

Opisani problem sam rjesio, medjutim, doslo je do novog :( pa ako neko zna sta trebam ciniti neka intervenise ;)

Radi se o tome, da mi ove stranice NE RADE :) aliii...samo na Hostgatoru, a na drugom hostingu radi uredno sa njihovim FTP nalogom. Da li moram instalirati nesto na svoj HostGator paket da bi FTP radio i sta je to?
Trazio sam malo na netu vezano za te dodatke pristupu ftp nalogu preko php-a, ali sve sto sam nasao i instalirao mi nije pomoglo. Preko FileZille se poveze uredno, ali preko ove ftp stranice nece, dok ista skripta radi na BlueHost-u i njihovom ftp nalogu. :O

Rijec je o HostGator Business Plan-u, linux.

Hvala
 
Jesam, ali ne radi. Probao sam isto sa Bluehostom...kod njih radi bez problema. Kontaktirao sam i tehnicku podrsku Hostgatora, ali oni mi nisu pomogli. Kazu da je na serveru sve uredno i da ne vide zasto bi bilo smetnji bilo kakvih u vezi toga...GRRRRRRR....

Ako neko ima iskustva sa povezivanjem na njihove ftp naloge preko php skripte neka se javlja hitno :)

Nisam nikad bio na hostgatoru, ali jesi li registrovan za njihov ftp, jer traze ftp nalog...


Pogledaj ovo > http://thenewboston.org/watch.php?cat=51&number=2
 
Pre ovog svega mislim da je neophodno da u js fajlu daš uslov:

ako je ime_tekst_polja.value jednako šifri, taj korisnik će smeti da koristi sledeću stranu, tj. ftp stranu
recimo da si imao 2 tekst polja, sa imenima txt1 i txt2:
JS kod bi izgledao ovako
Kod:
if(txt1.value == "User Name" & txt2.value=="Sifra")
{
      onda otvori ftp stranu
}  
else
{
      alert("moša :)");
}
i onda je
$ftp_user_name, $ftp_user_pass jednak txt1.value i txt2.value ili nekoj varijabli unutar js-a...
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

takođe
Moraćeš zameniti u varijabli "file", somefile.txt sa javascript funkcijom za otvaranje open file dialoga i staviti u neku varijablu izabrani "path" i proslediti tu putanju(path) php-u da zna koji fajl da ubaci. :)
Guglaj za open file dialog ima dosta source-a koji ce ti posluziti, a usput ces i nauciti nesto, najlakse i najgluplje je kad je sve na tanjiru... :)

EDIT: I NAJBITNIJE je da staviš metodu php-a na POST, a ne get, jer će get prikazati šifre u link baru

Ne mesaj PHP i JavaScript promenljive.
Ne mozes tek tako postaviti uslov, trebas prvo dostaviti sifru korisnika i username sa servera, a to nikako ne mozes direktno iz JS, JS je client side, a PHP server side.
Trebala bi ti jedna PHP skripta koja cita bazu i vraca iscitane podatke, a iz JavaScript-a posaljes Ajax zahtev koji ce to preuzeti, i taj preuzeti sadrzaj sa servera tek onda mozes dodeliti JS promenljivoj i obradjivati dalje. :)
I jos bezbednije je da POST metodom posaljes te podatke iz inputa na server, i da se tamo obradjuje.
 
Poslednja izmena:
Ne mesaj PHP i JavaScript promenljive.
Ne mozes tek tako postaviti uslov, trebas prvo dostaviti sifru korisnika i username sa servera, a to nikako ne mozes direktno iz JS, JS je client side, a PHP server side.
Trebala bi ti jedna PHP skripta koja cita bazu i vraca iscitane podatke, a iz JavaScript-a posaljes Ajax zahtev koji ce to preuzeti, i taj preuzeti sadrzaj sa servera tek onda mozes dodeliti JS promenljivoj i obradjivati dalje. :)
I jos bezbednije je da POST metodom posaljes te podatke iz inputa na server, i da se tamo obradjuje.

Znam, ovo je bilo na brzaka...
Pod 'User name' i 'Sifra' sam i mislio da proveri da li ista postoji u bazi... dao sam samo jedan jednostavan primer kako to funkcioniše... ako u bazi postoji user name 'XXX' i šifra 123 onda uloguj tog korisnika bez ponovnog očitavanja stranice dok proverava, u suprotnom die();
 
Pa s obzirom da ne radi na Hostgatoru, dobro bi doslo
Evo kompletnog koda koji sam probao:
<?php

/*
*/

// quick "die" function
function funk_die($msg) {
if($msg=='normal') {
return "<html><body><a href=\"ftp.php\">back</a></body></html>";
}
}

// function to give dir listing stuff
function dir_funk () {

// cookie?
global $ftp;

// dir name
$dir=ftp_pwd($ftp);
// dir listing array
$dirlist=ftp_rawlist($ftp,$dir);

// print the directory listing
$funk = "<html><body><p>current directory: <b> $dir </b></p>";
$funk .= "<p><a href=\"ftp.php?&updir=$dir\">go up one level</a>
</p>";


$funk .= "<p>
<table cellspacing=0 cellpadding=2 border=1>
<tr><td><b>permissions</b></td><td><b>file/directory</b></td>
<td><b>download</b></td><td><b>delete</b></td>
<td><b>chmod</b></td><td><b>rename</b></td>
</tr>
";

while(list($i,$thingy)=each($dirlist)) {

$thingy=preg_replace("/\s+/", " ", $thingy);

if($i==0) {
echo "";
} else {
list($chmod,$thing,$owner,$group,$size,$month,$day,$time,$filename)=explode(" ",$thingy);
if(ereg("d",$chmod)) {
$funk .= "<tr><td>$chmod</td><td><a href=\"ftp.php?dir=$dir/$filename\">$filename</a></td>
<td>dir</td>
<td><a href=\"ftp.php?delete=dir&thingy=$dir/$filename\">delete</a></td>
<td><a href=\"ftp.php?chmod=1&thingy=$dir/$filename\">chmod</a></td>
<td><a href=\"ftp.php?rename=$dir/$filename\">rename</a></td>
</tr>";
} else {
$funk .= "<tr><td>$chmod</td><td>$filename</td>
<td><a href=\"ftp.php?dl=1&file=$dir/$filename\">d/l ($size)</a></td>
<td><a href=\"ftp.php?delete=file&thingy=$dir/$filename\">delete</a></td>
<td><a href=\"ftp.php?chmod=1&thingy=$dir/$filename\">chmod</a></td>
<td><a href=\"ftp.php?rename=$dir/$filename\">rename</a></td>
</tr>";
}
}

}

$funk .= "</table>
</p>";

$funk .= "<p>Create a new directory<br>
<form action=\"ftp.php\" method=\"POST\">
<input size=\"15\" name=\"name\">
<input type=\"hidden\" name=\"current_dir\" value=\"$dir\">
<input type=\"submit\" name=\"newdir\" value=\"create_dir\">
</form>
</p>";

$funk .= "<p>Upload a local file<br>
<form action=\"ftp.php\" method=\"POST\">
<input type=\"file\" name=\"localfile\"><br>
<input type=\"hidden\" name=\"current_dir\" value=\"$dir\">
<input type=\"submit\" name=\"upload\" value=\"upload_file\">
</form>
</p>";

$funk .= "</body></html>";

return $funk;
}


if(!$login) {
// print the login form

echo "<html><body><p><b>ftp login</b><hr></p>
<form action=\"ftp.php\" method=\"POST\">
<p>Your server (eg ftp.yoursite.com)<br> <input size=\"30\" name=\"server\"></p>
<p>Username <br> <input size=\"30\" name=\"username\"></p>
<p>Password <br> <input size=\"30\" name=\"password\"></p>
<p><input type=\"submit\" name=\"login\" value=\"login\"></p>
</form></body></html>";
} else {

// try to connect or die with an error
$ftp=ftp_connect($server) or die("invalid server");
// try to login or die with error
$conn=ftp_login($ftp,$username,$password) or die("login failed for some reason");
// set a cookie so the !$login form above is never displayed
setcookie("login","active");
// set goody cookies
setcookie("ftp.mojsajt.com",$server);
setcookie("hh@mojsajt.com",$username);
setcookie("mojalozinka",$password);

if($dir) {

ftp_chdir($ftp,$dir);
echo dir_funk();

} elseif($dl) {

if($get) {

if(!$local) {
die("please enter a value");
}

ftp_get($ftp, $local, $file, FTP_BINARY);
echo funk_die(normal);

} else {
echo "<html><body>";
echo "download file";
$size=ftp_size($ftp,$file);
$time=ftp_mdtm($ftp,$file);
$time=date("d M Y, H i",$time);
echo "<p><table cellspacing=0 cellpadding=2 border=1>
<tr><td><b>filename</b></td><td><b>size</b></td>
<td><b>date modified</b></td></tr>
<tr><td>$file</td><td>$size</td><td>$time</td></tr></table>";
echo "<form action=\"ftp.php\" method=\"POST\">
where to download the file to (/home/me/file.txt or c:/file.txt):<br>
<INPUT NAME=\"local\" size=\"40\">
<input type=\"hidden\" name=\"dl\" value=\"1\">
<input type=\"hidden\" name=\"file\" value=\"$file\"><br>
<INPUT TYPE=\"submit\" name=\"get\" VALUE=\"download file\">
</FORM>";
echo "</body></html>";

}

} elseif($rename) {

if($do) {

if(!$val) {
die("please enter a value");
}

ftp_rename($ftp, $rename, $val);
echo funk_die(normal);

} else {

echo "<html><body>
rename this file: $rename
<p>
<form action=\"ftp.php\" method=\"POST\">
Rename to: <input size=\"50\" name=\"val\" value=\"$rename\"><br>
<input type=\"hidden\" name=\"rename\" value=\"$rename\">
<input type=\"submit\" name=\"do\" value=\"rename\">
</form>
</body></html>";

}

} elseif($chmod) {

if($do) {

if(!$val) {
die("please enter a value");
}

$cmd="CHMOD $val $file";
ftp_site($ftp, $cmd);
echo funk_die(normal);

} else {

echo "<html><body>
chmod this file: $thingy
<p>
<form action=\"ftp.php\" method=\"POST\">
<input size=\"4\" name=\"val\" maxlength=\"4\"> CHMOD value<br>
<input type=\"hidden\" name=\"file\" value=\"$thingy\">
<input type=\"hidden\" name=\"chmod\" value=\"1\">
<input type=\"submit\" name=\"do\" value=\"chmod\">
</form>
</body></html>";

}

} elseif($delete) {

if($delete=='file') {
ftp_delete($ftp, $thingy);
} elseif($delete=='dir') {
ftp_rmdir($ftp, $thingy);
}
echo funk_die(normal);

} elseif($upload) {

if(!$localfile) { die("please enter a file"); }

$file = substr( strrchr( $localfile, "/" ), 1 );
$put_thingy = $current_dir . "/" . $file;
ftp_put($ftp, $put_thingy, $localfile, FTP_BINARY);
echo funk_die(normal);

} elseif($newdir) {

if(!$name) { die("please enter a name"); }

$newdir = $current_dir . "/" . $name;
ftp_mkdir($ftp,$newdir);
echo funk_die(normal);

} elseif($updir) {

$newdir = str_replace( substr( strrchr( $updir, "/" ), 1 ) , "", $updir);

ftp_chdir($ftp,$newdir);
echo dir_funk();

} else {

echo dir_funk();

}
}

?>
Treba li i dalje taj login da se napise u PHP ? :)
 
Znam, ovo je bilo na brzaka...
Pod 'User name' i 'Sifra' sam i mislio da proveri da li ista postoji u bazi... dao sam samo jedan jednostavan primer kako to funkcioniše... ako u bazi postoji user name 'XXX' i šifra 123 onda uloguj tog korisnika bez ponovnog očitavanja stranice dok proverava, u suprotnom die();
Ali ne zaboravi nikad, sve naredbe u PHP-u izvrsavaju se na serveru, a korisniku vraca samo rezultat u vidu nekih podataka, html-a, itd...
A sto se tice JS, on se izvrsava na klijentovom kompu, i iskoriscava njegove resurse.
Jos jedan savet: Osetljive podatke nikad ne obradjuj u JS, vec na serveru, radi bezbednosti, i ako vec hoces u JS ako si toliko uporan, bar se potrudi da bude kriptovano. :)
 
Ali ne zaboravi nikad, sve naredbe u PHP-u izvrsavaju se na serveru, a korisniku vraca samo rezultat u vidu nekih podataka, html-a, itd...
A sto se tice JS, on se izvrsava na klijentovom kompu, i iskoriscava njegove resurse.
Jos jedan savet: Osetljive podatke nikad ne obradjuj u JS, vec na serveru, radi bezbednosti, i ako vec hoces u JS ako si toliko uporan, bar se potrudi da bude kriptovano. :)

Nisam dugo u php-u, bukvalno sam pre 10tak dana i krenuo, ali jezik je jednostavan realno... :)

kriptovao sam u md5, mada on nije savršen :S
 
Poslednja izmena:
Evo konacno sam citav problem rjesio :)
Pa bih da podijelim sa Vama dragi prijatelji, ukoliko je neko imao slican problem...Obratio sam se tehnickoj sluzbi Hostgator-a i zamolio ih za reset cpanel-a...ljudi su u najkracem roku to uradili, resetovali mi pass i osvjezili cPanel tako da sada i na HG-u rade ove stranice bez ikakvih problema.

Hvala svima na pomoci ;)
 

Back
Top