За последние 24 часа нас посетили 64048 программистов и 1741 робот. Сейчас ищут 819 программистов ...

Простейшее логическое выражение "if... "

Тема в разделе "PHP для новичков", создана пользователем kilroy, 3 мар 2008.

  1. kilroy

    kilroy Активный пользователь

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Новичок. Ногами не бить. Читаю, учусь но чо то вот с таким простейшим справицо не могу.
    Описание проблемы.
    Допустим имеецо такой код:
    PHP:
    1. <?php
    2. phpinfo(INFO_MODULES);
    3. ?>
    Имеется на страничке форма в которой есть 1 кнопочка и 1 чекбокс.

    Так вот, надо что бы выполнялся такой код при нажатии на кнопочку и соотвественно чекбокс должен быть чекед, а если он не чекед то допустим идет перенапровление на какую либо страницу.

    Знаю что выглядет все это просто...но нид хелп :?

    з.ы. если тему коряво обозвал то переименуйте.
     
  2. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    kilroy
    Проверям нажат ли checkbox при помощи isset. Ну к примеру.
    PHP:
    1.  
    2. $checkbox = $_POST['checkbox_name'];
    3. if (isset ($checkbox)){
    4. phpinfo(INFO_MODULES);
    5. }
    6. else {
    7. header("Location: page.php");
    8. }
    9.  
    А зачем, если не секрет?
     
  3. kilroy

    kilroy Активный пользователь

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Ну собсно то чего я хочу сделать приблезительно так и выглядит. Просто на данный момент мой код в ужасном виде...

    Спс за код, но работает она на половину...либо мой моск работает на половину.

    Перенаправление происходит в любом случае нажат или не нажат чек бокс, да вроде он должен работь только после нажатия на кнопочку.

    Вот мой(точнее не мой, но рабочий) код:

    PHP:
    1.  
    2. <?php
    3.  $checkbox = $_POST['checkbox'];
    4.  if (isset ($checkbox)){
    5. // The file
    6. $filein = 'test.jpg'; // File in
    7. $fileout = 'test_thumb2.jpg'; // Fileout - optional
    8.  
    9.  
    10. $imagethumbsize_w = 100; // thumbnail size (area cropped in middle of image)
    11. $imagethumbsize_h = 75; // thumbnail size (area cropped in middle of image)
    12. resize_then_crop( $filein,$fileout,$imagethumbsize_w,$imagethumbsize_h,/*rgb*/"255","255","255");
    13.  
    14.  
    15. function resize_then_crop( $filein,$fileout,
    16. $imagethumbsize_w,$imagethumbsize_h,$red,$green,$blue)
    17. {
    18.  
    19. // Get new dimensions
    20. list($width, $height) = getimagesize($filein);
    21. $new_width = $width * $percent;
    22. $new_height = $height * $percent;
    23.  
    24.    if(preg_match("/.jpg/i", "$filein"))
    25.    {
    26.        $format = 'image/jpeg';
    27.    }
    28.    if (preg_match("/.gif/i", "$filein"))
    29.    {
    30.        $format = 'image/gif';
    31.    }
    32.    if(preg_match("/.png/i", "$filein"))
    33.    {
    34.        $format = 'image/png';
    35.    }
    36.    
    37.        switch($format)
    38.        {
    39.            case 'image/jpeg':
    40.            $image = imagecreatefromjpeg($filein);
    41.            break;
    42.            case 'image/gif';
    43.            $image = imagecreatefromgif($filein);
    44.            break;
    45.            case 'image/png':
    46.            $image = imagecreatefrompng($filein);
    47.            break;
    48.        }
    49.  
    50. $width = $imagethumbsize_w ;
    51. $height = $imagethumbsize_h ;
    52. list($width_orig, $height_orig) = getimagesize($filein);
    53.  
    54. if ($width_orig < $height_orig) {
    55.   $height = ($imagethumbsize_w / $width_orig) * $height_orig;
    56. } else {
    57.     $width = ($imagethumbsize_h / $height_orig) * $width_orig;
    58. }
    59.  
    60. if ($width < $imagethumbsize_w)
    61. //if the width is smaller than supplied thumbnail size
    62. {
    63. $width = $imagethumbsize_w;
    64. $height = ($imagethumbsize_w/ $width_orig) * $height_orig;;
    65. }
    66.  
    67. if ($height < $imagethumbsize_h)
    68. //if the height is smaller than supplied thumbnail size
    69. {
    70. $height = $imagethumbsize_h;
    71. $width = ($imagethumbsize_h / $height_orig) * $width_orig;
    72. }
    73.  
    74. $thumb = imagecreatetruecolor($width , $height);  
    75. $bgcolor = imagecolorallocate($thumb, $red, $green, $blue);  
    76. ImageFilledRectangle($thumb, 0, 0, $width, $height, $bgcolor);
    77. imagealphablending($thumb, true);
    78.  
    79. imagecopyresampled($thumb, $image, 0, 0, 0, 0,
    80. $width, $height, $width_orig, $height_orig);
    81. $thumb2 = imagecreatetruecolor($imagethumbsize_w , $imagethumbsize_h);
    82. // true color for best quality
    83. $bgcolor = imagecolorallocate($thumb2, $red, $green, $blue);  
    84. ImageFilledRectangle($thumb2, 0, 0,
    85. $imagethumbsize_w , $imagethumbsize_h , $white);
    86. imagealphablending($thumb2, true);
    87.  
    88. $w1 =($width/2) - ($imagethumbsize_w/2);
    89. $h1 = ($height/2) - ($imagethumbsize_h/2);
    90.  
    91. imagecopyresampled($thumb2, $thumb, 0,0, $w1, $h1,
    92. $imagethumbsize_w , $imagethumbsize_h ,$imagethumbsize_w, $imagethumbsize_h);
    93.  
    94. // Output
    95. //header('Content-type: image/gif');
    96. //imagegif($thumb); //output to browser first image when testing
    97.  
    98. if ($fileout !="")imagegif($thumb2, $fileout); //write to file
    99. //header('Content-type: image/gif');
    100. //imagegif($thumb2); //output to browser
    101. }
    102. }
    103.  
    104.  ?>
    105.  
    Тут должнать проверка делать ли "тамб", ну и если чекбокс чекед то делать "тамб".
    Ну происходить все это должно только после нажатия кнопочки.
    хтмл'ка на всякий случай:
    HTML:
    1.  
    2. <form id="form1" name="form1" method="post" action="">
    3.   <label>
    4.   <input type="submit" name="button" id="button" value="Submit" />
    5.   </label>
    6.   <label>
    7.   <input name="checkbox" type="checkbox" id="checkbox" value="1" checked="checked" />
    8.   </label>
    9. </form>
    10.  
    А еще апач выдает такую вот ошибочку в логе
    "PHP Fatal error: Call to undefined function resize_then_crop()"
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    kilroy
    Просто нужно еще добавить проверку на кнопку

    PHP:
    1.  
    2. <?php
    3. $button = $_POST['button'];
    4. if (isset ($button)){
    5. if (isset ($checkbox)){
    6. ...
    7. }
    8. else {
    9. ...
    10. }
    11. }
    12. ?>
    13.  
    РНР сообщает, что такой функции не существует. Возможно вы забыли ее объявить где-то или не подключили файл, где она объявляется?
     
  5. kilroy

    kilroy Активный пользователь

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    апач выдал такую теперь ошибочку
    "PHP Parse error: syntax error, unexpected '{' "
    на вот этой строчке
    PHP:
    1.  if (isset ($button){
    Функция эта описана тут http://ru2.php.net/imagecopyresampled ну и собсно сам код спопипастен оттудова.
    Функция существует ибо код сам по сибе работает, т.е. без всякого ...if...else...

    п.с. сижу ща обложенный 5ю(!) книгами по php и пытась сделать что вразумительное.
    Ну а вообще с php имею дело около - + 8 дней.
    Мне даже стыдно как то стало, но столько инфы перерабатывать за такой короткий промежуток времени...

    Спасибо за ваше понимание и терпение.
     
  6. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    kilroy
    Скобка не закрыта.
     
  7. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    +Sten+
    Спасибо, поправил.
    kilroy
    А как вызываете-то resize_then_crop?
     
  8. kilroy

    kilroy Активный пользователь

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    Гм. В коде еще плохо оринетируюсь, но исходя из этого http://php.ru/manual/language.functions.html
    видимо она вызывается тут,
    PHP:
    1. resize_then_crop( $filein,$fileout,$imagethumbsize_w,$imagethumbsize_h,/*rgb*/"255","255","255");
    Где та самая загадочная скобка то не закрыта??
    Где 6 строка в выше изложенном коде Elkaz'a??
     
  9. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    kilroy, ты неверно используешь isset(). Она проверяет установлена ли переменная и не является ли пустой:
    Код (Text):
    1. if (isset ($_POST['checkbox'])){
    Это "чистая" альтернатива вот такого:
    Код (Text):
    1. if ($_POST['checkbox']){
    В этом случае, если $_POST['checkbox'] не существует, то вылезит нотис. Но такие мелкие ошибки как нотисы чаще всего глушат.
    Код (Text):
    1. $checkbox = $_POST['checkbox'];
    2. if (isset ($checkbox)){
    Вызывет тот же самый нотис.

    Код (Text):
    1. if ($_POST['checkbox'])
    2.     echo 'Чекбокс зажат! Мммм, чекбокс.';
     
  10. Anonymous

    Anonymous Guest

    kilroy, смените аватар. Разрешены лишь личные фото.
     
  11. kilroy

    kilroy Активный пользователь

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    2 lexa спасибо за подробное разъяснение isset'a()

    проблему("PHP Parse error: syntax error, unexpected '{' ") так и не решил.
     
  12. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Явно где-то просто что-то лишнее стёр (или за комментировал)
     
  13. kilroy

    kilroy Активный пользователь

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    PHP:
    1.  
    2.  <?php
    3. $button = $_POST['button'];
    4.  if (isset ($button){
    5.  phpinfo();
    6.  phpinfo(INFO_MODULES);
    7.  }
    8.  ?>
    Мой моск дымицо.
    Где я тут чего пропустил?
     
  14. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    скобку забыл:
    В таких случаях рекомендуется всё-таки переводить, что тебе пишут:
    PHP Parse error: syntax error, unexpected '{'
    Ошибка разбора: синтаксическая ошибка, неожиданная '{'

    То есть - парсер ждал что-то другое, а увидел '{'
     
  15. kilroy

    kilroy Активный пользователь

    С нами с:
    25 фев 2008
    Сообщения:
    46
    Симпатии:
    0
    Адрес:
    у тебя пельмени?
    УУУАААА!!!!!
    Сделал, всем спасибо.

    PHP:
    1. <?php if ($_POST["thumb2"]) {resizeimg("test.jpg","img_small.jpg",130,100);} ?>
    где "thumb2" - чекбокс.
     
  16. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    А если уж спросил на форуме то будь добр прочитай что тебе ответили :D