Goedendag PHPhulp. Meteen offtopic beginnen, gelukkig nieuw jaar allemaal. Ontopic:

Ik heb een klein upload scriptje van een website gehaald, dat script kijkt eerst of de extensie bestaat,zo nee: Fout. Zo ja: Uploaden in de map. Die map heeft dezelfde naam als een sessie. Nu heb ik dat wel keurig gespecificeerd in de naam, hij plompt ze toch gewoon in de root dir. Dit is mijn code

<?php
session_start();
error_reporting(-1);
include 'config.php';
$file= $_FILES['userfile']['tmp_name'];
$filename= $_FILES['userfile']['name'];
$tgs[0] = "jpg";
$tgs[1] = "gif";
$tgs[2] = "htm";
$tgs[3] = "html";
$tgs[4] = "php";
$tgs[5] = "php5";
$tgs[6] = "php4";
$tgs[7] = "php3";
$tgs[8] = "xml";
$tgs[9] = "phps";
$extentie = substr($filename, -3);

for ($c = 0; $c < count($tgs); $c++)
{
if ($extentie == $tgs[$c])
{
$extentie_ok = "ok";
$c = count($tgs) + 5;
}
}

//Controleer het bestandstype van het bestand


if ($extentie_ok)
{

copy($_POST['userfile'], $_SESSION['usernames']) ;
echo "Het bestand is geupload onder de naam: $filename";
}


/*Als het bestandstype toegestaan is, bestand uploaden. u kunt het if en else gedeelte weglaten als u alle bestanden toe wilt laten staan. */


else
{

echo 'Bestandstype niet geldig' ;
}
?>

Als mijn gebruikersnaam in de sessie bijv. Kloentje2 is, en ik wil iets uploaden dan komt het bestand in de root dir. Naam: Kloentje2bestandsnaam Als ik deze regel:

<?php
copy($_POST['userfile'], $_SESSION['usernames']) ;
?>

Vervang door:

<?php
copy($_POST['userfile'], "/". $_SESSION['usernames']) ;
?>

Heeft dat ook geen zin. Dan upload hij hem helemaal niet. Wie kan dit probleem voor me oplossen? Alvast bedankt.

Koen Hollander
Zei je niet tegen ons dat je zelf ging scripten ipv scriptjes van het internet te plukken ????
Laat dan nog eens zien wat je nu hebt als script.
Maak gewoon je eigen script, dan weet je tenminste wat je doet.
Erwin H op 01/01/2013 13:56:59

Laat dan nog eens zien wat je nu hebt als script.


Tot nu toe:

<?php
session_start();
error_reporting(-1);
include 'config.php';
$file= $_FILES['userfile']['tmp_name'];
$filename= $_FILES['userfile']['name'];
$tgs[0] = "jpg";
$tgs[1] = "gif";
$tgs[2] = "htm";
$tgs[3] = "html";
$tgs[4] = "php";
$tgs[5] = "php5";
$tgs[6] = "php4";
$tgs[7] = "php3";
$tgs[8] = "xml";
$tgs[9] = "phps";
$extentie = substr($filename, -3);

for ($c = 0; $c < count($tgs); $c++)
{
if ($extentie == $tgs[$c])
{
$extentie_ok = "ok";
$c = count($tgs) + 5;
}
}

//Controleer het bestandstype van het bestand


if ($extentie_ok)
{
//copy($file, $_SESSION['username'] . $filename);
//copy($_POST['userfile'], $_SESSION['usernames']) ;
move_uploaded_file($file, "/".$_SESSION['username'] ) ;

}


/*Als het bestandstype toegestaan is, bestand uploaden. u kunt het if en else gedeelte weglaten als u alle bestanden toe wilt laten staan. */


if ($extentie_ok AND 'move_uploaded_file' == true)
{
echo 'Het is goed gedaan en Het bestand is geupload onder de naam: '. $filename. '.';
}else
{

echo 'Het is niet goed gedaan! Probeer het nogmaals.' ;
}
?>

Mijn Form:

<form enctype="multipart/form-data" action="upload.php" method="post"> 
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="51200" /> 
Selecteer een bestand: <input name="userfile" type="file"><br />
<input type="submit" value="upload bestand" />
</p>
</form>
Ok Koen, wat mij betreft houdt het hier op. Ik heb je al twee keer gezegd dat move_uploaded_file als 'destination' een volledig pad plus bestandsnaam verwacht, daar heb je nog steeds niets mee gedaan. Tevens is
<?php
if ($extentie_ok AND 'move_uploaded_file' == true)
?>
Echt de grootste kul die ik hier ooit heb gezien. 'move_uploaded_file' is een string, hoe kan dat nu de uitkomst van een functie zijn?

Ik zou je willen adviseren om gewoon te stoppen. Met jouw (gebrek aan) inzet kom je hier nooit uit en ik steek mijn tijd niet in het helpen van mensen die niet eens de moeite willen nemen om zelf de basis onder de knie te krijgen.
Koen Hollander op 01/01/2013 13:38:32

Ik heb werkelijk geen flauw idee. Ik heb nog nooit iets met uploaden gedaan.

Grappig; dat stukje code heeft namelijk helemaal niets van doen met uploaden...

Koen Hollander op 01/01/2013 13:38:32

Ik moet inderdaad meer moeite doen. Kan iemand me dan een verbeterde versie laten zien? Dan weet ik ook wat ik fout doe.


Nee, zo werkt het dus niet (meer). Jij wilt iets (leren?), dan kun je er ook (veel meer) moeite voor (gaan) doen. Het enige wat jij lijkt te willen is copy/paste. Leer zelf eens hoe e.e.a. werkt. Je krijgt hier allerlei voorzetten. Het enige wat jij moet doen is er wat tijd en energie in steken. En als je er dan echt niet uit komt (en dat is dus niet na 5 of 10 minuten), wil iemand je ongetwijfeld verder helpen.

Ik sluit me dan ook helemaal aan bij Erwin:
Erwin H op 01/01/2013 14:17:45

Ok Koen, wat mij betreft houdt het hier op.

Ik zou je willen adviseren om gewoon te stoppen. Met jouw (gebrek aan) inzet kom je hier nooit uit en ik steek mijn tijd niet in het helpen van mensen die niet eens de moeite willen nemen om zelf de basis onder de knie te krijgen.
Ik zet me wel goed in, maar ik zal naar jullie luisteren

Reageren