Kezdőoldal » Számítástechnika » Weblapkészítés » PHP:Karakter kódolási hiba....

PHP:Karakter kódolási hiba. Miért jön ez elő?

Figyelt kérdés

eddig nem volt baj a karakterkódolással!

a meta tagokban (keresési kulcsszavak,leírás van PHP innyektáció!)

a többi rész az így néz ki:

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-2;' />

<meta http-equiv='Content-Language' content='hu' />

<meta http-equiv='Content-Style-Type' content='text/css' />

<meta http-equiv='Content-Script-Type' content='text/javascript' />

<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">

és most egy tesztelés során bukkantunk rá egy nagyon érdekes még is nagyon zavaró dologra:

ez :


echo "esküvői ruhakölcsönző";


így néz ki:

esküvoi ruhakölcsönzo

aztán így néz ki :


Név Üzletág Munkavégzés helyszíne

Kovács Kft Mosógépszerviz XIII.Kerület

valami Esküv?i ruhakölcsönz? I.Kerület

ez:



mysql_connect ($host,$dbuser,$dbpass);

mysql_select_db($dbname);



echo "esküvői ruhakölcsönző";


/////////////////////////////////////////////////////////////////////////////////////////////////////////////

$query = "SELECT * FROM profil ";

if($_POST["dolgoz"] != "" AND $_POST["uzletag"] != ""){

$where[] = " dolgoz = '". $_POST["dolgoz"] ."' AND uzletag = '". $_POST["uzletag"] ."' ";

}

if($_POST["dolgoz"] != "" AND $_POST["uzletag"] == ""){

$where[] = " dolgoz = '". $_POST["dolgoz"] ."' ";

}

if($_POST["dolgoz"] == "" AND $_POST["uzletag"] != ""){

$where[] = " uzletag = '". $_POST["uzletag"] ."' ";

}


if($_POST["dolgoz"] == "" AND $_POST["uzletag"] == "" AND $_GET["uzletag"] != "" or $_GET["dolgoz"] != "" )

{

if($_GET["dolgoz"] != "" AND $_GET["uzletag"] != ""){

$where[] = " dolgoz = '". $_GET["dolgoz"] ."' AND uzletag = '". $_GET["uzletag"] ."' ";

}

if($_GET["dolgoz"] != "" AND $_GET["uzletag"] == ""){

$where[] = " dolgoz = '". $_GET["dolgoz"] ."' ";

}

if($_GET["dolgoz"] == "" AND $_GET["uzletag"] != ""){

$where[] = " uzletag = '". $_GET["uzletag"] ."' ";

}

}

if ( isset( $where ) AND count( $where ) > 0 )

$query .= " WHERE " . implode( " OR " , $where ) ;


$result = mysql_query( $query );

$num = mysql_num_rows ( $result );

$row_per_page = 10;


$page = isset( $_GET["page"] )? intval( $_GET["page"] ) : 1 ;

$actual = ( $page-1 ) * $row_per_page;

$query .= " LIMIT $actual,$row_per_page";

$result = mysql_query( $query ) or die( mysql_error() );


if ( $num > 0 ) {


?>

<table border="1">

<tr>

<th>Név</th>

<th>Üzletág</th>

<th>Munkavégzés helyszíne</th>

</tr>

<?php

while ( $a = mysql_fetch_assoc( $result ) ) {

$id = $a["id"];

echo "<tr>";

echo "<td> ".$a["nev"]."</td>";

echo "<td> ".$a["uzletag"]."</td>";

echo "<td> ".$a["dolgoz"]."</td>";

echo "<td>  <a href='?v=profil&id=$id'>Profil részletes megtekintése!</a> </td>";

echo "</tr>";

}

echo "</table>";

$uzletag = $_POST["uzletag"];

$dolgoz = $_POST["dolgoz"];


$q_search = $_POST["q_search"];

$q_where = "jelszo";

$p = new pagination;

$p->Items( $num );

$p->limit( $row_per_page );

$p->target( "?v=kereses&dolgoz=$dolgoz&uzletag=$uzletag" );

$p->currentPage( $page );

$p->nextLabel( "" );

$p->prevLabel( "" );

$p->nextIcon( "" );

$p->prevIcon( "" );

$p->show();

}

else{////

echo "<h3>NINCS TALÁLAT :(!</h3>";

}



hol van itt a baj?

miért jön elő ez a baj?

valami összefüggés van a kereső kód és a karakter kódolási hiba között?

hogyan és miként lehet ezt kijavítani?



2012. aug. 20. 11:19
 1/6 anonim ***** válasza:
