Toon posts:

[php] uploaden functioneerd niet

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

Verwijderd

Topicstarter
Ik ben voor m'n vriendin een klein siteje in elkaar aan het bouwen, welke ze zelf kan adminnen, foto's uppe, teksten editen etc. niet zo heel spannend, nu had ik portfolio ding werkend, allemaal geen punt, toen ging ik het verbeteren en nu is het stuk en ik heb geen flauw idee waarom, misschien een frisse blik die opheldering kan geven, hij bereikt deze if statement wel, maar ik denk dat het fout gaat met m'n foreach en zou zo niet weten hoe te fixen, en ja, ik weet dat ik niet 100% nette php code schrijf :)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if ($_POST["submit"] && $_POST[file]) {
  foreach ($_FILES as $plaatje) {
    $allowed_types = array("image/pjpeg","image/jpeg");
    $code = rand(100000,999999);

    if (in_array($plaatje[type],$allowed_types)) {
      $fullimage = ImageCreateFromJPEG($plaatje[tmp_name]);

      $fullwidth = imagesx($fullimage);
      $fullheigth = imagesy($fullimage);

      if ($fullwidth > 640) {
        echo TableTop("Foto aan portfolio toevoegen...");
        echo TableBot("Helaas.... :(\n\nHet is mislukt, je foto is groter dan 640 pixels breed.");
        include("../inc/right.inc.php");
        include("../inc/footer.inc.php");
        exit;
      }

      $thumbratio = imagesx($fullimage)/150;
      $thumbwidth = imagesx($fullimage)/$thumbratio;
      $thumbheight = imagesy($fullimage)/$thumbratio;

      $thumbnail = ImageCreateTrueColor($thumbwidth,$thumbheight);
      imagefill($thumbnail, 0, 0, ImageColorAllocate($thumbnail, 255, 255, 255));
      imagecopyresampled($thumbnail,$fullimage,0,0,0,0,$thumbwidth,$thumbheight,imagesx($fullimage),imagesy($fullimage));
      imagejpeg($thumbnail, "../img/portfolio/thumb$code$plaatje[name]");

      move_uploaded_file($plaatje[tmp_name], "../img/portfolio/full$code$plaatje[name]");

      mysql_query("INSERT into fotos (path, width, height) VALUES ('$code$plaatje[name]','$fullwidth','$fullheigth')") or die(mysql_error());
      
      echo TableTop("Foto aan portfolio toevoegen...");
      echo TableBot("Het is gelukt! :D\n\nJe foto is toegevoegd aan de portfolio!\n\n[url2=$PHP_SELF]Terug naar de portfolio[/url]");
    }

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Gewoon zelf eens debuggen. 't is een onderdeel van het programmeerproces.

https://fgheysels.github.io/


Verwijderd

Topicstarter
als jij je eigen FAQ gelezen zou je weten dat als mensen d'r echt niet uit komen ze de vraag mogen stellen.

En gezien ik hier al 2 dagen mee bezig ben om dit waarschijnlijk kleine foutje te vinden denk ik dat jouw reply een bullshit reply was!

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Verwijderd schreef op 31 oktober 2002 @ 12:57:
als jij je eigen FAQ gelezen zou je weten dat als mensen d'r echt niet uit komen ze de vraag mogen stellen.

En gezien ik hier al 2 dagen mee bezig ben om dit waarschijnlijk kleine foutje te vinden denk ik dat jouw reply een bullshit reply was!


1. Het is mijn FAQ niet. ;)
2. Met er gewoon op te kijken kom je er niet. Aangezien jij niet weet waar de fout precies ligt, wil dat zeggen dat je nog niet eens gedebugged hebt.
3. Mijn reply is geen bullshit reply, maar een zeer goede tip voor jou.
4. Jij moet niet zo geaggiteerd reageren omdat ik of iemand anders je een hint geef ipv direct de oplossing te posten.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Ow, en
5. Jij moet de P&W Quickstart eens lezen, zodat je een duidelijke post maakt waar je duidelijk in uitlegt wat er wel en wat er niet werkt. En welke fout je eventueel krijgt, enz....

https://fgheysels.github.io/


Verwijderd

Topicstarter
2.k weet dondersgoed waar de fout ligt, als jij die boventekst had gelezen zie je vast het woordje foreach staan.

