Autor | Zpráva | ||
---|---|---|---|
Karel Zelenomocník Profil * |
#1 · Zasláno: 26. 8. 2009, 00:06:00
Dobrý den,
Chtěl jsem si udělat registraci, vše šlo. Chtěl jsem si ještě k registraci připojit obrázek, protože budu dělat Guest Book pro reg. uživatele - tak aby bylo lépe poznat (podle obrázku), o koho jde. Jenže se mi to nějak nevyvedlo a už 2 hodiny nad tím sedím, zkouším vše možné i nemožné a ne a ne najít chybu. Chtěl bych vás tedy poprosit, jestli by se někdo z vás na můj chybný kód podíval a poradil mi, kde mám chybu. <div style="text-align: left;"> <form action="#" method="post"> <input type="text" name="rjmeno"> Uživatelské jméno (2 a víc znaků, Citlivé na velikost písmen !)<BR><BR> <input type="text" name="rmail"> Email<BR><BR> <input type="password" name="rheslo"> Vaše heslo (4 a víc znaků)<BR><BR> <input type="password" name="rheslo2"> Heslo podruhé<BR><BR> <input type="file" name="obrazek" />Obrázek (Nepovinné)<BR><HR noshade> <input type="submit" name="odeslat" value="Zaregistrovat"><BR> </form> </div> <center><strong>Status :</strong> <?php /* PODMÍNKY START */ if (isset($_POST['rjmeno'])){ if (ereg("^.{2,}$", $_POST['rjmeno'])){ if (ereg("^.{4,}$", $_POST['rheslo'])){ if (ereg("^.+@.+\\..+$", $_POST['rmail'])){ if ($_POST["rheslo"]==$_POST['rheslo2']){ if (file_exists("uzivatele/".$_POST['rjmeno'].".php")){ echo "Uživatel se stejným jménem již existuje, vyberte si prosím jiné.";} else { /* PODMÍNKY KONEC */ /* UPLOAD OBRÁZKU START */ if($_FILES['obrazek']> 1){ if(!$_FILES['obrazek']['type']=="image/jpeg"){ echo "Jsou povoleny jen formáty JPG, JPEG, PJEG, PNG !"; $obrazek_s_cestou = "uzivatele/obrazky/bezobrazku.bmp"; }else{ if(!$_FILES['obrazek']['type']=="image/jpg"){ echo "Jsou povoleny jen formáty JPG, JPEG, PJEG, PNG !"; $obrazek_s_cestou = "uzivatele/obrazky/bezobrazku.bmp"; }else{ if(!$_FILES['obrazek']['type']=="image/pjeg"){ echo "Jsou povoleny jen formáty JPG, JPEG, PJEG, PNG !"; $obrazek_s_cestou = "uzivatele/obrazky/bezobrazku.bmp"; }else{ if(!$_FILES['obrazek']['type']=="image/png"){ echo "Jsou povoleny jen formáty JPG, JPEG, PJEG, PNG !"; $obrazek_s_cestou = "uzivatele/obrazky/bezobrazku.bmp"; }else{ $cesta="uzivatele/obrazky/"; $slozka = "uzivatele/obrazky"; $cil = $slozka . "/" .$_FILES['obrazek']['name']; $nazev_souboru = $_FILES['obrazek']['tmp_name']; $copy = move_uploaded_file($nazev_souboru, $cil) or die ("Přenesený soubor nelze zkopírovat"); chmod ($cil, 0777); if($copy == true){ }else{ echo "Soubor nemohl být nahrán.\nPočet chyb: " . $_FILES['fupload']['error']; }}}}}} else $obrazek_s_cestou = "uzivatele/obrazky/bezobrazku.bmp"; /* VYTVÁŘENÍ STRÁNKY UŽIVATELE START */ $heslo_sha1 = sha1 ($_POST['rheslo']); $co_ulozit = "<?php if(\$_SERVER['REMOTE_ADDR']==\"123.123.123.123\"){ echo \"<+\+|+/+>".$_POST['rmail']."<+\+|+/+>".$heslo_sha1."<+\+|+/+>$cil<+\+|+/+>\";}?>"; $stranka_uzivatele = fopen("uzivatele/".$_POST['rjmeno'].".php", "w+"); fwrite($stranka_uzivatele, $co_ulozit); fclose($stranka_uzivatele); /* VYTVÁŘENÍ STRÁNKY UŽIVATELE KONEC */ /* HLÁŠKA O ÚSPĚŠNOSTI START */ echo $_FILES['obrazek']['name']."Registrace úspěšná !<BR>Nyní se můžete přihlásit.</script>"; /* HLÁŠKA O ÚSPĚŠNOSTI KONEC */ }} else echo "Heslo nesouhlasí !";} else echo "Špatný formát e-mailu !"; /* CHYBOVÁ HLÁŠKA START */ } else echo "Heslo musí mít alespoň 4 znaky !"; } else echo "Jméno musí mít alespoň 2 znaky !";} /* CHYBOVÁ HLÁŠKA KONEC */ ?></center> Děkuji, už jen za přečtení příspěvku, Karel Zelenomocík |
||
Alphard Profil |
#2 · Zasláno: 26. 8. 2009, 00:16:04
Kód jako celek radši nekomentuji :-)
Formulář, který odesílá soubor musí mít enctype="multipart/form-data". Místo $_FILES['obrazek']> 1 bude lepší funkce is_uploaded_file(). A po podmínce na řádku 23 jsem radši přestal číst dál. |
||
Karel Zelenomocník Profil * |
#3 · Zasláno: 26. 8. 2009, 00:23:21
Post dodal jsem enctype, ale pořád se mi obrázek nenaloaduje.
Co je na té podmínce špatně ? Rád bych věděl co jsem udělal špatně abych se ponaučil, díky. |
||
Alphard Profil |
#4 · Zasláno: 26. 8. 2009, 00:51:57
Karel Zelenomocník:
„dodal jsem enctype, ale pořád se mi obrázek nenaloaduje.“ A co se stane? Vypisuje se nějaká chyba? „Co je na té podmínce špatně ? Rád bych věděl co jsem udělal špatně abych se ponaučil“ Není to přímo špatně, ale je to nepřehledné a neudržovatelné. Dobrým zvykem je alespoň odsazovat kód. Těžko říct, kde je chyba, je to fakt nečitelné. Zkuste zakomentovat ty podmínky a nechte jenom čistý upload, jestli to půjde, je chyba v podmínkách, jestli ne, tak uploadu samotném. |
||
fajzen Profil |
#5 · Zasláno: 26. 8. 2009, 10:26:38
„Co je na té podmínce špatně ?“
„if(!$_FILES['obrazek']['type']=="image/jpeg"){“ Najskôr sa zneguje $_FILES['obrazek']['type'], čo je reťazec a ten sa vždy zneguje na false (ak nie je prázdny) a potom sa porovnáva s reťazcom "image/jpeg", ktorý sa prevedie na bool hodnotu true... Správny tvar podmienky: if($_FILES['obrazek']['type']!="image/jpeg"){ prípadne ešte aj if(!($_FILES['obrazek']['type']=="image/jpeg")){ |
||
Časová prodleva: 15 let
|
0