Hej Wszystkim.
Wiem, ze temat ze znakami jest już wałkowany od dawna.
Ale mam następujący problem otóż: wszędzie mam ustawiony UTF-8, w edytorze UTF-8 witout BOM.
W bazie UTF8_polish_ci.
Mam 2 formularze: jeden z tylko z możliwością dodania danych tekstowych do bazy,
na nim wrzuca mi polskie znaki do tabeli w bazie bez problemu.
2 w którym mam formularz + dodatkowo miejsce na upload pliku.
Ale: Załączenie pliku nie jest wymagane aby dodało dane z formularza do bazy.
Właśnie na tym formularzu i skrypcie pojawia się problem: brak polskich znaków przy insercie danych z formularzy do bazy.
Krzaki wrzuca !
Dla funkcjonalności dobrze mieć za jednym zamachem dodanie formularza i pliku do bazy w jednym miejscu.
Oczywiście jeśli rozdzielę formularz i upload pliku jest wszystko ok.
Jak sobie z tym poradzić
Kod formularza:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/calendar.js"></script>
<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.19.custom.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/jquery-ui-1.8.19.custom.css"
type="text/css" />
<style>
body {
font-size: 12px;
font-family:Arial;
}
</style>
<title>Dodaj Dokumenty</title>
</head>
<?php
ini_set('default_charset', 'UTF-8'); ?>
<body>
<h2>
Dodaj dokument do dzialki (nr id
<?php echo $_GET['iddzialki'] ?> )
</h2>
<form action="add_file_dok.php" method="post" enctype="multipart/form-data" >
<input type="hidden" value="
<?php echo $_GET['iddzialki'] ?>" id="iddzialki" name="iddzialki"/>
<table border="0">
<tr>
<td></td>
<td><input type="hidden" name="id" maxlength="30" size="30" id="id"/></td>
</tr>
<tr>
<td>rodz_dok</td>
<td><SELECT name="rodz_dok" id="rodz_dok" >
<?php
ini_set('default_charset', 'UTF-8'); include ('conf.php');
$link = mysql_connect( $DB_HOST, $DB_USER, $DB_PASS) or
die ("Nie można się połączyć");
$zapytanie = mysql_query("select * from rodzaj_dokumentu order by rodzaj"); {
echo '<OPTION value="'.$rodzaj['rodzaj'].'">'.$rodzaj['rodzaj'].'</OPTION>'; }
?>
</SELECT></td>
</tr>
<tr>
<td>nr_dokumentu</td>
<td><input type="text" name="nr_dokumentu" maxlength="50" size="30"
id="nr_dokumentu"></td></input>
</tr>
<tr>
<td>SKAN_dokumentu</td>
<td><input type="file" name="uploaded_file"><br></td>
</tr>
<tr>
<td>status_negocjacji</td>
<td><input type="text" name="status_negocjacji" maxlength="30" size="30"
id="status_negocjacji">
</td>
</tr>
<tr>
<td>data_podpisania Format RRRR-MM-DD</td>
<td><input type="text" name="data_podpisania" maxlength="30" size="30"
id="data_podpisania">
</td>
</tr>
<tr>
<td>uwagi</td>
<td><TEXTAREA type="text" name="uwagi" rows="4" cols="20"
id="uwagi"></TEXTAREA></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="ZAPISZ"></td>
</tr>
</table>
</form>
<?php
?>
KOD do dodawania do bazy:
<?php
ini_set('default_charset', 'UTF-8');
// Check if a file has been uploaded
if(isset($_FILES['uploaded_file'])) { // Make sure the file was sent without errors
if($_FILES['uploaded_file']['error'] == 0) {
// Connect to the database
$dbLink = new mysqli('localhost', 'root', 'pass123##', 'baza');
if(mysqli_connect_errno()) {
die("MySQL connection failed: ". mysqli_connect_error
()); }
// Gather all required data
$name_d = $dbLink->real_escape_string($_FILES['uploaded_file']['name']);
$mime_d = $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
$data_d = $dbLink->real_escape_string(file_get_contents($_FILES ['uploaded_file']['tmp_name'])); $size_d = intval($_FILES['uploaded_file']['size']);
// Create the SQL query
$query = "update dokumenty set name_d='".$name_d."' , mime_d='".$mime_d."', data_d='".$data_d."' , size_d='".$size_d."' WHERE id=".((int)$_GET['id']);
//echo $query;
// Execute the query
$result = $dbLink->query($query);
// Check if it was successfull
if($result) {
echo 'Success! Twoj plik został dodany do bazy! :)'; }
else {
echo 'Error! Failed to insert the file' . "<pre>{$dbLink->error}</pre>";
}
}
else {
echo 'An error accured while the file was being uploaded. ' . 'Error code: '. intval($_FILES['uploaded_file']['error']); }
// Close the mysql connection
$dbLink->close();
}
else {
echo 'Error! A file was not sent!'; }
// Echo a link back to the main page
echo '<p>Click <a href="index.html">here</a> to go back</p>'; ?>