» »

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.

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.

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 ::

Miha 333 je izjavil:

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?

Zgodovina sprememb…

  • spremenil: filips ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

ASP, MySQL, UTF8, GoDaddy, šumniki

Oddelek: Programiranje
51155 (1024) techfreak :)
»

šumniki pretvarjanje z php

Oddelek: Programiranje
203261 (2994) FrEaKmAn
»

velike male besede c++

Oddelek: Programiranje
152561 (2177) PoPon2
»

PHP - Register form

Oddelek: Izdelava spletišč
241973 (1601) roli
»

mysql baza + šumniki

Oddelek: Izdelava spletišč
103994 (3711) sedovsek

Več podobnih tem