Avatar
albertpatera
Redaktor
Avatar
albertpatera:

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:
  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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:

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:

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:

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:

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:

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:

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ů.
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.