takie coś jeszcze wymyśliłem, niby bledow nie wywala ale nie wiem czy to jest dobrze ...
<?php
if (isset($_POST['submit'])) { /**
* @author Kafar
* @copyright 2015
*/
//raportowanie bledow php
//definicja stalych
require_once("stale.php");
require_once("function.php");
$img = $_FILES['image'];
//walidacja start
echo "Nie wstawiłes zdjecia";
}
//walidacja end
//wykoananie skryptu
foreach ($img['tmp_name'] as $key => $tmp_name) {
$image = $_FILES['image']['name'][$key];
$image_type = $_FILES['image']['type'][$key];
$image_size = $_FILES['image']['size'][$key];
if (($image_type == 'image/gif') || ($image_type == 'image/jpeg') || ($image_type == 'image/pjpeg') || ($image_type == 'image/png')) {
if (($image_size > 0) && ($image_size <= GW_MAXFILESIZE)) {
// Przenoszenie plików do docelowego katalogu.
$target = GW_LOKALIZACJA . $image;
//hash pliku
$filename = $_FILES['image']['tmp_name'][$key];
//hash pliku
//pobranie rozszerzenia
$ext = $odczyt['extension'];
//pobranie rozszerzenia
//info pliku
$rozmiar = round($img['size'][$key]/1024) . " KB"; $wymiary = $width ." x ". $height;
//info pliku
$connect = mysqli_connect(HOST, USER, PASSWORD, NAZWA_BAZY, PORT)
or
die('Brak połączenia z serwerem MySQL');
echo 'Połączenie nawiązane<br />'; // dodajemy rekord do bazy
// petla wykonuje sie dopoki nie wygenerujemy unikalnego tokenu
//while(true)
//{
$token = gentoken(12);
// losuj nowy token. Tu nie wiemy, czy zostanie wylosowany taki co byl juz w bazie
// sprawdz czy wylosowany jest juz w bazie
$loguj="select token from obrazki where token='$token'";
$rekordy = mysqli_query($connect,$loguj);
if(mysqli_num_rows($rekordy)==0)
{
//co jak nie istnieje
if (move_uploaded_file($_FILES['image']['tmp_name'][$key], GW_LOKALIZACJA
. $token . "." . $ext)) {
//var_dump($czyTokenIstniejeWBazie);
// tutaj juz mamy unikalny token, wiec dodajmy do bazy
$ins = "INSERT INTO obrazki VALUES (0,NOW(),'$md5file' , '$rozmiar' , '$wymiary' , '$token' , '$ext')";
$query = mysqli_query($connect, $ins);
if ($query)
{
echo 'Dane zostały wpisane do bazy <br />'; }
else
echo 'Błąd przy dodawaniu rekordów do bazy <br />';
$zapytanie = mysqli_query($connect ,"SELECT id FROM obrazki ORDER BY id DESC LIMIT 1");
$rekord = mysqli_fetch_array($zapytanie);
$last_id = $rekord['id'];
echo 'id obrazka to:' . $last_id . '<br />';
echo 'token: ' . $token . '<br />'; echo 'Nazwa: ' . $img['name'][$key] . '<br/>'; echo 'Rozmiar: ' . $rozmiar . '<br/>'; echo 'Rozszerzenie pliku ' . $ext . "<br />"; echo '<img src="' . GW_LOKALIZACJA
. $token . "." . $ext . '" width="300px" heith="300px" alt="image" /></p><br />'; echo 'Link do obrazka: kafar.nazwa.pl/wrzucfote.pl/'. GW_LOKALIZACJA
. $token . "." . $ext; ?>
<form>
<input onclick="this.form.txt.select();" type="button" value="zaznacz kod">
<textarea style="resize: none;" name="txt" cols="50" rows="4">
<?php echo 'http://kafar.nazwa.pl/wrzucfote.pl/' . GW_LOKALIZACJA
. $token . "." . $ext;?> </textarea>
<input type="button" value="Losowa strona" onclick="window.open('getObraz.php');" />
</form>
<?php
}
}
else
{
$token = gentoken(12);
//jeżeli login istnieje w bazie
}
//$czyTokenIstniejeWBazie = SELECT COUNT(login) FROM users WHERE login = '$login'
//$czyTokenIstniejeWBazie = mysqli_query($connect ,"SELECT * FROM obrazki WHERE token = '$token';");
// jesli go nie ma, to przerywamy, bo mamy odpowiedni
//if($czyTokenIstniejeWBazie == false)
//break;
// jesli jest w bazie, to petla wykona sie jeszcze raz
//}
mysqli_close($connect);
}
else
echo "Obrazek nie moze być wiekszy niż 5 mb"; }
else
echo "Przesłany plik nie jest obrazekiem!!! <br /> Dostępne rozszerzenia: .gif, .jpeg, .pjpeg, .png "; }
}
}
//wykoananie skryptu
?>
to moze inaczej, zrobiłem coś takiego
<?php
if (isset($_POST['submit'])) { /**
* @author Kafar
* @copyright 2015
*/
//raportowanie bledow php
//definicja stalych
require_once("stale.php");
require_once("function.php");
$img = $_FILES['image'];
//walidacja start
echo "Nie wstawiłes zdjecia";
}
//walidacja end
//wykoananie skryptu
foreach ($img['tmp_name'] as $key => $tmp_name) {
$image = $_FILES['image']['name'][$key];
$image_type = $_FILES['image']['type'][$key];
$image_size = $_FILES['image']['size'][$key];
if (($image_type == 'image/gif') || ($image_type == 'image/jpeg') || ($image_type == 'image/pjpeg') || ($image_type == 'image/png')) {
if (($image_size > 0) && ($image_size <= GW_MAXFILESIZE)) {
// Przenoszenie plików do docelowego katalogu.
$target = GW_LOKALIZACJA . $image;
//hash pliku
$filename = $_FILES['image']['tmp_name'][$key];
//hash pliku
//pobranie rozszerzenia
$ext = $odczyt['extension'];
//pobranie rozszerzenia
//info pliku
$rozmiar = round($img['size'][$key]/1024) . " KB"; $wymiary = $width ." x ". $height;
//info pliku
$connect = mysqli_connect(HOST, USER, PASSWORD, NAZWA_BAZY, PORT)
or
die('Brak połączenia z serwerem MySQL');
echo 'Połączenie nawiązane<br />'; // dodajemy rekord do bazy
// petla wykonuje sie dopoki nie wygenerujemy unikalnego tokenu
//while(true)
//{
$token = gentoken(1); // losuj nowy token. Tu nie wiemy, czy zostanie wylosowany taki co byl juz w bazie
// sprawdz czy wylosowany jest juz w bazie
//$result = mysqli_query($connect, "SELECT * FROM obrazki WHERE token = '$token'");
// echo "nie ma"; //$czyTokenIstniejeWBazie = mysqli_query($connect ,"SELECT * FROM obrazki WHERE token = '$token';");
// jesli go nie ma, to przerywamy, bo mamy odpowiedni
//if(mysqli_num_rows($result))
//echo "jest";
//break;
$result = mysqli_query($connect, "SELECT * FROM obrazki WHERE token = '$token'");
if (mysqli_num_rows($result)) {
$token = gentoken(1);
if (move_uploaded_file($_FILES['image']['tmp_name'][$key], GW_LOKALIZACJA
. $token . "." . $ext)) {
$ins = "INSERT INTO obrazki VALUES (0,NOW(),'$md5file' , '$rozmiar' , '$wymiary' , '$token' , '$ext')";
$query = mysqli_query($connect, $ins);
if ($query)
{
echo 'Dane zostały wpisane do bazy <br />'; }
else
echo 'Błąd przy dodawaniu rekordów do bazy <br />';
$zapytanie = mysqli_query($connect ,"SELECT id FROM obrazki ORDER BY id DESC LIMIT 1");
$rekord = mysqli_fetch_array($zapytanie);
$last_id = $rekord['id'];
echo 'id obrazka to:' . $last_id . '<br />';
echo 'token: ' . $token . '<br />'; echo 'Nazwa: ' . $img['name'][$key] . '<br/>'; echo 'Rozmiar: ' . $rozmiar . '<br/>'; echo 'Rozszerzenie pliku ' . $ext . "<br />"; echo '<img src="' . GW_LOKALIZACJA
. $token . "." . $ext . '" width="300px" heith="300px" alt="image" /></p><br />'; echo 'Link do obrazka: kafar.nazwa.pl/wrzucfote.pl/'. GW_LOKALIZACJA
. $token . "." . $ext; ?>
<form>
<input onclick="this.form.txt.select();" type="button" value="zaznacz kod">
<textarea style="resize: none;" name="txt" cols="50" rows="4">
<?php echo 'http://kafar.nazwa.pl/wrzucfote.pl/' . GW_LOKALIZACJA
. $token . "." . $ext;?> </textarea>
<input type="button" value="Losowa strona" onclick="window.open('getObraz.php');" />
</form>
<?php
}
mysqli_close($connect);
} else {
// jesli jest w bazie, to petla wykona sie jeszcze raz
//}
// tutaj juz mamy unikalny token, wiec dodajmy do bazy
if (move_uploaded_file($_FILES['image']['tmp_name'][$key], GW_LOKALIZACJA
. $token . "." . $ext)) {
$ins = "INSERT INTO obrazki VALUES (0,NOW(),'$md5file' , '$rozmiar' , '$wymiary' , '$token' , '$ext')";
$query = mysqli_query($connect, $ins);
if ($query)
{
echo 'Dane zostały wpisane do bazy <br />'; }
else
echo 'Błąd przy dodawaniu rekordów do bazy <br />';
$zapytanie = mysqli_query($connect ,"SELECT id FROM obrazki ORDER BY id DESC LIMIT 1");
$rekord = mysqli_fetch_array($zapytanie);
$last_id = $rekord['id'];
echo 'id obrazka to:' . $last_id . '<br />';
echo 'token: ' . $token . '<br />'; echo 'Nazwa: ' . $img['name'][$key] . '<br/>'; echo 'Rozmiar: ' . $rozmiar . '<br/>'; echo 'Rozszerzenie pliku ' . $ext . "<br />"; echo '<img src="' . GW_LOKALIZACJA
. $token . "." . $ext . '" width="300px" heith="300px" alt="image" /></p><br />'; echo 'Link do obrazka: kafar.nazwa.pl/wrzucfote.pl/'. GW_LOKALIZACJA
. $token . "." . $ext; ?>
<form>
<input onclick="this.form.txt.select();" type="button" value="zaznacz kod">
<textarea style="resize: none;" name="txt" cols="50" rows="4">
<?php echo 'http://kafar.nazwa.pl/wrzucfote.pl/' . GW_LOKALIZACJA
. $token . "." . $ext;?> </textarea>
<input type="button" value="Losowa strona" onclick="window.open('getObraz.php');" />
</form>
<?php
}
mysqli_close($connect);
}
}
else
echo "Obrazek nie moze być wiekszy niż 5 mb"; }
else
echo "Przesłany plik nie jest obrazekiem!!! <br /> Dostępne rozszerzenia: .gif, .jpeg, .pjpeg, .png "; }
}
}
//wykoananie skryptu
?>
skrypt początkowo ładnie chodzi, ale gdy już jest więcej tokenów w bazie to je powtarza, jak mam to zrobić aby tego uniknąć.
Pomoże ktoś? wiem ze petle musze zastosowac ale nie za bardzo wiem jak...