3. slaat precies op je signature
4. slaat weer op dit puntje 3

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Wij kunnen zo ook geen fout zien in een hele lap code.. Dan zouden ook wij het moeten copy/pasten en uitvoeren en debuggen.

Je zegt niet eens wat er nu precies fout gaat, of wat voor melding op welke regel je krijgt.

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 15:13

Altaphista

1. check manual, 2. ask

doe op elke regel es een print/echo.
post je wel goede enctype?

Je gaat het pas zien als je het doorhebt.


Verwijderd

Topicstarter
ok, komt ie:

de if statement (helemaal bovenin dus) die bereikt, hij als ik een echo deronder plaats dan krijg ik dat gewoon te zien, voor de rest als ik ook een echo in m'n foreach zet wordt die niet geparsed.

dus hij bereikt de if wel, maar de foreach schijnt niet aan de criteria te voldoen, na debuggen ben ik daar allang achter gekomen.

maar nu de oplossing, met RTFM kom ik d'r niet uit, dus daarom ook dit topic, wat is er fout, de rest van code is om aan te geven wat het doet.

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
  echo '</table>';
  echo '<form enctype="multipart/form-data" action="'.$PHP_SELF.'" method="post">';
  echo '<table class="normaltable" align="center" cellspacing="0" cellpadding="0" border="0" width="95%">';
  echo '<tr><td><b>&nbsp;Portfolio foto\'s uploaden...</b><br>&nbsp;</td></tr>';
  echo '<tr><td>&nbsp;<input type="file" name="file" class="width: 250px"></td></tr>';
  echo '<tr><td>&nbsp;<input type="submit" name="submit" value="Uploaden">';
  echo '</table></form>';


das m'n form

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

plaats eens een print_r($_FILES) onder jouw eerste if

Programmer - an organism that turns coffee into software.


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Lees deze ook eens door:

http://gerard.yoursite.nl/got/php-tiplist/#3

Associative array indices moeten gequote worden.

Verwijderd

Topicstarter
LuCarD schreef op 31 oktober 2002 @ 13:09:
plaats eens een print_r($_FILES) onder jouw eerste if
Parse error: parse error, unexpected T_FOREACH in /home/john/HTML/www.linda-online.nl/html/admin/portfolio.php on line 7

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Als hij niet in de foreach raakt, zal dat waarschijnlijk willen zeggen dat er niets in de $_FILES zit waar hij door moet loopen.
3. slaat precies op je signature
Welk puntje uit m'n signature precies?

https://fgheysels.github.io/


Verwijderd

Topicstarter
$_FILES is toch de superglobal voor files die gepost worden :?

met deze form enctype en <input type="file">

Verwijderd

Topicstarter
whoami schreef op 31 oktober 2002 @ 13:13:
Als hij niet in de foreach raakt, zal dat waarschijnlijk willen zeggen dat er niets in de $_FILES zit waar hij door moet loopen.


[...]

Welk puntje uit m'n signature precies?
<Yarvieh> litemods zijn niet allemaal arrogante zakken

:+

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Verwijderd schreef op 31 oktober 2002 @ 13:14:
[...]


<Yarvieh> litemods zijn niet allemaal arrogante zakken

:+

Idd..... wat dus wil zeggen dat ik geen arrogante zak ben.

Debuggen heeft trouwens niet enkel te maken met 'waar loopt het mis', maar ook met 'waarom loopt het mis'. Dat je al weet waar het probleem zich situeert is al een stap in de goeie richting, maar dan heb je de volgende stap nog niet uitgevoerd: nl. waarom loopt het mis. Check dan of er wat in die array oid zit waar die foreach moet doorlopen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
zoals ik al zei, volgens mij is die array gewoon gevuld. Tenminste, daar mag ik vanuit gaan omdat volgens mij m'n form gewoon goed is en files worden gepost (vanwege enctype).

Ik heb niemand gehoord die anders wist te vertellen

  • packman
  • Registratie: November 2000
  • Laatst online: 17-12-2024
Verwijderd schreef op 31 oktober 2002 @ 13:11:
[...]


Parse error: parse error, unexpected T_FOREACH in /home/john/HTML/www.linda-online.nl/html/admin/portfolio.php on line 7
ROFLMAO

mischien niet gewoon letterlijk copy/pasten maar ook effe nadenken? een ";" doet soms wonderen...

