pomoc ze skryptem php - Pawlak093 - 11-10-2015 14:33
Cześć. Używam skryptu który podmienia znaki przy uploadowaniu plików ale nie podmienia spacji tylko w niektórych przypadkach.
czyli wrzucając plik o nazwie Bez tytułu w formacie jpg
otrzymujemy
Kod:
http://zamow-reklame.pl/grafika/files/917Bez tytulu.jpg
a gdy wrzucimy test test.jpg
otrzymujemy
Kod:
http://zamow-reklame.pl/grafika/files/test_test.jpg
czyli działa poprawnie
Kod:
<?php
include "config.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title><? echo $title; ?></title>
<link rel="Stylesheet" type="text/css" href="style/<? echo $styl; ?>/style.css" />
<meta name="Author" content="DK1342" />
<script type="text/javascript">
function highlight(field)
{
field.focus();
field.select();
}
function skaluj() {
if(document.getElementById('obrazek').width>800){
var factor = document.getElementById('obrazek').width/document.getElementById('obrazek').height;
document.getElementById('obrazek').height = parseInt(800/factor);
document.getElementById('obrazek').width = 800;
}
}
window.onload = skaluj;
function doClear(theText) {
if (theText.value == theText.defaultValue) {
theText.value = ""
}
}
</script>
</head>
<body>
<body>
<div id="top">
<div id="logo"></div>
<div id="MENU">
<div id="MENU2"><? echo '<a href="'.$domain.'">Strona Główna </a> | <a href="'.$domain.'info.php"> Informacje</a> | <a href="'.$domain.'regulamin.php"> Regulamin</a>'; ?> | <a href="http://zamow-reklame.pl/"> Forum zamow-reklame.pl</a>
</div>
</div>
<div id="TRESC">
<?php
include('config.php');
$regulamin= $_POST['regulamin'];
if ($regulamin == "1")
{
if ((isset($_POST['submit'])))
{
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];
if ($plik_rozmiar>$max_size)
{
echo '<font color="red"><font size=5>Plik jest za duzy!, maksymalna wielkosc pliku to 4 MB</font></font><br>'; return 0;
}
if(is_uploaded_file($plik_tmp))
{
$zufall = rand(1,9);
$zufall2 = rand(1,26);
$unikat = $zufall . time() . $zufall2;
$roz = explode('.',$plik_nazwa);
$roz2 = $roz[count($roz)-1];
$roz2 = strtolower($roz2);
if($roz2 == $dozwolone[0] || $roz2 == $dozwolone[1] || $roz2 == $dozwolone[2] || $roz2 == $dozwolone[3] || $roz2 == $dozwolone[4] || $roz2 ==
$dozwolone[5] || $roz2 == $dozwolone[6] || $roz2 == $dozwolone[7] || $roz2 == $dozwolone[8] || $roz2 == $dozwolone[9] || $roz2 ==
$dozwolone[10] || $roz2 == $dozwolone[11] || $roz2 == $dozwolone[12] || $roz2 == $dozwolone[12] || $roz2 == $dozwolone[13] || $roz2 ==
$dozwolone[14] || $roz2 == $dozwolone[15] || $roz2 == $dozwolone[16] || $roz2 == $dozwolone[17] || $roz2 == $dozwolone[18] || $roz2 ==
$dozwolone[19] || $roz2 == $dozwolone[20] || $roz2 == $dozwolone[21] || $roz2 == $dozwolone[22] || $roz2 == $dozwolone[23] || $roz2 ==
$dozwolone[24] || $roz2 == $dozwolone[25] || $roz2 == $dozwolone[26] || $roz2 == $dozwolone[27] || $roz2 == $dozwolone[28] || $roz2 ==
$dozwolone[29] || $roz2 == $dozwolone[30] || $roz2 == $dozwolone[31] || $roz2 == $dozwolone[32] || $roz2 == $dozwolone[33] || $roz2 ==
$dozwolone[34] || $roz2 == $dozwolone[35] || $roz2 == $dozwolone[36] || $roz2 == $dozwolone[37] || $roz2 == $dozwolone[38] || $roz2 ==
$dozwolone[39] || $roz2 == $dozwolone[40] || $roz2 == $dozwolone[41] || $roz2 == $dozwolone[42] || $roz2 == $dozwolone[43] || $roz2 ==
$dozwolone[44] || $roz2 == $dozwolone[45] || $roz2 == $dozwolone[46] || $roz2 == $dozwolone[47] || $roz2 == $dozwolone[48] || $roz2 ==
$dozwolone[49] || $roz2 == $dozwolone[50])
{
$_FILES['plik']['name'] = str_replace('?', 's', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('ć', 'c', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('ż', 'z', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('?', 'z', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('š', 'a', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('ę', 'e', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('ó', 'o', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('ł', 'l', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('ń', 'n', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace(' ', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace(' ', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('?', 'S', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('Ć', 'C', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('Ż', 'Z', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('?', 'Z', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('Ľ', 'A', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('Ę', 'E', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('Ó', 'O', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('Ł', 'L', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('Ń', 'N', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace(' ', '-', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('[', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace(']', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('(', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace(')', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace(',', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('{', '_', $_FILES['plik']['name']);
$_FILES['plik']['name'] = str_replace('}', '_', $_FILES['plik']['name']);
$losowe=null;
while(file_exists('files/'.$losowe.$_FILES['plik']['name']))
{
$losowe=rand(0,9).rand(0,9).rand(0,9);
}
move_uploaded_file($plik_tmp, 'files/'.$losowe.$_FILES['plik']['name']);
chmod('files/'.$losowe.$_FILES['plik']['name'] , 0644);
$dellink=md5($hash.$losowe.$_FILES['plik']['name'].$hash2);
echo '<table>';
echo "Plik: ".$plik_nazwa." o rozmiarze: ";
$filename = "files/".$losowe.$_FILES['plik']['name'];
if(filesize($filename) <= (1024 * 1024))
{
echo round(filesize($filename)/1024,2) . ' KB ';
}
else
{
echo round(filesize($filename)/1024/1024,2) . ' MB ';
}
echo "został przesłany na serwer! <br /><br />";
if($roz2 == "png" || $roz2 == "PNG" || $roz2 == "jpg" || $roz2 == "jpeg" || $roz2 == "JPG" || $roz2 == "JPEG" || $roz2 == "gif" || $roz2 == "GIF" || $roz2 == "bmp" || $roz2 == "BMP" || $roz2 == "pict")
{
echo '<a href="'.$domain.'obrazek.php?id='.$losowe.$_FILES['plik']['name'].'"><img id="obrazek" border="0" src="'.$domain.'files/'.$losowe.$_FILES['plik']['name'].'"></a><br />';
echo '<tr><td>Link bezposredni: </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80"
value="'.$domain.'files/'.$losowe.$_FILES['plik']['name'].'"></td></tr>';
echo '<tr><td>Kod IMG (na forum): </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80"
value="[IMG]'.$domain.'files/'.$losowe.$_FILES['plik']['name'].'[/IMG]"></td></tr>';
echo '<tr><td>Link do usunięcia obrazka: </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80"
value="'.$domain.'usun.php?plik='.$losowe.$_FILES['plik']['name'].'&hash='.$dellink.'"></td></tr></table></td></tr></table>';
}
else
{
echo '<tr><td>Link : </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80"
value="'.$domain.'plik.php?id='.$losowe.$_FILES['plik']['name'].'"></td></tr>';
echo '<tr><td>Link do usunięcia pliku: </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80"
value="'.$domain.'usun.php?plik='.$losowe.$_FILES['plik']['name'].'&hash='.$dellink.'"></td></tr></table></td></tr></table>';
}
}
else
{
echo '<font color="red"><br>Niedozwolone rozszerzenie!, aby zobaczyc dozwolone rozszezenia wejdz w Informacje</font><br>';
}
}
else echo '<font color="red">Plik nie został wybrany</font><br>';
}
}
else
{
echo "Nie zaakceptowales regulaminu";
}
?>
</div>
</div>
</body>
</html>
link do tego skryptu http://zamow-reklame.pl/grafika/
RE: pomoc ze skryptem php - RaiZeN - 14-10-2015 16:32
Może zrób losowe id każdego obrazka? Wtedy nie będą się nakładać (jeśli zostaną wrzucone 2 obrazki o takiej samej nazwie) i nie będziesz musiał kombinować.
RE: pomoc ze skryptem php - Pawlak093 - 23-10-2015 21:34
@[RaiZeN] potrafiłbyś coś takiego?
jeżeli nie czekam na dalszą pomoc
RE: pomoc ze skryptem php - Apps - 23-10-2015 21:54
Ogólnie kod szału nie robi :-)
Zmieniłem trochę ale nie sprawdzane.
Ogólnie zmienną $losowe możesz wywalić bo wcześniejsze nadawanie nazwy jest tak unikalne, że raczej nie potrzeba
Kod PHP:
<?php include "config.php"; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title><? echo $title; ?></title> <link rel="Stylesheet" type="text/css" href="style/<? echo $styl; ?>/style.css" /> <meta name="Author" content="DK1342" /> <script type="text/javascript"> function highlight(field) { field.focus(); field.select(); } function skaluj() { if(document.getElementById('obrazek').width>800){ var factor = document.getElementById('obrazek').width/document.getElementById('obrazek').height; document.getElementById('obrazek').height = parseInt(800/factor); document.getElementById('obrazek').width = 800; } } window.onload = skaluj; function doClear(theText) { if (theText.value == theText.defaultValue) { theText.value = "" } } </script> </head> <body> <body> <div id="top"> <div id="logo"></div> <div id="MENU"> <div id="MENU2"><? echo '<a href="'.$domain.'">Strona Główna </a> | <a href="'.$domain.'info.php"> Informacje</a> | <a href="'.$domain.'regulamin.php"> Regulamin</a>'; ?> | <a href="http://zamow-reklame.pl/"> Forum zamow-reklame.pl</a> </div> </div> <div id="TRESC"> <?php
function usunDiakrytyczne( $str ) { $a = array('ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ź', 'ż', 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ź', 'Ż', "\n", ' '); $b = array('a', 'c', 'e', 'l', 'n', 'o', 's', 'z', 'z', 'A', 'C', 'E', 'L', 'N', 'O', 'S', 'Z', 'Z', '', '_');
return str_replace($a, $b, $str); }
function pl( $string ) { // usuń wszystko co jest niedozwolonym znakiem $string = str_replace('/[^_0-9a-zA-Z\-]+/', '', usunDiakrytyczne( $string ) );
// zredukuj liczbę myślników do jednego obok siebie $string = str_replace('/[\-]+/', '-', $string);
// usuwamy możliwe myślniki na początku i końcu $string = trim($string, '-');
$string = stripslashes($string);
// na wszelki wypadek //$string = urlencode($string);
return $string; }
include('config.php'); $regulamin= $_POST['regulamin']; if ($regulamin == "1") { if ((isset($_POST['submit']))) { $plik_tmp = $_FILES['plik']['tmp_name']; $plik_nazwa = $_FILES['plik']['name']; $plik_rozmiar = $_FILES['plik']['size']; if ($plik_rozmiar>$max_size) { echo '<font color="red"><font size=5>Plik jest za duzy!, maksymalna wielkosc pliku to 4 MB</font></font><br>'; return 0; } if(is_uploaded_file($plik_tmp)) { $unikat = rand(1,9) . time() . rand(1,26);
$ext = trim( pathinfo( $plik_nazwa, PATHINFO_EXTENSION ) ); if( in_array( $ext, $dozwolone ) ) { $_FILES['plik']['name'] = pl( usunDiakrytyczne( $_FILES['plik']['name'] ) );
$losowe=null; while(file_exists('files/'.$losowe.$_FILES['plik']['name'])) { $losowe=rand(0,9).rand(0,9).rand(0,9); } move_uploaded_file($plik_tmp, 'files/'.$losowe.$_FILES['plik']['name']); chmod('files/'.$losowe.$_FILES['plik']['name'] , 0644); $dellink= md5( $hash . $losowe . $_FILES['plik']['name'] . $hash2 ); echo '<table>'; echo "Plik: ".$plik_nazwa." o rozmiarze: "; $filename = "files/".$losowe.$_FILES['plik']['name']; if(filesize($filename) <= (1024 * 1024)) { echo round(filesize($filename)/1024,2) . ' KB '; } else { echo round(filesize($filename)/1024/1024,2) . ' MB '; } echo "został przesłany na serwer! <br /><br />";
if( preg_match( '/^(.*)\.(gif|jpg|png|jpeg|bmp|pict)$/', $ext ) ) { echo '<a href="'.$domain.'obrazek.php?id='.$losowe.$_FILES['plik']['name'].'"><img id="obrazek" border="0" src="'.$domain.'files/'.$losowe.$_FILES['plik']['name'].'"></a><br />'; echo '<tr><td>Link bezposredni: </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80" value="'.$domain.'files/'.$losowe.$_FILES['plik']['name'].'"></td></tr>'; echo '<tr><td>Kod IMG (na forum): </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80" value="[IMG]'.$domain.'files/'.$losowe.$_FILES['plik']['name'].'[/IMG]"></td></tr>'; echo '<tr><td>Link do usunięcia obrazka: </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80" value="'.$domain.'usun.php?plik='.$losowe.$_FILES['plik']['name'].'&hash='.$dellink.'"></td></tr></table></td></tr></table>'; } else { echo '<tr><td>Link : </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80" value="'.$domain.'plik.php?id='.$losowe.$_FILES['plik']['name'].'"></td></tr>'; echo '<tr><td>Link do usunięcia pliku: </td><td><input type="text" name="thetext" onClick="highlight(this);" size="80" value="'.$domain.'usun.php?plik='.$losowe.$_FILES['plik']['name'].'&hash='.$dellink.'"></td></tr></table></td></tr></table>'; } } else { echo '<font color="red"><br>Niedozwolone rozszerzenie!, aby zobaczyc dozwolone rozszezenia wejdz w Informacje</font><br>'; } } else echo '<font color="red">Plik nie został wybrany</font><br>'; }
} else { echo "Nie zaakceptowales regulaminu"; } ?> </div>
</div> </body> </html>
RE: pomoc ze skryptem php - Pawlak093 - 23-10-2015 22:16
twój kod w ogóle nie generuje linku do obrazka (nie działa nic)
RE: pomoc ze skryptem php - Apps - 23-10-2015 22:48
Bo pisany z palca.
rozumiem, że nie masz zbyt dużej wiedzy w PHP ( sprawdzanie błędów itp )?
RE: pomoc ze skryptem php - Pawlak093 - 23-10-2015 22:52
nom, nie mam.
RE: pomoc ze skryptem php - Apps - 23-10-2015 23:56
To raczej ciężko będzie coś zdziałać. Ogólni mógł bym Ci to poprawić ale musiał bym mieć wszystkie pliki albo dostęp do FTP*
*jestem programistą i mam firmę więc spokojnie, nie wyłudzam danych :-)
RE: pomoc ze skryptem php - Pawlak093 - 24-10-2015 13:05
dane do FTP wysłałem na PW.
Chciałbym abyś pokazał mi co trzeba podmienić a nie wysyłał gotowe pliki.
RE: pomoc ze skryptem php - Apps - 24-10-2015 14:25
Podesłałeś złe dane bo nie mam jak online śledzić gdzie problem.
Tłumaczyć nie bardzo mam czas, mogę coś poprawić i sam musisz dojść gdzie masz błędy.
|