[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Lastman

    Lastman New Member

    Joined:
    12 Dec 2010
    Messages:
    51
    Likes Received:
    0
    Reputations:
    0
    Прописано <?die;?> в начале скрипта.
    Можно ли сделать, чтобы после нее выводились остальные блоки?
     
  2. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    условие ставь при котором die ну например если рефер не с нужной страници, или сам думай, вобщем если после этой команды нужен вывод- смысл ее теряется
     
  3. pleze

    pleze New Member

    Joined:
    30 Jul 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте.Помогите с radiobutton
    смысл в том что с помощью него в форме выбирают какбы стиль и как прописать что там radiobutton1 = style1.css
    radiobutton2= style2.css

    Тоесть в форме выбираеться у меня длаьше идёт через POST в другой файл:(вот он)

    PHP:
    <?php

    $name 
    $_POST['name'];
    $fon $_POST['fon'];
    $pozd $_POST['pozd'];
    $pod $_POST['pod'];
    $sitename $_POST['sitename'];
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Последний этам создания</title>
    </head>

    <body>

    <?php
    $h 
    fopen("otk/$sitename.php","w");
    $text "
    <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
    <title>Untitled Document</title>
    <link href='      ' rel='stylesheet' type='text/css'>
    </head>

    <body>
    <table width='690' border='0' align='center'>
      <tr>
        <th scope='col'><img src='img/head.gif' width='690' height='100'></th>
        <th scope='col'>&nbsp;</th>
      </tr>
      <tr>
        <td><h2><?php echo 
    $name; ?><span><?php echo $name; ?></span></h2></td>
        <td</td>
      </tr>
      <tr>
        <td><img src='img/fon1.jpg' width='575' height='239' align='top'></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><p><textarea name='' cols='84' rows='8' readonly='readonly' wrap='off'>
    $pozd</textarea></p></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td></td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>Подарок от: <font size='+1'><p><?php echo 
    $pod; ?></p></font></td>
        <td>&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>"
    ;
    if (
    fwrite($h,$text)) 
      echo 
    "Готова";
    else 
      echo 
    "Ошибка";
    fclose($h);
    ?>
    </body>
    </html>
    <br><br>
    Внимание !отправляйте ссылку на открытку вашим дурзьям! если вы забудете ссылку, то администрация не в силах вам помочь вспомнить её!
    Ссылка <br><textarea name="" cols="50" rows="2" readonly="readonly">www.lovenik.ru/otk/<?php echo $sitename ?>.php</textarea><br>
    <a href="otk/<?php echo  $sitename ?>.php">Перейти на открытку</a>
    и я незнаю как радиобуттон пометить так чтоб каждай обазначала путь к своему файлу...и чтоб потом переменная была именна та которую выбрали
    Ну вообще..я както написла...помогите...если чё я попробу ещё точнее какнить обьяснить
     
  4. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    наверно всетаки постом передавать имя радиобатона и переменная примет значение которое отмеченно в value= или я что то не так понял? и судя по описанию ты лучшеб первый файл выложил чем обработчик, ну если необходимы разные условия в зависимости от выбора- то if - еще никто не отменял
     
    1 person likes this.
  5. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    LFI сплошь и рядом...
     
  6. monster cat

    monster cat New Member

    Joined:
    20 Feb 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Как отправлять сообщения в кирилице в жж в utf8 и cp1251? Пробовал различные варианты, сервер возвращает ошибку 500. Вроде бы нужно url закодировать текст, из того что я пробовал, все равно не получилось отправить.
     
    #17266 monster cat, 28 Dec 2010
    Last edited: 28 Dec 2010
  7. pleze

    pleze New Member

    Joined:
    30 Jul 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    Помогите..делаю создание файла на серврее с помощью пхп
    PHP:
    <?php
    $h 
    fopen("otk/$sitename.php","w");
    $text "
    тралялялялялыв"
    ;
    if (
    fwrite($h,$text)) 
      echo 
    "Готово";
    else 
      echo 
    "Ошибка!!!.";
    fclose($h);
    ?>
    через денвер всё работало а когда заливаю на хост и там пытаюсь создать показывает ошибки вот эти((

    Что исправить или как создать файл подругом
     
  8. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    мож всетаки вот так?
    PHP:
    $h fopen('otk/'.$sitename.'.php',"w");
    если создаеш файл в той-же дирректории где находится скрипт то путь указывать ненадо
    P.S права на папку otk/ поставь 777
     
    #17268 Kusto, 28 Dec 2010
    Last edited: 28 Dec 2010
  9. pleze

    pleze New Member

    Joined:
    30 Jul 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    Kusto, Неа теже самые ошибки
     
  10. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    и даже если права на папку поднял?
     
  11. pleze

    pleze New Member

    Joined:
    30 Jul 2010
    Messages:
    35
    Likes Received:
    0
    Reputations:
    0
    ой всё работает)извините) я просто сразу неувидел почемуто

    Спасибо огромное вам!)
     
  12. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    Как эту функцию можно сократить? Она ставит изображения в линию и превращает их в одно изображение..
    что здесь лишнее, а чего не хватает.
    PHP:
    function image_merge($imagesadress,$save=null){
       if(!
    $imagesadress) return false;
       foreach (
    $imagesadress as $image)
           
    $img[] = imagecreatefromjpeg($image);
       
    $allwidth=0;
       for(
    $i=0;$i<count($imagesadress);$i++){/*тут в цикле берутся данные картинок с помощью функции getimagesize()*/
           
    list($width[$i],$height[$i])=getimagesize($imagesadress[$i]);
           
    $allwidth+=$width[$i];/* и подбирается подходящий размер для новой картинки*/
       
    }
       
    rsort($height);/* сортируем по убыванию, чтобы подобрать высоту новой картинки.*/
       
    $allheight=$height[0];
       
       
    $im=imagecreate($allwidth$allheight);/* создаем новую картинку.*/
       
       
    for($i=0;$i<count($imagesadress);$i++){/* помещаем туда, как в контейнер, наши изображенияя*/
           
    imagecopymerge($im$img[$i], $i*$width[$i], 000$width[$i], $height[$i], 100);
       }
       
       
    imagejpeg($im,$save);/* и все, это чтобы вывести, $save - адресс для новой картинки.*/
       
    return true;/* все ок, значит труе выводим.*/
    }

    $arr[]="imga1.jpg";
    $arr[]="imga2.jpg";
    if(
    image_merge($arr,"newpicture.jpg")){/* последний аргумент не обязательно писать, но тогда сам адрес где этот код будет являться адресом новой картинки.*/
     
    #17272 snet, 28 Dec 2010
    Last edited: 28 Dec 2010
  13. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    ищу исходники md5 на php, именно исходники.
     
  14. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    hattp://stackoverflow.com/questions/1697882/md5-implementation-in-php-where-am-i-going-wrong
    В гугли нашел за две минуты

    мой вопрос остается в силе..
     
    #17274 snet, 28 Dec 2010
    Last edited: 28 Dec 2010
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    snet Что вас не устраивает в вашем коде? Есть хорошее правило: если программа работает - не трогайте ее.
     
    _________________________
  16. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    Gifts, не годится это правило никуда. Хочу уметь писать правильно, кратко и читабельно, кроме как спрашивать мнения о своем коде я не вижу другого способа этому научиться...
    Я просто написал эту функцию полностью сам, поэтому сомневаюсь что идеально. Хотел бы услышать ответы в духе "Почему у тебя так, если можно так" или "не хватает того, посмотри как тут".
     
    #17276 snet, 29 Dec 2010
    Last edited: 29 Dec 2010
  17. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    2snet
    Лень все расписывать покажу лишь пару моментов

    Момент 1:
    Ты сортировал массив $height, чтобы выбрать наибольшее значение, для новой картинки. Это хорошо, но потом при добавлении картинки к "контейнеру" ты берешь значение высоты исходной картинки уже из отсортированного массива. Все былобы хорошо если 1 картинка была большего размера (высоты). Но если картинка с большей высотой - вторая (или 3 и т.д.), то после сортировки в этом куске
    PHP:
    imagecopymerge($im$img[$i], ... $height[$i], 100);
    она будет брать не свою высоту (т.к. ты сортировал массив). Надеюсь понял )))

    Вылечить можно так:
    После $allwidth+=$width[$i]; добавить $truehigth[$i] = $height[$i];
    Тем самым мы сделаем новый массив чтобы картинки в последующем брали свои размеры из этого массва, который не будет сортирован.
    И применим его тут:
    PHP:
    imagecopymerge($im$img[$i], ... $truehigth[$i], 100);
    Момент 2:
    Расположение картинок на "контейнере".
    В твоей функции оно тут:
    PHP:
    imagecopymerge($im$img[$i], $i*$width[$i], 000$width[$i], $height[$i], 100);
    А именно $i*$width[$i]
    Получается следующее:
    У нас 2 картинки у первой ($i=0) ширина 100 у второй ширина 250.
    В цикле получится первая картинка ляжет на x=0 (т.к. 0*100 = 0), а вторая картинка ляжет на 250 (1*250) исходя из $i*Ширина. И получится, что у нас образуется пробел между картинками в 150 пикселей. (А если будет третья то та вообще ляжет на две своих ширины. $=2 => 2*ширину).
    А нам нужно картинки укладывать так:
    0 + X предыдущей картинки. (или ширина предыдущих) Чтобы они шли ровно друг за другом. Я бы сделал так - координаты по x высчитывал бы:
    $x += $width[$i-1];
    переменная бы увеличивалась на ширину предыдущих картинок. И ее бы использовал при добавлении на контейнер. Так:
    PHP:
    $x += $width[$i-1];
    imagecopymerge($im$img[$i], $x... );
    Получится, что новая картинка будет ложится, где кончаются предыдущие. Вроде правильно. )

    Момент 3:
    Цвета с твоей функцией у меня получались в сером оттенке. Совсем не красиво. Я изменил эту строчку:
    PHP:
    $im=imagecreate($allwidth$allheight);/* создаем новую картинку.*/ 
    На
    PHP:
    $im=imagecreatetruecolor($allwidth$allheight); 
    Момент 4:
    Не знаю зачем ты использовал imagecopymerge, если слияние нам тут в принципе не нужно. Мы же следующие картинки ставим не как водяные знаки. я бы использовал imagecopy

    Момент 5:
    У тебя два однотипных цикла
    PHP:
     foreach ($imagesadress as $image
           
    $img[] = imagecreatefromjpeg($image);
    //и сразу за ним 
    for($i=0;$i<count($imagesadress);$i++){
    ...
    Зачем использовать первый массив для объявления ID изображений, если их можно сделать во втором?
    PHP:
    for($i=0;$i<count($imagesadress);$i++){
            
    $img[] = imagecreatefromjpeg($imagesadress[$i]); 
           list(
    $width[$i],$height[$i])=getimagesize($imagesadress[$i]); 
           
    $allwidth+=$width[$i];
    }
    В итоге, если все собрать получим такую:
    PHP:
    <?php 
    function image_merge($imagesadress,$save=null){  
       if(!
    $imagesadress) return false;  
       for(
    $i=0,$cnt=count($imagesadress);$i<$cnt;$i++){ 
           
    $img[] = imagecreatefromjpeg($imagesadress[$i]);  
           list(
    $width[$i],$height[$i])=getimagesize($imagesadress[$i]);  
           
    $allwidth+=$width[$i]; 
           
    $truehigth[$i] = $height[$i]; 
       } 
       
    rsort($height); 
       
    $allheight=$height[0]; 
       
    $im=imagecreatetruecolor($allwidth$allheight); 
         
       for(
    $i=0,$cnt=count($imagesadress);$i<$cnt;$i++){ 
       
    $x += $width[$i-1]; 
           
    imagecopy($im$img[$i], $x000$width[$i], $truehigth[$i]); 
       } 
        
       
    imagejpeg($im,$save); 
       return 
    true
    }  
    $arr[]="1.jpg";  
    $arr[]="2.jpg";  
    $arr[]="3.jpg";  
    $arr[]="4.jpg";  

    if(
    image_merge($arr,"newpicture.jpg")) echo "<img src='newpicture.jpg' />";
    ?>
    И еще. Хорошо бы все кратинки подгонять под одну высоту, чтобы небыло черных пробелов.
    Посмотри тут функцию http://www.codenet.ru/webmast/php/gd/Resize.php
     
    #17277 LStr1ke, 29 Dec 2010
    Last edited: 29 Dec 2010
    1 person likes this.
  18. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    Спасибо большое, такого развернутого ответа мне никогда не давали. Все свои ошибки понял, еще раз спасибо.
     
  19. HBWS

    HBWS Member

    Joined:
    26 Nov 2010
    Messages:
    226
    Likes Received:
    22
    Reputations:
    0
    А есть ли возможность определить, что за ос установлена на удаленной машине (включая мобильные платформы)?
     
  20. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Можно по юзерагенту узнать информацию об ОС, но информацию не полную...

    http://ru.wikipedia.org/wiki/Useragent
     
Thread Status:
Not open for further replies.