Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.815 pregleda

Najnovija ↓

Čudan problem kod unosa podataka... 28.02.2012. u 17:48 · pre 178 meseci #1
Imam neki problem koji mi je dosta čudan pa nisam siguran u čemu je stvar... Malo kombinacija PHP mySQL...
Rezime problema je da prilikom upisa u bazu dobijem npr ovo:52e280903436473232 umesto ovo:R‐46G22. Sve se obrađuje kroz par funkcija i radi super dok nema crtice u tekstu.
Code:
function ocisti($text) {
$text = strip_tags($text);
$trans = array('"' => """, "'" => "'"); 
$text = strtr($text, $trans); 
return $text; }

function text_index($text){
    $trazi = array(""", "&", "<", ">", " ", "@");
    $html_free = str_replace($trazi, "", $text);
    $trazi = array(" ", "/", "\\", "'", "\"", "-", "_", "&", ",", ";", ":", ".", "&");
    $rezultat = str_replace($trazi, "", $html_free);
    return $rezultat; }
Pokušavam da izvršim nešto ovako:
Code:
$osnova = $_POST["zahtev"]; // prosledim npr: R-46G22
$naziv2 = ocisti($osnova);
$naziv_p = text_index($naziv2);
echo $osnova." ".$naziv2." ".$naziv_p;
i kada ukucam u polje "osnova" dobijem ono što želim:R-46G22 R-46G22 R46G22, međutim kada to isto iskopiram iz nekog excel dokumenta dobijem R‐46G22 R‐46G22 R‐46G22, a unos polja $naziv2 u mySQL mi ubacuje 52e280903436473232, uz to ne radi ni funkcija koja je trebala da izbaci crticu iz $naziv_p.

Da li je neko imao sličnu situaciju?
Re: Čudan problem kod unosa podataka... 29.02.2012. u 00:05 · pre 178 meseci #3
Ništa posebno... Unosim oba polja... Rezultat vidim tako (52e280903436473232) u phpMyAdmin-u, dok SQLyog vidi onako kako ga vidi i PHP (R‐46G22 R‐46G22 R‐46G22).
Code:
$sql="INSERT INTO tabela
                    (naziv, naziv_p)
                    VALUES
                    ('".$naziv."','".$naziv_p.")";
                $q = mysqli_query($link,$sql); 
Polje je varchar(255), InnoDB, utf8_general_ci...
Re: Čudan problem kod unosa podataka... 29.02.2012. u 00:27 · pre 178 meseci #4
Citat:
Ivan Golubović: Ništa posebno... Unosim oba polja... Rezultat vidim tako (52e280903436473232) u phpMyAdmin-u, dok SQLyog vidi onako kako ga vidi i PHP (R‐46G22 R‐46G22 R‐46G22).
Code:
$sql="INSERT INTO tabela
(naziv, naziv_p)
VALUES
('".$naziv."','".$naziv_p.")";
$q = mysqli_query($link,$sql); 


Jesu li potrebni navodnici uopšte?

Probaj 'vako..

Code:


$sql="INSERT INTO tabela
(naziv, naziv_p)
VALUES
(' $naziv ',' $naziv_p ')";
$q = mysqli_query($link,$sql); 
Potpis
about:networking
Re: Čudan problem kod unosa podataka... 29.02.2012. u 01:19 · pre 178 meseci #5
Nema to nikakve veze...
Ima neke veze sa encodingom ovog excel fajla iz koga kopiram podatke. Glavno je da me interesuje zašto se to dešava, kako bi izbegli moguće greške prilikom kasnije obrade podataka...

Kao što sam rekao kada unosim u form input polje podatke ja, PHP/mySQL odradi sve kako treba.
www.mojdaljinski.rs/sporni_fajl.zip - evo i dela tog excel fajla, a problem se javlja samo kod podataka koji imaju crticu...
Re: Čudan problem kod unosa podataka... 29.02.2012. u 02:02 · pre 178 meseci #6
To sto vidis tako je heksadecimalna reprezentacija stringa. Problem zbog koga ti ne radi brisanje crtre (pa i ostalo) je sto ta crta u fajlu nije enkodovana sa 0x2b (ASCII, koju ti pretrazujes) vec kao utf-8 hypen od 3 bajta (0xe2 0x80 0x90). Ne znam da li jos ima takvih specijalnih karaktera ali moze i sa njima da ti se pojavi slican problem.
Potpis
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
Re: Čudan problem kod unosa podataka... 29.02.2012. u 05:20 · pre 178 meseci #7
Ivane, ne znam hoće li ovo pomoći, ali, slične operacije vrši..

Ova funkcija prepravlja ime fajla (SCRIPT_FILENAME) tako što ostavlja samo naziv php fajla - bez ekstenzije i pretvara SVE karaktere unutar samog imena, koji nisu "donja" crtica između slova ili brojeva - u donju crticu.

:)

Probaj da je prepraviš malo i verovatno da ćeš dobiti to što ti treba i eventualno prevazići problem na koji ti je ukazao pajaja.

Code (php):


function just_lower_dash() {

          define('ScriptFileName',
          $_SERVER['SCRIPT_FILENAME']);
          $_arr_ch = explode('/', ScriptFileName);
          $___create = str_replace('/', '',
          substr($_arr_ch[count($_arr_ch) - 1], 0, -4));
         
          $_characters = array('!','#','$','%','&','\'','(',')',
          '+',',','-','.',';','=','@','[',']','^','`','{','}','~','"','*','/',':','<','>','?','\\','|');
         
          $friendlyname = str_replace($_characters, '_',
          preg_replace('/[^a-zA-Z0-9_ \-()\/%-&]/s', '', $___create));
          return $friendlyname;
     }
     
echo just_lower_dash();

 


Dakle, napravi jedan novi .php fajl u lokalu..

Nazovi ga "ja.sam.mnogo-bezobrazni---fajl" , npr..

Kopipejstuj ovo gore u taj fajl i na ekranu treba da dobiješ rezultat : "ja_sam_mnogo_bezobrazni___fajl"

Meni to gore služi za pravljenje "wild" fajlova za upis kasnije..
Radi prelepo.
Potpis
about:networking
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme