Новичок. Ногами не бить. Читаю, учусь но чо то вот с таким простейшим справицо не могу. Описание проблемы. Допустим имеецо такой код: PHP: <?php phpinfo(); phpinfo(INFO_MODULES); ?> Имеется на страничке форма в которой есть 1 кнопочка и 1 чекбокс. Так вот, надо что бы выполнялся такой код при нажатии на кнопочку и соотвественно чекбокс должен быть чекед, а если он не чекед то допустим идет перенапровление на какую либо страницу. Знаю что выглядет все это просто...но нид хелп :? з.ы. если тему коряво обозвал то переименуйте.
kilroy Проверям нажат ли checkbox при помощи isset. Ну к примеру. PHP: $checkbox = $_POST['checkbox_name']; if (isset ($checkbox)){ phpinfo(); phpinfo(INFO_MODULES); } else { header("Location: page.php"); exit; } А зачем, если не секрет?
Ну собсно то чего я хочу сделать приблезительно так и выглядит. Просто на данный момент мой код в ужасном виде... Спс за код, но работает она на половину...либо мой моск работает на половину. Перенаправление происходит в любом случае нажат или не нажат чек бокс, да вроде он должен работь только после нажатия на кнопочку. Вот мой(точнее не мой, но рабочий) код: PHP: <?php $checkbox = $_POST['checkbox']; if (isset ($checkbox)){ // The file $filein = 'test.jpg'; // File in $fileout = 'test_thumb2.jpg'; // Fileout - optional $imagethumbsize_w = 100; // thumbnail size (area cropped in middle of image) $imagethumbsize_h = 75; // thumbnail size (area cropped in middle of image) resize_then_crop( $filein,$fileout,$imagethumbsize_w,$imagethumbsize_h,/*rgb*/"255","255","255"); function resize_then_crop( $filein,$fileout, $imagethumbsize_w,$imagethumbsize_h,$red,$green,$blue) { // Get new dimensions list($width, $height) = getimagesize($filein); $new_width = $width * $percent; $new_height = $height * $percent; if(preg_match("/.jpg/i", "$filein")) { $format = 'image/jpeg'; } if (preg_match("/.gif/i", "$filein")) { $format = 'image/gif'; } if(preg_match("/.png/i", "$filein")) { $format = 'image/png'; } switch($format) { case 'image/jpeg': $image = imagecreatefromjpeg($filein); break; case 'image/gif'; $image = imagecreatefromgif($filein); break; case 'image/png': $image = imagecreatefrompng($filein); break; } $width = $imagethumbsize_w ; $height = $imagethumbsize_h ; list($width_orig, $height_orig) = getimagesize($filein); if ($width_orig < $height_orig) { $height = ($imagethumbsize_w / $width_orig) * $height_orig; } else { $width = ($imagethumbsize_h / $height_orig) * $width_orig; } if ($width < $imagethumbsize_w) //if the width is smaller than supplied thumbnail size { $width = $imagethumbsize_w; $height = ($imagethumbsize_w/ $width_orig) * $height_orig;; } if ($height < $imagethumbsize_h) //if the height is smaller than supplied thumbnail size { $height = $imagethumbsize_h; $width = ($imagethumbsize_h / $height_orig) * $width_orig; } $thumb = imagecreatetruecolor($width , $height); $bgcolor = imagecolorallocate($thumb, $red, $green, $blue); ImageFilledRectangle($thumb, 0, 0, $width, $height, $bgcolor); imagealphablending($thumb, true); imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); $thumb2 = imagecreatetruecolor($imagethumbsize_w , $imagethumbsize_h); // true color for best quality $bgcolor = imagecolorallocate($thumb2, $red, $green, $blue); ImageFilledRectangle($thumb2, 0, 0, $imagethumbsize_w , $imagethumbsize_h , $white); imagealphablending($thumb2, true); $w1 =($width/2) - ($imagethumbsize_w/2); $h1 = ($height/2) - ($imagethumbsize_h/2); imagecopyresampled($thumb2, $thumb, 0,0, $w1, $h1, $imagethumbsize_w , $imagethumbsize_h ,$imagethumbsize_w, $imagethumbsize_h); // Output //header('Content-type: image/gif'); //imagegif($thumb); //output to browser first image when testing if ($fileout !="")imagegif($thumb2, $fileout); //write to file //header('Content-type: image/gif'); //imagegif($thumb2); //output to browser } } ?> Тут должнать проверка делать ли "тамб", ну и если чекбокс чекед то делать "тамб". Ну происходить все это должно только после нажатия кнопочки. хтмл'ка на всякий случай: HTML: <form id="form1" name="form1" method="post" action=""> <label> <input type="submit" name="button" id="button" value="Submit" /> </label> <label> <input name="checkbox" type="checkbox" id="checkbox" value="1" checked="checked" /> </label> </form> А еще апач выдает такую вот ошибочку в логе "PHP Fatal error: Call to undefined function resize_then_crop()"
kilroy Просто нужно еще добавить проверку на кнопку PHP: <?php $button = $_POST['button']; if (isset ($button)){ if (isset ($checkbox)){ ... } else { ... } } ?> РНР сообщает, что такой функции не существует. Возможно вы забыли ее объявить где-то или не подключили файл, где она объявляется?
апач выдал такую теперь ошибочку "PHP Parse error: syntax error, unexpected '{' " на вот этой строчке PHP: if (isset ($button){ Функция эта описана тут http://ru2.php.net/imagecopyresampled ну и собсно сам код спопипастен оттудова. Функция существует ибо код сам по сибе работает, т.е. без всякого ...if...else... п.с. сижу ща обложенный 5ю(!) книгами по php и пытась сделать что вразумительное. Ну а вообще с php имею дело около - + 8 дней. Мне даже стыдно как то стало, но столько инфы перерабатывать за такой короткий промежуток времени... Спасибо за ваше понимание и терпение.
Гм. В коде еще плохо оринетируюсь, но исходя из этого http://php.ru/manual/language.functions.html видимо она вызывается тут, PHP: resize_then_crop( $filein,$fileout,$imagethumbsize_w,$imagethumbsize_h,/*rgb*/"255","255","255"); Где та самая загадочная скобка то не закрыта?? Где 6 строка в выше изложенном коде Elkaz'a??
kilroy, ты неверно используешь isset(). Она проверяет установлена ли переменная и не является ли пустой: Код (Text): if (isset ($_POST['checkbox'])){ Это "чистая" альтернатива вот такого: Код (Text): if ($_POST['checkbox']){ В этом случае, если $_POST['checkbox'] не существует, то вылезит нотис. Но такие мелкие ошибки как нотисы чаще всего глушат. Код (Text): $checkbox = $_POST['checkbox']; if (isset ($checkbox)){ Вызывет тот же самый нотис. Код (Text): if ($_POST['checkbox']) echo 'Чекбокс зажат! Мммм, чекбокс.';
2 lexa спасибо за подробное разъяснение isset'a() проблему("PHP Parse error: syntax error, unexpected '{' ") так и не решил.
PHP: <?php $button = $_POST['button']; if (isset ($button){ phpinfo(); phpinfo(INFO_MODULES); } ?> Мой моск дымицо. Где я тут чего пропустил?
скобку забыл: В таких случаях рекомендуется всё-таки переводить, что тебе пишут: PHP Parse error: syntax error, unexpected '{' Ошибка разбора: синтаксическая ошибка, неожиданная '{' То есть - парсер ждал что-то другое, а увидел '{'
УУУАААА!!!!! Сделал, всем спасибо. PHP: <?php if ($_POST["thumb2"]) {resizeimg("test.jpg","img_small.jpg",130,100);} ?> где "thumb2" - чекбокс.