Karakterkódolást próbáld meg UTF-8 -al
2012. aug. 20. 11:26
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

köszi szépen.....

a + munkát mivel átírtam utf8 ra a charsetet. (minden ilyen hülye ? jeles lett!)

utána a fájl karakter kódolását is átírtam ééés

nem tudom , hogy megszűnt-e a probléma mert nem enged kapcsolódni a mysql táblához!

még szerencse , hogy csináltam biztonsági mentést :)

2012. aug. 20. 11:58
 3/6 Drone007 ***** válasza:

A fájlok karakterkódolását állítsd át UTF8-ra (BOM nélkül).

A rendes utf8 kódolású file-t nem fogja elfogadni a szerver, mert a fájlok fejlécében egy 3byte-os azonosító (BOM) szerepel, amit a szerver megpróbál kijelezni.

A html fájlok fejlécében is meg kell jeleníteni a karakterkódolást (meta tagek), ez php-val is nyomatékosítható.

<?php header("Content-Type: text/html; charset=utf-8"); ?>

<meta http-equiv="Content-Type" content="text/html; charset=UTF8">


Az adatbázist is át kell alakítani utf8 karakterkódolásúra, és csatlakozáskor nem árt tudatni is azt az adatbázisszerverrel.

mysql_select_db után:

<?php

mysql_query("set names = 'utf8'");

mysql_query("SET CHARACTER SET 'utf8'");

mysql_query("SET COLLATION_CONNECTION='utf8_unicode_ci'");

mysql_query("SET character_set_results = 'utf8'");

mysql_query("SET character_set_server = 'utf8'");

mysql_query("SET character_set_client = 'utf8'");

?>

2012. aug. 21. 06:55
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

hmmmmm......megpróbálom.........

bár ez nagyon úgy hangzik mintha biztonsági másolatot kéne csinálni!

2012. aug. 21. 10:21
 5/6 A kérdező kommentje:

ezeket a szép kis hibaüzeneteket kaptam vissza:


Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'a9426947_test'@'10.1.1.30' (using password: YES) in /home/a9426947/public_html//5/images/kell/php.php on line 109


Free Web Hosting


PHP Error Message


Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'a9426947'@'localhost' (using password: NO) in /home/a9426947/public_html//5/images/kell/php.php on line 110


Free Web Hosting


PHP Error Message


Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/a9426947/public_html//5/images/kell/php.php on line 110


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: Access denied for user 'a9426947'@'localhost' (using password: NO) in /home/a9426947/public_html//5/images/kell/php.php on line 112


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a9426947/public_html//5/images/kell/php.php on line 112


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: Access denied for user 'a9426947'@'localhost' (using password: NO) in /home/a9426947/public_html//5/images/kell/php.php on line 113


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a9426947/public_html/szerelokell/5/images/kell/php.php on line 113


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: Access denied for user 'a9426947'@'localhost' (using password: NO) in /home/a9426947/public_html//5/images/kell/php.php on line 114


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a9426947/public_html//5/images/kell/php.php on line 114


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: Access denied for user 'a9426947'@'localhost' (using password: NO) in /home/a9426947/public_html//5/images/kell/php.php on line 115


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a9426947/public_html/szerelokell/5/images/kell/php.php on line 115


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: Access denied for user 'a9426947'@'localhost' (using password: NO) in /home/a9426947/public_html//5/images/kell/php.php on line 116


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a9426947/public_html//5/images/kell/php.php on line 116


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: Access denied for user 'a9426947'@'localhost' (using password: NO) in /home/a9426947/public_html//5/images/kell/php.php on line 117


Free Web Hosting


PHP Error Message


Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a9426947/public_html//5/images/kell/php.php on line 117


ez található az említett periódusban:

mysql_connect ($host,$dbuser,$dbpass);

mysql_select_db($dbname);


mysql_query("set names = 'utf8'");

mysql_query("SET CHARACTER SET 'utf8'");

mysql_query("SET COLLATION_CONNECTION='utf8_unicode_ci'");

mysql_query("SET character_set_results = 'utf8'");

mysql_query("SET character_set_server = 'utf8'");

mysql_query("SET character_set_client = 'utf8'");

a kapcsolódási adatok 110% , hogy jó mivel amikor ansi volt a kódolása a fájloknak és nem volt charset meghetározva akkor működött!

2012. aug. 21. 11:04
 6/6 anonim ***** válasza:

csak lépésenként csináld


egyébként az miért van, hogy aki itt kérdést tesz fel, az egyszerűen nem hajlandó bármin is gondolkodni


vagy próbálkozni

2012. aug. 22. 00:24
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!