IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: ELSE ERROR - problém

Aktivity
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
FIT ČVUT alumnus :-) 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 Hartinger
Vlastník
Avatar
Odpovídá na albertpatera
David Hartinger: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
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
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
Odpovídá na Kit
Neaktivní uživatel:12.6.2013 20:43

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

Nahoru Odpovědět
12.6.2013 20:43
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
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.