Avatar billede pcdl Nybegynder
10. januar 2007 - 15:03 Der er 26 kommentarer og
1 løsning

Oprette en mappe på ftp server fra database

Hej nogen som kan finde ud af at lave et script som insætter en mappe i ens ftp server
den skal gøre det på følgende måde
Har en database hvor den gemmer så skal den hente navn fra en tabel og kalde mappen det navn
Avatar billede sw_red_6 Nybegynder
10. januar 2007 - 15:08 #1
/* INDSÆT KODE TIL AT HENTE NAVN FRA DATABASEN HER */

mkdir($navn_fra_tabel);
chmod($navn_fra_tabel, 0777); // vidst nok nødvendig for at kunne bruge mappen
Avatar billede sw_red_6 Nybegynder
10. januar 2007 - 15:11 #2
og du kan jo også tjekke om mappen eksisterer og 1) slette den inden du opretter, eller 2) lade være med at oprette mappen hvis den allerede eksisterer..
1)
if(file_exists($navn_fra_tabel)) {
  unlink($navn_fra_tabel);
}

2)
if(!file_exists($navn_fra_tabel)) {
  mkdir($navn_fra_tabel);
  chmod($navn_fra_tabel, 0777); // vidst nok nødvendig for at kunne bruge mappen
}
Avatar billede pcdl Nybegynder
10. januar 2007 - 15:20 #3
Når man kører scriptet opretter den kun den første mappe
Avatar billede sw_red_6 Nybegynder
10. januar 2007 - 15:22 #4
hvordan ser dit script ud?
Det er lidt svært at finde en løsning på noget, når man ikke kender koden bag ;o)
Avatar billede pcdl Nybegynder
10. januar 2007 - 15:23 #5
<?
include("sql.php");
?>
<?
$select_auth = mysql_query("SELECT username FROM hjemmeside WHERE oprettet='nej'");
$row_auth = mysql_fetch_array($select_auth);
mkdir($row_auth[username]);
chmod($row_auth[username], 0777);
?>
Avatar billede sw_red_6 Nybegynder
10. januar 2007 - 15:25 #6
prøv med det her:

$select_auth = mysql_query("SELECT username FROM hjemmeside WHERE oprettet='nej'");
while($row_auth = mysql_fetch_array($select_auth)) {
  mkdir($row_auth[username]);
  chmod($row_auth[username], 0777);
}
Avatar billede pcdl Nybegynder
10. januar 2007 - 15:26 #7
1000 tak det virker nu men har lige et sidste spørgsmål kan man gøre så den kun skriver med små bogstaver ??
Avatar billede sw_red_6 Nybegynder
10. januar 2007 - 15:30 #8
jep, du bruger bare strtolower()
f.eks. mkdir(strtolower($row_auth[username]));
Avatar billede pcdl Nybegynder
10. januar 2007 - 15:31 #9
1000 tak bare lig en svar så får du point
Avatar billede pcdl Nybegynder
10. januar 2007 - 15:33 #10
Lige en anden ting som ik har noget med det her at gøre men kan man rette en fil med et script altså fx hvis jeg trykker ok så indsætter den noget til en fil uden at slette resten af teksten som er i filen i forvejen
Avatar billede sw_red_6 Nybegynder
10. januar 2007 - 15:40 #11
ja, det kan du godt.
hvis du bruger f.eks.
$var = fopen("FILNAVN", 'a');
fwrite($var, "DETTE ER EN TEST");
fclose($var)
vil den tilføje DETTE ER EN TEST til bunden af den fil du åbner

Prøv at kigge på fopen() (http://dk2.php.net/manual/en/function.fopen.php), der er også link til fwrite og fclose i venstre side..
Avatar billede simplus Nybegynder
10. januar 2007 - 15:47 #12
med hensyn til hvordan mán tjekker om mappen findes, ville jeg hellere bruge is_dir() end file_exist() da den sidstnævnte også tjekker for filnavne. Det kan resultere i at den giver forkerte tilbagemeldingerne hvis der findes en mappe og fil ved samme navn.

:-)
Avatar billede sw_red_6 Nybegynder
10. januar 2007 - 15:52 #13
Det har du nok ret i er den bedste løsning, men det var noget jeg lige havde liggende som jeg ændrede lidt på hvor både mapper og filer med et bestemt navn skulle slettes inden de blev oprettet igen..
Avatar billede simplus Nybegynder
10. januar 2007 - 15:54 #14
aha, på den måde...

lige en ting til, til spørgeren: Hvis du vil slette en mappe igen kan det nemt gøres med rmdir() !
Avatar billede simplus Nybegynder
10. januar 2007 - 15:57 #15
# tilføjelse