En blijkbaar lees jij ook niet goed - indices van associative arrays moeten dus GEQUOTE worden. zo dus:

PHP:
1
$mijnarray['mijnindex'] = 'blabla';


en dus niet zo:

PHP:
1
$mijnarray[mijnindex] = 'blabla';

I heard if you play the XP CD backwards, you get a satanic message. Thats nothing compared to what happens if you play it forward, then it installs Windows XP born2oc.be - Facts Of Life


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Verwijderd schreef op 31 oktober 2002 @ 13:18:
zoals ik al zei, volgens mij is die array gewoon gevuld. Tenminste, daar mag ik vanuit gaan omdat volgens mij m'n form gewoon goed is en files worden gepost (vanwege enctype).

Ik heb niemand gehoord die anders wist te vertellen

Volgens jij.... Tja, misschien ben jij wel verkeerd en moet je het toch ff checken.
Ga nooit uit van veronderstellingen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
print_r($HTTP_POST_FILES) heeft als output: Array ( )
$_POST['file'] geeft lokatie van foto op m'n eigen skijf

  • packman
  • Registratie: November 2000
  • Laatst online: 17-12-2024
PHP:
1
imagejpeg($thumbnail, "../img/portfolio/thumb$code$plaatje[name]");

?? Ik veronderstel dat je dit bedoeld:

PHP:
1
imagejpeg($thumbnail, "../img/portfolio/thumb$code{$plaatje['name']}");


ik zou zo de hele code is doorlopen, en de php-manual nog eens vastnemen voor je aan zoiets begint...

I heard if you play the XP CD backwards, you get a satanic message. Thats nothing compared to what happens if you play it forward, then it installs Windows XP born2oc.be - Facts Of Life


Verwijderd

Topicstarter
packman schreef op 31 oktober 2002 @ 13:34:
PHP:
1
imagejpeg($thumbnail, "../img/portfolio/thumb$code$plaatje[name]");

?? Ik veronderstel dat je dit bedoeld:

PHP:
1
imagejpeg($thumbnail, "../img/portfolio/thumb$code{$plaatje['name']}");


ik zou zo de hele code is doorlopen, en de php-manual nog eens vastnemen voor je aan zoiets begint...
dan altijd nog whitespaces :)

maar als hij niet eens in die foreach komt (1 regel onder foreach een echo 'HEY!'; zetten wordt niet geparsed)

dan lijkt me dat op dit moment onzinnig :)

  • packman
  • Registratie: November 2000
  • Laatst online: 17-12-2024
Verwijderd schreef op 31 oktober 2002 @ 13:05:
PHP:
1
// allemaal code..


das m'n form
Plain HTML leren kan anders ook wel van pas komen soms... wat jij doet is:
code:
1
<table><form ...>{inhoud van tabel en form}</table></form>

Je sluit dus je tags in de verkeerde volgorde af... Maak daar eens:
code:
1
<table><form ...>{inhoud van tabel en form}</form></table>
of
code:
1
<form ...><table>{inhoud van tabel en form}</table></form>
van...

[ Voor 0% gewijzigd door packman op 31-10-2002 13:54 . Reden: form zever ]

I heard if you play the XP CD backwards, you get a satanic message. Thats nothing compared to what happens if you play it forward, then it installs Windows XP born2oc.be - Facts Of Life


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 15:13

Altaphista

1. check manual, 2. ask

kijk es of je op een andere manier de geposte vars kunt uitlezen...
for each posted var as $varnaam echo $varnaam oid. (zit ff te diep in asp, java en jsp om php zo uit mn hoofd te kunnen :) )

Je gaat het pas zien als je het doorhebt.


Verwijderd

