I'm trying to make my first gallery with PHP and I'm having some problems i can't solve. My code looks like this:
<?php
include_once('config.php');
//Script der uploader og omdøber billeder
if(isset($_FILES['billede'])){
$errors = array();
$allowed_ext = array('jpg','jpeg','gif','png', 'bmp');
$file_navn = $_FILES['billede']['name'];
$file_ext = strtolower(end(explode('.', $file_navn)));
$file_tmp = $_FILES['billede']['tmp_name'];
$file_size = $_FILES['billede']['size'];
$kategori = $_POST['kategori'];
$beskrivelse = $_POST['beskrivelse'];
if(!empty($_POST['navn'])){
$fil_nyt_navn = $_POST['navn'].'.'.$file_ext;
$fil_nyt_navn = str_replace(' ', '_', $fil_nyt_navn);
}else{
$errors[] = 'Du har ikke udfyldt navnet på billedet.';
}
if(in_array($file_ext, $allowed_ext) === false){
$errors[] = 'Den fil type er ikke understøttet';
}
if($file_size > 10485760){
$errors[] = 'Filen er større end 10mb og kan ikke uploades.';
}
if(empty($errors)){
if(move_uploaded_file($file_tmp, 'billeder/'.$fil_nyt_navn)){
include_once ("img_resize.php");
$original_fil = 'billeder/'.$fil_nyt_navn;
$thumbnail = 'billeder/'.$_POST['navn'].'_thumb.'.$file_ext;
$maks_width = 150;
$maks_height = 99;
ak_img_resize($original_fil, $thumbnail, $maks_width, $maks_height, $file_ext);
echo 'Filen er uploadet.';
}
}else{
foreach($errors as $error){
echo $error. '<br />';
}
}
$url_org = 'billeder/'.$fil_nyt_navn;
$url_thumb = 'billeder/'.$_POST['navn'].'_thumb.'.$file_ext;
mysql_query("INSERT INTO galleri_billeder VALUES ('','$fil_nyt_navn','$beskrivelse','$kategori','$url_org','$url_thumb')") or die(mysql_error());
}
//valg af liste
$title = mysql_query("SELECT * FROM galleri_kategorier") or die (mysql_error());
while($row = mysql_fetch_assoc($title))
{
$arr[] = $row['navn'];
}
$prove = count($arr);
?>
<form action="" method="POST" enctype="multipart/form-data">
<p><input type="file" name="billede" /></p>
<p><select name='kategori'>
<?php
for ($i=0; $i<$prove; $i++)
{
echo "<option value='{$arr[$i]}'>{$arr[$i]}</option>";
}
?>
</select></p>
<p>Navn<br /><input type="text" name ="navn" /></p>
<p>Beskrivelse<br /><textarea name="beskrivelse" cols="30" rows="10"></textarea></p>
<p><input type="submit" value="Upload" /></p>
</form>
The problem is when the user uses special characters like æ ø å in the name. the name can't have special characters because it's used to make the url. I tried using str_replace() but it won't work and i dont know why.
The second problem is that if the user uses special characters in the textarea it's not saved correctly in the database.