Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
albertpatera
Redaktor
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
Redaktor
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
Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a zeptat na cokoli se mě můžeš na https://github.com/HoBi/...
Avatar
Kit
Redaktor
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  +3 8.6.2013 10:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
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
Tým ITnetwork
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
Avatar
Kit
Redaktor
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
Redaktor
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
Redaktor
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.