rmdir vil ikke virke hvis mappen indeholder filer, derfor kan du lige kører et loop med unlink!
Avatar billede pcdl Nybegynder
10. januar 2007 - 16:04 #16
har fået det meste til at virke udover den der ret i en fil der er et lille problem der skal den hente username fra databasen men når jeg skriver $row_auth[username] bliver username ikke sat ind :S
Avatar billede simplus Nybegynder
10. januar 2007 - 16:08 #17
det er svært at tage stilling til, uden at have set koden - post den relevante del herind.
Avatar billede pcdl Nybegynder
10. januar 2007 - 16:09 #18
$var = fopen("2.php", 'a');
fwrite($var, "
$row_auth[username]");
fclose($var)
Avatar billede simplus Nybegynder
10. januar 2007 - 16:13 #19
prøv

$var = fopen("2.php", "a");
fwrite($var, $row_auth[username]);
fclose($var);
Avatar billede pcdl Nybegynder
10. januar 2007 - 16:26 #20
Hmm når man kører scriptet vil den ikke indsætte [] hvordan kan det være ??
Avatar billede simplus Nybegynder
10. januar 2007 - 16:31 #21
hvad mener du med at den ikke vil "indsætte []" ?

jeg kan komme med 2 forslag pt, men kan ikke sikre dig at det virker, da jeg ikke helt forstår dig som sagt!

1) sæt ' foran og bagved username så der står ['username']

2) prøv at gemme det i en variabel og indsæt variablen i fwrite, altså således:

$udtraek = $row_auth[username];
$var = fopen("2.php", "a");
fwrite($var, $udtraek);
fclose($var);

hvis det heller ikke virker, må du lige komme med MySQL query'en !
Avatar billede pcdl Nybegynder
10. januar 2007 - 16:35 #22
Mit script ser sådan her ud

<?
include("sql.php");
?>
<?
$select_auth = mysql_query("SELECT * FROM hjemmeside WHERE oprettet='nej'");
$row_auth = mysql_fetch_array($select_auth);
$udtraek =
$row_auth[username]
Login=$row_auth[username]
Pass=$row_auth[kryppassword]
Home-Ip=-= All IP Homes =-
RelativePath=1
TimeOut=600
MaxConPerIp=1
MaxUsers=0
RatioMethod=0
RatioUp=1
RatioDown=1
RatioCredit=0
MaxSpeedRcv=512
MaxSpeedSnd=512
QuotaCurrent=0
QuotaMax=0
Dir0=C:\wamp\www\$row_auth[username]\
Attr0=RWDAMLSK
Stat_Login=0
Stat_LastLogin=30-12-1899
Stat_LastIP=Unknown
Stat_KBUp=0
Stat_KBDown=0
Stat_FilesUp=0
Stat_FilesDown=0
Stat_FailedUp=0
Stat_FailedDown=0;
$var = fopen("C:\Programmer\BPFTP Server\Users.ini", "a");
fwrite($var, $udtraek);
fclose($var);
?>

men den giver denne fejl

Parse error: syntax error, unexpected T_STRING in c:\wamp\www\2.php on line 9
Avatar billede intenz Novice
10. januar 2007 - 16:38 #23
Du skal nok lige sætte en "" udenom din tekst:

$udtraek = "
$row_auth[username]
Login=$row_auth[username]
Pass=$row_auth[kryppassword]
Home-Ip=-= All IP Homes =-
RelativePath=1
TimeOut=600
MaxConPerIp=1
MaxUsers=0
RatioMethod=0
RatioUp=1
RatioDown=1
RatioCredit=0
MaxSpeedRcv=512
MaxSpeedSnd=512
QuotaCurrent=0
QuotaMax=0
Dir0=C:\wamp\www\$row_auth[username]\
Attr0=RWDAMLSK
Stat_Login=0
Stat_LastLogin=30-12-1899
Stat_LastIP=Unknown
Stat_KBUp=0
Stat_KBDown=0
Stat_FilesUp=0
Stat_FilesDown=0
Stat_FailedUp=0
Stat_FailedDown=0";
Avatar billede pcdl Nybegynder
10. januar 2007 - 16:39 #24
ja opdagede jeg lige :D
Avatar billede pcdl Nybegynder
10. januar 2007 - 16:42 #25
nu er problemet kun at den skriver med store bogstaver den må KUN skrive med små bogstaver kan man ændre det i det script der
Avatar billede simplus Nybegynder
10. januar 2007 - 16:53 #26
strtolower(); ligesom du fik anbefalet før...
Avatar billede pcdl Nybegynder
21. juni 2008 - 15:35 #27
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester