Právě je 25 dub 2024 17:01

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 12 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 05 lis 2009 03:07 

Registrován:
03 lis 2009 18:16
Příspěvky:
21
mam problem s nahravanim dat do databaze, vsechny promenne jsem zmenil tak aby zde fungovaly, 2 prispevky mi sly pridat, potom jsem zmenil move uploaded file a nic :(, i kdyz to ted vratim zpet, tak jak jsem to mel jinde, nejde poslat ani text :(...

Kód:
<?php


if($_POST["submit"]) {

include ("pripoj.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());   
mysql_query("SET NAMES 'utf8'") or die('Nelze vybrat kódování.');

$sql = "INSERT INTO items (id,name,cena,size,unit,ih,img2) VALUES ('$_POST[id]','$_POST[name]','$_POST[cena]',$_POST[size],'$_POST[unit]','$_POST[ih_name]','$_POST[img2_name]')";
$vysledek = mysql_query($sql);
echo "<div id=hlaska1>Zboží bylo úspěšně uloženo do databáze.</div>";

if (move_uploaded_file ($_POST[ih], "$_POST[unit]/$_POST[ih_name]")):
echo "<br><div id=hlaska2>OK fotka (1)</div>";
endif;

if (move_uploaded_file ($_POST[img2], "$_POST[unit]/$_POST[img2_name]")):
echo "<br><div id=hlaska3>OK fotka (2)</div>";
endif;

}
?>


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 05 lis 2009 10:47 

Registrován:
05 lis 2009 10:25
Příspěvky:
4
Jak na to koukam prijde mi to dost jako divnej kod,ale chtelo by to abys ukazal aji ten html formular ,tady je priklad funkcniho kodu mozna ti pomuze :arrow: :arrow: :arrow:
Kód:
require_once('connection.php');

if(isset($_POST['action']) && $_POST['action'] == 'submitform')
{
   //prijmuti promnenych

       $name = $_POST['name'];
            $contact = $_POST['contact'];                   
            $email = $_POST['email'];
       $adress = $_POST['adress'];
            $city = $_POST['city'];
            $description = $_POST['description'];
      

   //ukladani dat do DB

   mysql_select_db($database_connection, $connection);

   $insert_query = "INSERT INTO window(name, contact ,email, adress, city, description, update) VALUES ('$name','$contact','$email','$adress','$city','$description',NOW())";
                                                       
                                                

   $result = mysql_query($insert_query, $connection) or die(mysql_error());

   if(!$result){
                  echo("Mas to rozbity");
}
} else{
               echo("blablabla ulozeno");
}




Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 05 lis 2009 12:07 
C4 podpora
C4 podpora

Registrován:
29 čer 2009 20:53
Příspěvky:
263
Dobrý den,

pro práci s uploadovaným souborem slouží superglobální pole $_FILES nikoliv $_POST. Mělo by to vypadat nějak takto:

Kód:
move_uploaded_file($_FILES['userfile']['ih'], "$_POST[unit]/$_POST[ih_name]")


Samozřejmě to bude fungovat za předpokladu, že řetězec "$_POST[unit]/$_POST[ih_name]" dává cestu k souboru, kde by měl být uložen na webu, čímž si nejsem jistý (asi tam opět používáte chybně pole $_POST místo $_FILES). Dále upozorňuji, že při uploadu souborů je nutné, aby tag form byl tvaru:

<form action="" method="post" enctype="multipart/form-data">

Příklad, jak úspěšně provést upload souboru, naleznete na:

http://www.php.net/manual/en/features.f ... method.php

_________________
Jan Vítek
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 05 lis 2009 12:40 

Registrován:
03 lis 2009 18:16
Příspěvky:
21
takhle vypada formular:

Kód:
<FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<input type="hidden" name="id">
<label for="name">Jméno:</label><INPUT type="Text" name="name" class="form"><br><br>
<label for="cena">Cena:</label><INPUT type="Text" name="cena" class="form"><br><br>
.
.
.
.
.



zatim diky jdu zkouset :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 05 lis 2009 15:50 

Registrován:
03 lis 2009 18:16
Příspěvky:
21
ještě se chci zeptat k tomu moveuploadedfile, jetli si to samo vytvori tu slozku? popr co mam pridat za script?
predpokladam ze budu muset pridat neco co overi zda existuje slozka ktera se=te promenne unit + prikaz ktery ji vytvori pokud neexistuje...

diky moc


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 06 lis 2009 06:51 

Registrován:
03 lis 2009 18:16
Příspěvky:
21
částečně už funguju, ale obrázek se pořád nuploaduje ani nezapise do tabulky...

tak takhle vypadá kód:

Kód:
<?php

require_once('connect.php');

if (isset($_POST['submit']))
{

       $id = $_POST['id'];
       $name = $_POST['name'];
       $cena = $_POST['cena'];                   
       $size = $_POST['size'];
       $unit = $_POST['unit'];
       $ih_name = $_POST['ih_name'];
       $img2_name = $_POST['img2_name'];
     
   mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error());
   mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());   
   mysql_query("SET NAMES 'utf8'") or die('Could not set names');

  $insert_query = "INSERT INTO items (id, name, cena , size, unit, ih, img2) VALUES ('$id','$name','$cena','$size','$unit','$ih_name','$img2_name')";
 
  $result = mysql_query($insert_query) or die(mysql_error());


move_uploaded_file($_FILES['userfile']['ih'], "$_POST[unit]/$_POST[ih_name]");

move_uploaded_file($_FILES['userfile']['img2'], "$_POST[unit]/$_POST[img2_name]");

}

?>

<FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<input type="hidden" name="id">
<label for="name">Jméno:</label><INPUT type="text" name="name" class="form"><br><br>
<label for="cena">Cena:</label><INPUT type="text" name="cena" class="form"><br><br>
<label for="size">Velikost:</label><INPUT type="text" name="size" class="form"><br><br>
<label for="unit">Zařazení:</label>
<select name="unit" size="1" class="form">
<option value=none>-Oblečení:
<option value=none>
  <option value=none>Pánské:
   <option value="1">Bundy
   <option value="2">Čepice
   <option value="3">Doplňky
</select>
<br><br>
<label for="ih">Fotka 1:</label><input type="file" name="ih" class="form"><br><br>
<label for="img2">Fotka 2:</label><input type="file" name="img2" class="form"><br><br>
<label for="submit"></label><INPUT type="submit" name="submit" value="Odeslat" class="form">
</FORM>


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 06 lis 2009 11:15 
C4 podpora
C4 podpora

Registrován:
29 čer 2009 20:53
Příspěvky:
263
Existenci adresáře ověříte funkcí is_dir(), adresář vytvoříte funkcí mkdir(). Nedoporučoval bych, aby názvy souborů a adresářů, které bude skript vytvářet, byly brány ze vstupního formuláře. Kdokoliv, kdo bude mít k tomu formuláři přístup, tak může na web přidávat svoje php skripty. Stačí aby zadal název souboru s koncovkou php ($_POST[ih_name]).

_________________
Jan Vítek
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 09 lis 2009 11:38 

Registrován:
03 lis 2009 18:16
Příspěvky:
21
mám ještě problém s kódem u formulářů, určených k editaci a to takovou, že se nezobrazí...nevíte čím to může být?? normálně se mi ty záznamy zobrazují u formulářů se mi nezobrazí ani oni.díky

Kód:
while ($zaznam = mysql_fetch_array($hodnoty)):
echo "<form method='post' action='";
echo $_SERVER['PHP_SELF'];
echo "' enctype='multipart/form-data'>";
echo "<label for='name'>Jméno:</label><INPUT type='Text' name='name' class='form' value='";
echo $zaznam[name];
echo "'><br><br>";
echo "<label for='cena'>Cena:</label><INPUT type='Text' name='cena' class='form' value='";
echo $zaznam[cena];
echo "'><br><br>";
echo "<label for='size'>Velikost:</label><INPUT type='Text' name='size' class='form' value='";
echo $zaznam[size];
echo "'><br><br>";
echo "<label for='unit'>Zařazení:</label>
<select name='unit' size='1' class='form'>
<option value=none>-Oblečení:
<option value=none>
  <option value=none>Pánské:
   <option value='1'>Bundy
   <option value='2'>Čepice
   <option value='3'>Doplňky
   <option value='4'>Kalhoty
   <option value='5'>Košile
   <option value='6'>Kraťasy
   <option value='7'>Mikiny
   <option value='8'>Trika
<option value=none>
  <option value=none>Dámské:
   <option value='9'>Trika
   <option value='10'>Mikiny
   <option value='11'>Doplňky
   <option value='none'>---------------------
<option value=none>-Kuřácké potřeby:
<option value=none>
  <option value='none'>-Blunty
  <option value='12'>Blunty
  <option value='13'>Doplňky
  <option value='none'>-Bongy
  <option value='14'>Acryl
  <option value='15'>Sklo
  <option value='16'>Ostatní
  <option value='17'>Příslušenství(acryl)
  <option value='18'>Příslušenství(sklo)
  <option value='19'>Čistidla
  <option value='none'>-Drtičky
  <option value='20'>Kov
  <option value='21'>Plast
  <option value='22'>-Dýmky
  <option value='23'>-Filtry
  <option value='24'>-Krabičky
  <option value='25'>-Ostatní
  <option value='26'>-Papírky
  <option value='27'>-Podložky a nože
  <option value='29'>-Popelníky
  <option value='30'>-Pytlíky
  <option value='31'>-Shisha
  <option value='32'>-Snuff Stuff
  <option value='none'>-Váhy
  <option value='33'>0.01
  <option value='34'>0.1
  <option value='35'>Ostatní
  <option value='36'>-Zapalovače
</select>
<br><br>
<label for='ih'>Fotka 1:</label><input type='file' name='ih' class='form'>";
echo "<br><br><label for='img2'>Fotka 2:</label><input type='file' name='img2' class='form'>";
echo "<br><br><input type='hidden' name='id' value='";
echo $zaznam[id];
echo "'><input type='hidden' name='obr1' value='";
echo $zaznam[ih];
echo "'><input type='hidden' name='obr2' value='";
echo $zaznam[img2];
echo "'><label for='submit'></label><input type='submit' name='submit' value='Odeslat' class='form'></form>";
endwhile;


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 09 lis 2009 15:46 
C4 podpora
C4 podpora

Registrován:
01 črc 2009 12:23
Příspěvky:
44
Pepe píše:
mám ještě problém s kódem u formulářů, určených k editaci a to takovou, že se nezobrazí...nevíte čím to může být?? normálně se mi ty záznamy zobrazují u formulářů se mi nezobrazí ani oni.díky


Nerozumím. :( Co se nezobrazí? Formulář? V tom případě to bude tím, že dotaz mysql_query() z proměnné $hodnoty (Vámi zaslaný kód začíná těsně za ním, nevím jestli Vám tam třeba nechybí) se vrací prázdný - cyklus while se tedy neprovede ani jednou, a tudíž se nic nezobrazí.

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: odeslání dat do databáze + upload souboru
PříspěvekNapsal: 09 lis 2009 16:31 

Registrován:
03 lis 2009 18:16
Příspěvky:
21
no vůbec se mi nezobrazí formulář, na wz to běží normálně...:
nemůže to být tím, že je tam dvakrát include connectu?? bude stacit kdyz ho mistim jen jednou pred ifisset...submit??

Kód:
if (isset($_POST['submit']))
{

       $id = $_POST['id'];
       $name = $_POST['name'];
       $cena = $_POST['cena'];                   
       $size = $_POST['size'];
       $unit = $_POST['unit'];
      
      if (!$_FILES["ih"]["name"]){
      $obrazek = $_POST['obr1'];
      }
      else {
      $obrazek = $_FILES["ih"]["name"];
      }
      if (!$_FILES["img2"]["name"]){
      $obrazek2 = $_POST['obr2'];
      }
      else {
      $obrazek2 = $_FILES["img2"]["name"];       
       }
      
      $koncovky = array('jpg', 'jpeg', 'png', 'gif');
      
include ("connect.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
mysql_query("SET NAMES 'utf8'") or die('Could not set names');

$sql = "UPDATE items SET name = '$name', cena = '$cena', size = '$size', unit = '$unit', ih = '$obrazek',  img2 = '$obrazek2' WHERE id = $id";
$vysledek = mysql_query($sql);
echo "<div id=hlaska1>Zboží bylo editováno.</div>";

if (!is_dir($_POST['unit'])):
mkdir($_POST['unit'], 0755);
endif;

$chyba = "";
if (!$_FILES || $_FILES["ih"]["error"] == UPLOAD_ERR_INI_SIZE) {
    $chyba = "Soubor je příliš velký, maximální velikost je " . ini_get('upload_max_filesize') . ".\n";
} elseif ($_FILES["ih"]["error"] == UPLOAD_ERR_NO_FILE) {
    $chyba = "Nevybrali jste soubor, který chcete nahrát.\n";
} elseif ($_FILES["ih"]["error"]) {
    $chyba = "Soubor se nepodařilo nahrát, kontaktujte prosím správce serveru.\n";
} elseif (!in_array(strtolower(pathinfo($_FILES["ih"]["name"], PATHINFO_EXTENSION)), $koncovky)) {
    $chyba = "Koncovka souboru musí být jedna z: " . implode(", ", $koncovky) . ".\n";
} elseif (!($imagesize = getimagesize($_FILES["ih"]["tmp_name"])) || $imagesize[2] > 3) {
    $chyba = "Typ obrázku musí být JPG, PNG nebo GIF.\n";
} else {
    move_uploaded_file($_FILES["ih"]["tmp_name"],$_POST['unit'] . "/" . $_FILES["ih"]["name"]);
}

$chyba = "";
if (!$_FILES || $_FILES["img2"]["error"] == UPLOAD_ERR_INI_SIZE) {
    $chyba = "Soubor je příliš velký, maximální velikost je " . ini_get('upload_max_filesize') . ".\n";
} elseif ($_FILES["img2"]["error"] == UPLOAD_ERR_NO_FILE) {
    $chyba = "Nevybrali jste soubor, který chcete nahrát.\n";
} elseif ($_FILES["img2"]["error"]) {
    $chyba = "Soubor se nepodařilo nahrát, kontaktujte prosím správce serveru.\n";
} elseif (!in_array(strtolower(pathinfo($_FILES["img2"]["name"], PATHINFO_EXTENSION)), $koncovky)) {
    $chyba = "Koncovka souboru musí být jedna z: " . implode(", ", $koncovky) . ".\n";
} elseif (!($imagesize = getimagesize($_FILES["img2"]["tmp_name"])) || $imagesize[2] > 3) {
    $chyba = "Typ obrázku musí být JPG, PNG nebo GIF.\n";
} else {
    move_uploaded_file($_FILES["img2"]["tmp_name"], $_POST['unit'] . "/" . $_FILES["img2"]["name"]);
}

if(!$vysledek) {
   $chyba = mysql_errno()." - ".mysql_error();
   echo("<br>$chyba");
}

}


include ("connect.php");
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
mysql_query("SET NAMES 'utf8'") or die('Could not set names');

$sql = ("SELECT id,name,cena,size,unit,ih,img2 FROM items WHERE id = '$id'");

       $id = $_GET['id'];

$hodnoty = mysql_query($sql);
if(!$hodnoty) {
   $chyba = mysql_errno()." - ".mysql_error();
   echo("<br>$chyba");
}

while ($zaznam = mysql_fetch_array($hodnoty)):
echo "<form method='post' action='";
echo $_SERVER['PHP_SELF'];
echo "' enctype='multipart/form-data'>";
echo "<label for='name'>Jméno:</label><INPUT type='Text' name='name' class='form' value='";
echo $zaznam[name];
echo "'><br><br>";
echo "<label for='cena'>Cena:</label><INPUT type='Text' name='cena' class='form' value='";
echo $zaznam[cena];
echo "'><br><br>";
echo "<label for='size'>Velikost:</label><INPUT type='Text' name='size' class='form' value='";
echo $zaznam[size];
echo "'><br><br>";
echo "<label for='unit'>Zařazení:</label>
<select name='unit' size='1' class='form'>
<option value=none>-Oblečení:
<option value=none>
  <option value=none>Pánské:
   <option value='1'>Bundy
   <option value='2'>Čepice
   <option value='3'>Doplňky
   <option value='4'>Kalhoty
   <option value='5'>Košile
   <option value='6'>Kraťasy
   <option value='7'>Mikiny
   <option value='8'>Trika
<option value=none>
  <option value=none>Dámské:
   <option value='9'>Trika
   <option value='10'>Mikiny
   <option value='11'>Doplňky
   <option value='none'>---------------------
<option value=none>-Kuřácké potřeby:
<option value=none>
  <option value='none'>-Blunty
  <option value='12'>Blunty
  <option value='13'>Doplňky
  <option value='none'>-Bongy
  <option value='14'>Acryl
  <option value='15'>Sklo
  <option value='16'>Ostatní
  <option value='17'>Příslušenství(acryl)
  <option value='18'>Příslušenství(sklo)
  <option value='19'>Čistidla
  <option value='none'>-Drtičky
  <option value='20'>Kov
  <option value='21'>Plast
  <option value='22'>-Dýmky
  <option value='23'>-Filtry
  <option value='24'>-Krabičky
  <option value='25'>-Ostatní
  <option value='26'>-Papírky
  <option value='27'>-Podložky a nože
  <option value='29'>-Popelníky
  <option value='30'>-Pytlíky
  <option value='31'>-Shisha
  <option value='32'>-Snuff Stuff
  <option value='none'>-Váhy
  <option value='33'>0.01
  <option value='34'>0.1
  <option value='35'>Ostatní
  <option value='36'>-Zapalovače
</select>
<br><br>
<label for='ih'>Fotka 1:</label><input type='file' name='ih' class='form'>";
echo "<br><br><label for='img2'>Fotka 2:</label><input type='file' name='img2' class='form'>";
echo "<br><br><input type='hidden' name='id' value='";
echo $zaznam[id];
echo "'><input type='hidden' name='obr1' value='";
echo $zaznam[ih];
echo "'><input type='hidden' name='obr2' value='";
echo $zaznam[img2];
echo "'><label for='submit'></label><input type='submit' name='submit' value='Odeslat' class='form'></form>";
endwhile;
?>


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 12 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PHP, MySQL Hosting
Návody pro C4

© 2009-2024 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz