Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu. Zároveň využij slevovou akci až 30 % zdarma při nákupu e-learningu - Více informací.
python week + discount 30
Avatar
albertpatera
Tvůrce
Avatar
albertpatera:7.6.2013 22:42

ahoj, potřeboval bych pomoct s kódem a najít, kde mám chybu, resp. vím, kde mám chybu, le nevim, jak ji vyřešit.

<?php

//connect to database
mysql_connect("localhost","black1354550912","ge9PlZZ") or die(mysql_error());
mysql_select_db("black1354550912") or die(mysql_error());

// file propertiers
$file = $_FILES['image']['tmp_name'];

if (!isset($file))
  echo "Prosím vyberte soubor";
else
{
 $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
 $image_name = addslashes($_FILES['image']['name']);
 $image_size = getimagesize($_FILES['image']['tmp_name']);

 if ($imagesize==FALSE)
   echo "Toto není obrázek.";
else
{
   if (!$insert = mysql_query("INSERT INTO upladeimage VALUES ('','$image_name','$image')"));
      echo "Chyba při nahrávání souboru";
   else
   {
    $lastid = mysql_insert_id();
    echo "Obrazek byl nahran.<p />Your Image:<p /><img src=get.php?id=$lastid";
   }
}




}



?>
</html>

mám chybu u

else
   {
    $lastid = mysql_insert_id();
    echo "Obrazek byl nahran.<p />Your Image:<p /><img src=get.php?id=$lastid";
   }

ale prave nevim, jak tu chybu opravit, protoze kdyby to tam else nebylo, tak by se ta akce neprobedla...nevíte někdo, jak to vyresit? zkousel sem to vsema ruznejma zpusobama, ale ani jeden to nevyresil..díky

 
Odpovědět
7.6.2013 22:42
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na albertpatera
Honza Bittner:7.6.2013 22:52
  1. nejdříve zkus doplnit úvodní tagy <p> a pak konec tagu <img />
  2. pokud nemáš $lastid ve stylu 'abc' tak musíš za src= dát uvozovky .. jinak ti vznikne něco jako src=abc
Nahoru Odpovědět
7.6.2013 22:52
Absolvent FIT ČVUT :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na albertpatera
Kit:8.6.2013 10:52

Za "if" máš nadbytečný středník. Kdybys nedělal tak dlouhé řádky, jistě by sis ho všiml.

Je to hodně podivně napsané.

Nahoru Odpovědět
8.6.2013 10:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na albertpatera
David Čápka:8.6.2013 10:55

Máš tam SQL injekce, addslashes se k escapování nepoužívá. Koukám, že budu muset napsat nový PHP seriál.

Nahoru Odpovědět
8.6.2013 10:55
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Čápka
Kit:8.6.2013 10:57

Má tam těch nesmyslů víc. Například die() se nepoužívá, mysql_connect() je také už jen ve starých tutoriálech.

Nahoru Odpovědět
8.6.2013 10:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tvůrce
Avatar
Odpovídá na Kit
Daniel Vítek:12.6.2013 20:43

Proč se nepoužívá die(); ?

Nahoru Odpovědět
12.6.2013 20:43
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Daniel Vítek
Kit:13.6.2013 9:28

Protože to byla vymyšlena luxusní náhrada: Výjimky.

Nahoru Odpovědět
13.6.2013 9:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na albertpatera
Kit:13.6.2013 9:33

Místo addslashes() raději používej mysql_real_escape_string() nebo ještě lépe prepared statements.

Máš tam pomíchány větve else.

Editováno 13.6.2013 9:34
Nahoru Odpovědět
13.6.2013 9:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Tvůrce
Avatar
Odpovídá na Kit
albertpatera:14.6.2013 13:22

aha díky

 
Nahoru Odpovědět
14.6.2013 13:22
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.