Archief - PHP: Connect to the FTP to chmod the file via FTP

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

exxhal

Legacy Member
hoi,
Ik probeer een bestand te uploaden met php.
Daarvoor zal ik waarschijnlijk een verbindig moeten maken met de ftp.

Maar dit lijkt niet te lukken want ik krijg geen echo met volgend script.

HTML:
<?php
// Connect to the FTP to chmod the file via FTP

$ftpUserName = 'xxxxxxxxx';
$ftpUserPass = 'xxxxxxx';
$ftpServer = 'xxxxxxxxxxxxxxxxxxxxxx';

  $ftpConn = ftp_connect($ftpServer);
  
  if (!$ftpConn) {
    die("Unable to connect to $ftpServer");
  }

if (@ftp_login($conn_id, $ftpUserName, $ftpUserPass)) {
   echo "Connected as $ftpUserName @ $ftpServer";
} 
else {
   echo "Couldn't connect as $ftpUserName";
   ftp_close($ftpConn);
   die("Closed connection to $ftpServer");
}



?>

Wat doe ik verkeerd ?

Deefees

Legacy Member
Euh je moet geen verbinding met de ftp rechtstreeks maken dacht ik, enkel de opties van de map naar waar je wil uploaden moet je aanpassen, dat je upload toestaat dus.

Dit ging ik gebruiken om "avaters" te uploaden:

PHP:
<?php 
global $_FILES; 

$filename = $_FILES['userfile']['name'];  

$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "JPEG";
$allow[4] = "png";


if ($_POST["newname"])
	{
    $uploadname = $_POST['newname']; 
	}
else 
	{
    $uploadname = $_FILES['userfile']['name'];
	}
    
$extentie = substr($uploadname, -3);

if (in_array($extentie, $allow))
{
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {  
        move_uploaded_file($_FILES['userfile']['tmp_name'], "prentjes/" . $uploadname);  

        echo "Het bestand is geupload onder de naam: $uploadname"; 
    }
}
else
{
    echo "ongeldig";
}  
?>

dus in dit geval moet de map prentjes een andere "cmod" krijgen zodat er ge-upload kan worden. Permissions 766 ofzo. (script heb ik nog niet volledig werkende dusja, kunnen fouten inzitten, is gwn een voorbeeld)

Smokyke

Legacy Member
Sudden_striker heeft gelijk, je moet geen connectie maken met ftp. Gewoon dergelijk script zoals hij zei is in orde. Wel map CHMODden. Was het niet 777?

Deefees

Legacy Member
777 = read & write & execute / 766 = read & write
oja nu zie ik da me andere mapjes geen write maar wel execute hebben, wat doet die precies? :p

exxhal

Legacy Member
Bedankt, is gelukt.

Ik dacht meer in de trend van een db.

exxhal

Legacy Member
toch nog een klein vraagje:

mijn upload pagina staat in een map "x" maar de bestanden moeten in de map y komen hoe verwijs je dan naar deze "y"

HTML:
$map = "./images/

dit werkt natuurlijk als ik in map "x" een map heb welke images heet maar mijn map images staat in map "y".

killgore

Legacy Member
een connectie via ftp is natuurlijk handig omdat je dan geen irritante chmodding moet toepassen

Bram

Legacy Member
exxhal zei:
toch nog een klein vraagje:

mijn upload pagina staat in een map "x" maar de bestanden moeten in de map y komen hoe verwijs je dan naar deze "y"

HTML:
$map = "./images/

dit werkt natuurlijk als ik in map "x" een map heb welke images heet maar mijn map images staat in map "y".

als u map structuur /root/x en root/y is, dan zal ../y ook wel werken.

@killgore: als ge maar naar een map moet uploaden (bv als ge enkel avatars wilt uploaden) dan denkek da chmodding en move_uploaded_file toch wel een stuk gemakkelijker is dan werken met een ftp connectie.

exxhal

Legacy Member
Om de één of andere reden kreeg ik de upload niet verder dan de root zelf.
Ik heb dan maar besloten om de beveiliging met een cookie te doen.
Het doel was of is dat niemand rechtstreeks op de upload.php kan terecht komen.
Daarom stond upload.php in map x met een htaccess.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan