Toon posts:

[PHP] upload script werkt niet

Pagina: 1
Acties:
  • 34 views sinds 30-01-2008

Verwijderd

Topicstarter
Goeden avond mede tweakers,

ik heb het volgende script
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if(!empty($_POST)){
    $ThisFileName = basename(__FILE__); // get the file name
    $path = str_replace($ThisFileName,"",__FILE__);   // get the directory path
    $upload_dir = $path."/images/fotos/"; // be shure php has access to this dir (chmod)
    $new_file   = $upload_dir."/".$_FILES['userfile']['name'];
    if ($_POST["upload"] == "Upload") { 
        if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
            move_uploaded_file($_FILES['userfile']['tmp_name'], $new_file) or
            print "could not store $new_file ";
            $query = "UPDATE users SET user_upl_pic = '". $_FILES['userfile']['name']. "' WHERE user_id = ". $_COOKIE["user_id"]. ";";
            $result = mysql_query($query) or die(mysql_error());
            header("location: home.php");
        } else {
         header("location: index.php");
       }
    }


om files te uploaden alleen op de een of andere manier doet ie gewoon helemaal niks. Geen bestand naar de server, geen veranderingen in de database, en hij geeft een leeg scherm. Heeft iemand enig idee hoe dat kan???

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 05 januari 2005 @ 20:55:
Heeft iemand enig idee hoe dat kan???
Is het je eigen script? Zo nee: mail de maker. Zo ja: laat eens zien welk formulier je gebruikt om de file te verzenden. Zet eens error_reporting(E_ALL); bovenaan je script. Output wat debuginformatie. Kijk ook in de FAQ van dit subforum voor wat info over debuggen.

[ Voor 8% gewijzigd door NMe op 05-01-2005 21:07 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

1. Misschien is het handig om deze notatie te gebruiken voor relevante PHP code:
tussen die 2 tags zet je dus je code wanneer je een bericht post.

code:
1
2
3
[code=php]

[/code]


2. Zoals hierboven al gezegd is kunnen wij vrij weinig zeggen zonder het formulier erbij te hebben. Als je een lege pagina krijgt dan komt hij bij 1 van de 3 if statements niet verder. Ik denk dat het te maken heeft met dit if statement:

PHP:
1
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { }


Hij komt hier waarschijnlijk niet verder omdat je in je formulier bent vergeten dit te zetten:

HTML:
1
enctype="multipart/form-data"


Je kunt dan in 1 totaal <form> element krijgen:

HTML:
1
<form action="index.php" method="post" name="uploadForm" enctype="multipart/form-data">


Alhoewel is dit maar een gok. Post je formulier zodat we je kunnen helpen.

Verwijderd

Voor debuggen gebruik ik vaak:

print_r($_POST) en
print_r($_FILES)

waarschijnlijk ben je idd enctype="multipart/form-data" vergeten, als je dit niet wordt toegevoegd dan wordt er geen file geupload door je browser, maar alleen de file naam (waar je waarschijnlijk niks aan hebt)

vergeet niet rekening te houden met dat users een andere file met dezelfde naam kunnen uploaden want:
Warning:
If the destination file already exists, it will be overwritten.
owjaa, "result = " kan je weglatenals je wil :)

[ Voor 35% gewijzigd door Verwijderd op 06-01-2005 00:28 ]


  • PanMan
  • Registratie: November 1999
  • Laatst online: 20:02

PanMan

Spun!

Ik gok (maar zonder <form> deel blijft het een gok), dat het hier mis gaat:
PHP:
1
if ($_POST["upload"] == "Upload") {

Anders zou je script namenlijk een error moeten geven.
Verder zitten er wel meer vage dingen in,
PHP:
1
$path = str_replace($ThisFileName,"",__FILE__);   // get the directory path

dit kan bijvoorbeeld simpel met de functie dirname().

Maar ik zou zeggen: Zet wat meer debug echo's in je code, en laat ff de form hier ook zien...

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:17

Creepy

Tactical Espionage Splatterer

Het blijft voor iedereen zo gokwerk om het echte probleem te achterhalen :)

Ga zelf eens debuggen (zie P&W FAQ - Leer **** debuggen!!) om zelf uit te zoeken wat er mis gaat. Mocht je er niet uitkomen start dan een nieuw topic waarin je aangeeft wat je nu zelf hebt geprobeerd, wat daar niet mee lukt, en waar je denkt dat eventueel het probleem ligt. Post dan ook de relevantie code en we zijn waarschijnlijk goed in staat om je dan te helpen :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.