Autor Zpráva
leorond
Profil
Ahoj, napsal jsem si tento script pomocí kterého chci upravit tabulku v DB a chtěl bych vás poprosit o menší kontrolu zda je script správně, případně jaké jsou tam chyby a jak by bylo možné je odstranit.
Nepotřebuji komentáře týkající se nepodpory mysql v php 7

<?
/* test #{}*/
/* Úprava telefonu */
if(isset($_POST["OK"]))
    {
        if(strlen($_POST["telefon"])<9) 
        {
            echo "Telefon je příliš krátký!";
        }
        else
        {
            $telefon    =    mysql_real_escape_string($_POST["telefon"]);
            if(preg_match('/^([0-9]+)$/', $telefon)) 
            {
                mysql_query("UPDATE kontakt SET telefon = '$telefon'");
            }
            else
            {
                echo "Telefon může obsahovat pouze číslice!";
            }
        }
    }
/* Výpis */
$mysql        =    mysql_query("SELECT * FROM kontakt");
$kontakt    =    (mysql_fetch_assoc($mysql));
    echo    "<table>
                <tr>
                    <td>".htmlspecialchars($kontakt["telefon"])."</td>
                </tr>
            </table>";
?>
<form action="#" method="post">
    <input placeholder="Telefon..." name="telefon" type="text">
    <input type="submit" name="OK" value="Send"/>
</form>

Připojení k DB mám zvlášť, samozřejmě bude soubor zabezpečen proti příchodu bez přihlášení a také pomocí .htaccess. Podmínku pro vyhledání příslušného řádku v DB si později nastavím sám, bavím se zde o úpravě již existujícího záznamu telefonního čísla v tabulce kontakt.

Děkuji za pomoc
Alphard
Profil
Měl bych nějaké výhrady ke stylu, kterým je to napsané, ale jinak je to ze strany PHP v pořádku.
Z pohledu použitelnosti tam je chybně použit placeholder. Ten má obsahovat ukázkovou hodnotu, ne popis. A ta validace je docela přísná, aspoň mezery by se mohly v rámci normalizace čísla smazat automaticky.
leorond
Profil
Alphard:
Děkuji, placeholder samozřejmě upravím později jen jsem chtěl mít jistotu zda jsem to napsal správně.

Co se týká toho automatického odstranění mezer tak bych tam spíše chtěl dosadit automatické vkládání "-" za každé třetí číslo ale to udělám až ve výpisu za pomoci funkce substr kde budu vypisovat určité části řetězce a mezi ně vkládat "-".
blaaablaaa
Profil
leorond:
Nejlepsi reseni je umoznit zadat vstup, jaky chce on. Na nas je pak z toho dostat to, co chceme my :D Tzn. at si telefon zada ve formatu +420 777 123 456, 777 123 456 nebo 00420777123456, meli bychom vse umet prijmout a zpracovat.

Ale jak pise Alphard, minimalne dovol zadat 777 123 456, takze treba odstran veskere nenumericke znaky a zjistuj, jestli ma tel. alespon 9 cislic.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: