Autor | Zpráva | ||
---|---|---|---|
michal454454 Profil |
#1 · Zasláno: 11. 2. 2015, 16:06:06
Zdravím potřeboval bych prosím poradit s problémem a to s takovým jak nacis přes input file obrázky hracu do slozky ./images
nasel jsem na internetu nejaky zdrojovy kod který fungoval, ale když jsem ho pak pouzil primo u te me věci tak ne... :/ to je ten zdroják: <? # toto je soubor index.php v adresari web/test/ if ($_POST["save"] == "Nahrat soubor") { #cesta na serveru $uploadpath = $_SERVER['DOCUMENT_ROOT']; # adresare musi mit prava pro zapis tj.777 $uploaddir='test/tmp/'; $uploaddir2='test/soubory/'; $uploadfile = $uploadpath.$uploaddir.$_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) { echo "Soubor byl presunut z ".$_FILES['userfile']['tmp_name']." do $uploadfile<br />"; # soubor lze nyni zkopirovat i na vice mist a pote smazat Copy($uploadpath.$uploaddir.$_FILES['userfile']['name'], $uploadpath.$uploaddir2.$_FILES['userfile']['name']); echo "Soubor byl zkopirovan do adresare $uploaddir2<br />"; @unlink($uploadpath.$uploaddir.$_FILES['userfile']['name']); echo "Docasny soubor odstranen z $uploaddir<br />"; # info o nahranem souboru echo "<pre> Informace o souboru: "; print_r($_FILES); echo "</pre>"; } } ?> <form name="image_edit" method="post" enctype="multipart/form-data"> <input name="userfile" type="file" /> <input name="save" type="submit" value="Nahrat soubor" /> </form> soubor admin.php $u=new user($db); if(isset($_GET['module'])){ switch($_GET['module']){ case 'pridejHrac': echo '<hr id="admrhr" style="width:75%;margin:auto;"/>'; echo $u->pridejHracForm(); break; } } public function pridejHracForm(){ return " <div class='admr'><form action='index.php?action=admin' method='POST'> <p>Číslo: <input type='text' name='ncislo'/></p>\n <p>Jméno: <input type='text' name='njmeno'/></p>\n <p>Věk: <input type='text' name='nvek'/></p>\n <p>Foto: <input type='file' name='nfoto'/></p>\n <p>Zápasy: <input type='text' name='nzapasy'/></p>\n <p>Góly: <input type='text' name='ngoly'/></p>\n <p>Post: <select name='npost'><option value='Brankář'>Brankář</option><option value='Obránce'>Obránce</option><option value='Útočník'>Útočník</option> </select></p>\n <input type='submit' name='odeslat' value='Přidat' /> </form></div>"; } |
||
mimochodec Profil |
#2 · Zasláno: 11. 2. 2015, 16:17:03
Co znamená, že nefunguje? Nějaká hláška z toho vypadne? Ověř si, kudy kód probíhá, co se ještě provede a co už ne.
|
||
juriad Profil |
#3 · Zasláno: 11. 2. 2015, 16:19:34
michal454454:
Formuláři přidej atribut: enctype="multipart/form-data"
A změň název a hodnotu odesílacího tlačítka, aby se shodovala s 6. řádkem prvního kódu. |
||
mimochodec Profil |
#4 · Zasláno: 11. 2. 2015, 16:30:07
juriad:
Řekl bych, že k nahrání obrázku slouží ten formulář v prvním bloku kódu na ř. 37. |
||
juriad Profil |
#5 · Zasláno: 11. 2. 2015, 16:45:21
mimochodec:
Aha. Je však možné, že to je ten, který fungoval. |
||
michal454454 Profil |
Prave ze to zadnou chybu nepise... a do ty složky to nepřidá upravil jsem to takto
soubor admin.php $u=new user($db); case 'pridejHrac': echo '<hr id="admrhr" style="width:75%;margin:auto;"/>'; # toto je soubor index.php v adresari web/test/ if ($_POST["odeslat"]) { #cesta na serveru $uploadpath = $_SERVER['DOCUMENT_ROOT']; # adresare musi mit prava pro zapis tj.777 $uploaddir='web/images/'; $uploadfile = $uploadpath.$uploaddir.$_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) { echo "Soubor byl presunut z ".$_FILES['userfile']['tmp_name']." do $uploadfile<br />"; # soubor lze nyni zkopirovat i na vice mist a pote smazat Copy($uploadpath.$uploaddir.$_FILES['userfile']['name']); echo "Soubor byl zkopirovan do adresare $uploaddir<br />"; @unlink($uploadpath.$uploaddir.$_FILES['userfile']['name']); echo "Docasny soubor odstranen z $uploaddir<br />"; # info o nahranem souboru echo "<pre> Informace o souboru: "; print_r($_FILES); } } echo $u->pridejHracForm(); break; public function pridejHracForm(){ return " <div class='admr'><form action='index.php?action=admin' method='POST'> <p>Číslo: <input type='text' name='ncislo'/></p>\n <p>Jméno: <input type='text' name='njmeno'/></p>\n <p>Věk: <input type='text' name='nvek'/></p>\n <p>Foto: <input type='file' name='nfoto'/></p>\n <p>Zápasy: <input type='text' name='nzapasy'/></p>\n <p>Góly: <input type='text' name='ngoly'/></p>\n <p>Post: <select name='npost'><option value='Brankář'>Brankář</option><option value='Obránce'>Obránce</option><option value='Útočník'>Útočník</option> </select></p>\n <input type='submit' name='odeslat' value='Přidat' /> </form></div>"; } |
||
mimochodec Profil |
#7 · Zasláno: 11. 2. 2015, 16:50:08
michal454454:
Musíš lokalizovat chybu. Ta podmínka if ($_GET["odeslat"]) { je splněna? Dej si za ni echo "1"; Jestli se ti jednička vypíše, postupuj dál a hledej až nějaký řádek, který neproběhne. Naopak jestli se nevypíše, hledej stejným způsobem směrem nahoru, to místo, které ještě proběhne.
|
||
michal454454 Profil |
#8 · Zasláno: 11. 2. 2015, 16:52:26
tak nahore uz nemá co probihat jinak všechno probiha v pohode normalne formular to vypise akorát to do ty slozky nefunguje...
|
||
mimochodec Profil |
#9 · Zasláno: 11. 2. 2015, 16:55:47
Ten if kolem move_uploaded_file je splněn? To za ním se provede?
|
||
michal454454 Profil |
#10 · Zasláno: 11. 2. 2015, 17:10:34
tak ted to mám takto a vypsalo mi to chybu chyba databaze kterou mam v podmínce hned v ty funkci pridejHrac()
user.php - funkce pridejHrac() public function pridejHrac($cislo,$jmeno,$vek,$foto,$zapasy,$goly,$post) { if($this->db->get('hraci','cislo',['cislo' => $cislo]) == $cislo){ exit(); } else { if($this->db->insert('hraci',['cislo' => $cislo, 'jmeno' => $jmeno,'vek' => $vek,'foto' => $foto,'zapasy' => $zapasy,'goly' => $goly,'post'=> $post])){ return "<p>Hráč $jmeno byl úspěšně přidán !</p>"; } else { return "<p>Chyba databáze</p>"; } } $id = $this->db->count('hraci','*'); return "<p>Successfully registered $id users! Continue <a href='./'> here </a></p> "; exit(); } public function pridejHracForm(){ return " <div class='admr'><form action='index.php?action=admin' method='POST' enctype='multipart/form-data'> <p>Číslo: <input type='text' name='ncislo'/></p>\n <p>Jméno: <input type='text' name='njmeno'/></p>\n <p>Věk: <input type='text' name='nvek'/></p>\n <p>Foto: <input type='file' name='nfoto'/></p>\n <p>Zápasy: <input type='text' name='nzapasy'/></p>\n <p>Góly: <input type='text' name='ngoly'/></p>\n <p>Post: <select name='npost'><option value='Brankář'>Brankář</option><option value='Obránce'>Obránce</option><option value='Útočník'>Útočník</option> </select></p>\n <input type='submit' name='odeslat' value='Přidat' /> </form></div>"; } case 'pridejHrac': echo '<hr id="admrhr" style="width:75%;margin:auto;"/>'; # toto je soubor index.php v adresari web/test/ if ($_POST["odeslat"]== "Přidat") { #cesta na serveru $uploadpath = $_SERVER['DOCUMENT_ROOT']; # adresare musi mit prava pro zapis tj.777 $uploaddir='web/images/'; $uploadfile = $uploadpath.$uploaddir.$_FILES['nfoto']['name']; if (move_uploaded_file($_FILES['nfoto']['tmp_name'],$uploadfile)) { echo "Soubor byl presunut z ".$_FILES['nfoto']['tmp_name']." do $uploadfile<br />"; # soubor lze nyni zkopirovat i na vice mist a pote smazat Copy($uploadpath.$uploaddir.$_FILES['nfoto']['name']); echo "Soubor byl zkopirovan do adresare $uploaddir<br />"; @unlink($uploadpath.$uploaddir.$_FILES['nfoto']['name']); echo "Docasny soubor odstranen z $uploaddir<br />"; # info o nahranem souboru echo "<pre> Informace o souboru: "; print_r($_FILES); } } echo $u->pridejHracForm(); break; |
||
Časová prodleva: 9 let
|
0