Topicstarter
PHP:
1
2
3
4
5
if ($_POST["submit"]) {
echo $_POST['file'];
echo $_POST['submit'];
print_r ($HTTP_POST_FILES); 
  foreach ($HTTP_POST_FILES as $plaatje) {


heeft als output:

C:\\Documents and Settings\\John\\Mijn documenten\\Mijn afbeeldingen\\3 oktber\\3 oktber 006.jpgUploadenArray ( )

Verwijderd

Topicstarter
packman schreef op 31 oktober 2002 @ 13:40:
[...]


Plain HTML leren kan anders ook wel van pas komen soms... wat jij doet is:
code:
1
<table><frame ...>{inhoud van tabel en frame}</table></frame>

Je sluit dus je tags in de verkeerde volgorde af... Maak daar eens:
code:
1
<table><frame ...>{inhoud van tabel en frame}</frame></table>
of
code:
1
<frame ...><table>{inhoud van tabel en frame}</table></frame>
van...
<frame> ??

:Z

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 15:13

Altaphista

1. check manual, 2. ask

jonge, ga zelf ff debuggen... en trek daar je conclusies uit... probeer opnieuw etc...

edit: functioneerd moet met een t :)

Je gaat het pas zien als je het doorhebt.


  • packman
  • Registratie: November 2000
  • Laatst online: 17-12-2024
Watch and learn...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
print_r($_POST);
print_r($_FILES);

if ($_POST['submit'] && $_POST['file']) {
  echo 'SUBMITTED: OK<br />\n';
  
  foreach ($_FILES as $plaatje) {
    echo 'IMAGE: {$plaatje['name']} LOOP<br />\n';
    
    $allowed_types = array("image/pjpeg","image/jpeg");
    $code = rand(100000,999999);

    if (in_array($plaatje['type'], $allowed_types)) {
      echo 'IMAGE: {$plaatje['type']} ALLOWED<br />\n';
      $fullimage = ImageCreateFromJPEG($plaatje['tmp_name']);

      $fullwidth = imagesx($fullimage);
      $fullheigth = imagesy($fullimage);

      if ($fullwidth > 640) {
        echo 'IMAGE: $fullwidth > 640 <br />\n';
        echo TableTop("Foto aan portfolio toevoegen...");
        echo TableBot("Helaas.... :(\n\nHet is mislukt, je foto is groter dan 640 pixels breed.");
        include('../inc/right.inc.php');
        include('../inc/footer.inc.php');
        exit();
      }
      echo 'IMAGE: $fullwidth OK<br />\n';
      $thumbratio = imagesx($fullimage)/150;
      $thumbwidth = imagesx($fullimage)/$thumbratio;
      $thumbheight = imagesy($fullimage)/$thumbratio;

      $thumbnail = ImageCreateTrueColor($thumbwidth, $thumbheight);
      imagefill($thumbnail, 0, 0, ImageColorAllocate($thumbnail, 255, 255, 255));
      imagecopyresampled($thumbnail, $fullimage, 0, 0, 0, 0, $thumbwidth, $thumbheight, imagesx($fullimage), imagesy($fullimage));
      imagejpeg($thumbnail, "../img/portfolio/thumb$code{$plaatje['name']}");

      move_uploaded_file($plaatje[tmp_name], "../img/portfolio/full$code{$plaatje['name']}");

      mysql_query("INSERT into fotos (path, width, height) VALUES ('$code{$plaatje['name']}', '$fullwidth', '$fullheigth')") or die(mysql_error());
      
      echo TableTop("Foto aan portfolio toevoegen...");
      echo TableBot("Het is gelukt! :D\n\nJe foto is toegevoegd aan de portfolio!\n\n[url2=$PHP_SELF]Terug naar de portfolio[/url]");
    }
}


Zo debug je dus...

I heard if you play the XP CD backwards, you get a satanic message. Thats nothing compared to what happens if you play it forward, then it installs Windows XP born2oc.be - Facts Of Life


  • packman
  • Registratie: November 2000
  • Laatst online: 17-12-2024
ach jong - zeik niet - je weet best wat ik bedoel...

I heard if you play the XP CD backwards, you get a satanic message. Thats nothing compared to what happens if you play it forward, then it installs Windows XP born2oc.be - Facts Of Life


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
GoT is geen helpdesk service of 'we pakken je bij het handje'-forum. Je mag zelf wel wat meer initiatief vertonen en de gegeven hints (want dat is toch meestal wat er gepost wordt, een hint, en geen kant en klare oplossing) zelf verder uitspitten/verwerken en er wat mee doen.
Jij wilt blijkbaar dat alles voor jou voorgekauwd wordt, en zo werkt het hier niet. Ik denk dat je nu wel al een hoop tips gekregen hebt waarmee je verder op weg kunt.

Dus:
6. Deze thread gaat dicht voor het uitaard in over en weer geflame.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.