Forum » Programiranje » Dodajanje strani v PHP
Dodajanje strani v PHP
filips ::
Naredil sem kodo, ki bi iz obrazca vpisala strani v bazo. Če bi bilo polje URL izpolnjeno, bi ga preverilo in vse presledke nadomestilo z -, vse črke spremenilo v male in č spremenilo v c, š v s in ž v z in potem to vpisalo v bazo. Če pa nebi bilo polje url izpolnjeno pa bi ime strani skopiralo v url in vse presledke nadomestilo z -, vse črke spremenilo v male in č spremenilo v c, š v s in ž v z in potem to vpisalo v bazo. Koda mi ne dela, saj šumnikov ne spremeni v male črke in jih ne nadomesti s c, s in z.
<? session_start(); $hostname = 'page-add.php'; $_SESSION['user'] = 'filips'; include('../config.php'); if ($mysqli->connect_errno) { echo "Strežnik ne deluje: (" . $mysqli->connect_errnor. ") " . $mysqli->connect_error; } if (isset($_POST['dodaj'])) { $user = $_SESSION['user']; $name = $_POST['ime']; $url = $_POST['url']; $description = $_POST['opis']; $file = $_POST['file']; $date = date('Y-m-d H:i:s'); if ($user == '' or $name == '' or $description == '') { $status = 'Izpolniti je treba vsa polja!<br><a href="#" onClick="history.go(-1)">Nazaj na obrazec</a>'; }else{ if($url=='') { //ne dela od tukaj... $url=$_POST['ime']; $url=strtolower($url); echo $url.'*0*<br>'; $url=str_replace(' ','-',$url); echo $url.'*1*<br>'; $url=str_replace('č','c',$url); echo $url.'*2*<br>'; $url=str_replace('š','s',$url); echo $url.'*3*<br>'; $url=str_replace('ž','z',$url); echo $url.'*4*<br>'; $url=str_replace('Č','c',$url); echo $url.'*5*<br>'; $url=str_replace('Š','s',$url); echo $url.'*6*<br>'; $url=str_replace('Ž','z',$url); echo $url.'*7*<br>'; $url=$url; $url2=$url.'/'; }else { $url=str_replace(' ','-',strtolower($_POST['ime'])); $url=str_replace('č','c',$url); $url=str_replace('š','s',$url); $url=str_replace('ž','z',$url); $url=str_replace('Č','c',$url); $url=str_replace('Š','s',$url); $url=str_replace('Ž','z',$url); $url=$url; $url2=$url.'/'; } //...do tukaj $sql = "INSERT INTO pages (`id`, `user`, `title`, `url`, `content`, `url2`) VALUES (NULL, '$user', '$name', '$url', '$description', '$url2');" OR $status = 'Oprostite, pri dodajanju je prišlo do težave. Vaša stran ni dodana. <a href="#" onClick="history.go(-1)">Nazaj na obrazec</a>'; $mysqli->query($sql); } } if (!isset($_POST['dodaj'])) { echo ' <form action="'. $hostname .'" method="post" name="dodaj"> <p> <label for="ime"></label> <label>Ime strani<br /> <input name="ime" type="text" id="ime" /> </label> </p> <p> <label for="url"></label> <label>url strani (po želji)<br /> <input name="url" type="text" id="url" /> </label> </p> <p> <label for="opis"></label> <label>Vsebina<br /> <textarea name="opis" id="opis"></textarea> </label> </p> <p> <label for="file"></label> <label>Slike programa<br /> <input name="file" type="file" /> </label> </p> <p> <label> <input name="dodaj" type="submit" id="dodaj" value="Dodaj" /> </label> </p> </form> ';} if (isset($_POST['dodaj'])) { if ($status == '') { echo 'Stran dodana!<br><a href="'.$hostname.'">Dodajte novo stran</a>'; }else{ echo $status; } } ?>
Miha 333 ::
Če uporabljaš šumnike oziroma keterekoli ne-ASCII znake in utf kodiranje, so to multibyte znaki, zato moraš uporabiti multibyte različice funkcij za delo z nizi, začenši z mb_strtolower namesto strtolower. Multibyte String Functions
Poleg tega poskrbi, da bo povsod isto kodiranje znakov (npr. utf-8), tako na spletni strani (vnos v polja) kot tudi v tvoji php datoteki.
Poleg tega poskrbi, da bo povsod isto kodiranje znakov (npr. utf-8), tako na spletni strani (vnos v polja) kot tudi v tvoji php datoteki.
Zgodovina sprememb…
- spremenilo: Miha 333 ()
filips ::
To mi zdaj dela, ampak še vedno ne spremeni č v c, š v s in ž v z, če ne uporabim mb_str_replace. Če pauporabim mb_str_replace pa napiše da je to neznana funkcija.
Miha 333 ::
Ja preberi dokumentacijo, ki sem jo linkal, mb_str_replace ne obstaja. Problem je v strtolower, če so vpisani veliki šumniki. str_replace pusti in poglej, kaj ti izpiše.
V katerem editorju pišeš kodo? Ali imaš nastavljeno enako kodiranje kot na spl. strani? Se mi zdi, da sploh nimaš nastavljenega za spletno stran.
V katerem editorju pišeš kodo? Ali imaš nastavljeno enako kodiranje kot na spl. strani? Se mi zdi, da sploh nimaš nastavljenega za spletno stran.
Zgodovina sprememb…
- spremenilo: Miha 333 ()
Mezga0153 ::
mi za podobno stvar uporabljamo:
$data["link"] = mb_strtolower($data["name"], "UTF-8"); $data["link"] = str_replace( array("š", "Š", "Đ", "đ", "č", "Č", "ć", "Ć", "ž", "Ž", " "), array("s", "s", "d", "d", "c", "c", "c", "c", "z", "z", "-"), $data["link"] ); $data["link"] = iconv("UTF-8", "ASCII//TRANSLIT//IGNORE", $data["link"]); $data["link"] = preg_replace("/[^A-Za-z0-9\-]/", '', $data["link"]);
SeMiNeSanja ::
Ja preberi dokumentacijo, ki sem jo linkal, mb_str_replace ne obstaja. Problem je v strtolower, če so vpisani veliki šumniki. str_replace pusti in poglej, kaj ti izpiše.
V katerem editorju pišeš kodo? Ali imaš nastavljeno enako kodiranje kot na spl. strani? Se mi zdi, da sploh nimaš nastavljenega za spletno stran.
Dejansko je čisto možno, da Č, ki ga on tipka v editorju ni Č po UTF-8 ampak recimo po CP1250, če dela v Windows-ih.
Mogoče pa bi raje uporabil kar funkcijo chr() in se izognil temu možnemu problemu?
filips ::
Če uporabim kodo, ki jo je napisal Mezga0153 in vpišem Test čđšž ČĐŠŽ mi pride test---
Kako uporabim funkcijochr ()
Pišem v notepad++
Kako uporabim funkcijo chr ()
Pišem v notepad++
Odgovor prosim čim prej
Ali mi lahko prosim kdo pomaga?
Kako uporabim funkcijochr ()
Pišem v notepad++
Kako uporabim funkcijo chr ()
Pišem v notepad++
Odgovor prosim čim prej
Ali mi lahko prosim kdo pomaga?
Zgodovina sprememb…
- spremenil: filips ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | ASP, MySQL, UTF8, GoDaddy, šumnikiOddelek: Programiranje | 1155 (1024) | techfreak :) |
» | šumniki pretvarjanje z phpOddelek: Programiranje | 3261 (2994) | FrEaKmAn |
» | velike male besede c++Oddelek: Programiranje | 2561 (2177) | PoPon2 |
» | PHP - Register formOddelek: Izdelava spletišč | 1973 (1601) | roli |
» | mysql baza + šumnikiOddelek: Izdelava spletišč | 3994 (3711) | sedovsek |