@Jony1337

Не работает rand() в php?

Есть у меня такой скрипт который прописывает текст поверх изображения
И в файле index.php человек выберает пол
<select size="3" name="sex">
    <option disabled>Выбери пол </option>
    <option value="1" selected>Мужской </option>
    <option value="2">Женскии</option>
   </select>


далее в файле img.php
<?php 
function writeTextOnImage($filename, $text)  
{   
    $size_img = getimagesize($filename);  
    if ($size_img[2]==2)       $src_img = imagecreatefromjpeg($filename);  
    else if ($size_img[2]==1)  $src_img = imagecreatefromgif($filename);  
    else if ($size_img[2]==3)  $src_img = imagecreatefrompng($filename);    
    // устанавливаем цвет нашей надписи и прозрачность (тут он будет синий и полностью прозрачный)
    $color = imagecolorallocatealpha($src_img, 255, 255, 255, 0);  
    $font_file = "font.ttf";  // шрифт, которым пишем надпись (будьте внимательны с путем к шрифту)
    $img_x = imagesx($src_img); 
    $img_y = imagesy($src_img);     
    $height_font = 20; // размер шрифта 
    $angle = 0;  // наклон надписи
	$iddmg = $_GET['idd'];
     
    // Запись текста поверх изображения  
    $box = imagettftext($src_img, $height_font, $angle, $img_x - 640, $img_y - 335, $color, $font_file, $text); 
 
    // Вывод изображения в браузер   
    if ($size_img[2]==2)  
    {  
        header ("Content-type: image/jpeg");  
        imagejpeg($src_img, 'images/'.$iddmg.'.jpg');
        imagejpeg($src_img);		
    }  
    else if ($size_img[2]==1)  
    {  
        header ("Content-type: image/gif");  
        imagegif($src_img);  
    }  
    else if ($size_img[2]==3)  
    {  
        header ("Content-type: image/png");  
        imagepng($src_img);
        imagejpeg($src_img, 'images/'.$iddmg.'.png');		
    }  
    return true;  
} 
// использование 
$name = $_GET['name'];
$sex = $_GET['sex'];

if ($sex == mas) {

$ran_dom = rand (1 , 9);

} else {
 $ran_dom = rand (9 , 19);
 }

$img = "img/".$ran_dom.".png"; // путь к изображению
writeTextOnImage($img, "$name");  //  это наш текст, который будет поверх картинки
?>

если выбран пол женски то берётся рандомно число от 9 до 19 (картинки для женщин имеют названия 9.png ,10.png ... 19.png )
если выбран пол мужской то берётся рандомно число от 1 до 8 (картинки для женщин имеют названия 1.png ,2.png ... 8.png )

после человека перебрасывает на другую страницу где им показывают картингу в зависимость от пола и рандома , почему иногда картинка не создаётся ?
  • Вопрос задан
  • 236 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
1. что такое if ($sex == mas)
2.
$ran_dom = rand (1 , 9); } else { $ran_dom = rand (9 , 19);
- девятая картинка присутствует в обоих диапазонах.
3. >> почему иногда картинка не создаётся ?
В логах чисто? Под отладчиком не пробовали запускать?
Ответ написан
@Mylistryx
Не работает не rand(), а imagecolorallocatealpha для форматов изображения не понимающих альфа-канал. php.net/manual/ru/function.imagecolorallocatealpha.php - When working with transparency, avoid imagecreate() and use imagecreatetruecolor() instead. Transparency effects may not work as expected within a palette-based image.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы