За последние 24 часа нас посетили 23511 программистов и 1723 робота. Сейчас ищут 836 программистов ...

Код работает на одной машине и не работает на другой.

Тема в разделе "PHP для новичков", создана пользователем 1Touch2Heaven, 9 июл 2009.

  1. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    2 одинаковых компа, Вин ХР с одного диска ставилась, один и тот же Денвер.... Код работает на моем ноутбуке и в упор не хочет работать на другом.

    Код выдающий на экран анкету сотрудника типа:
    PHP:
    1.  
    2. <?php
    3. $hostname = "localhost";
    4. $username = "root";
    5. $password = "";
    6. $dbName = "personal";
    7. $table = "new_promo";
    8. $sname = $_GET['sname'];
    9. mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
    10. $q = "SELECT * FROM $table where sname='$sname'";
    11. $res = mysql_query($q) or die(mysql_error());
    12. $row = mysql_num_rows($res);
    13. echo ("
    14. <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
    15. <html xmlns=\"http://www.w3.org/1999/xhtml\">
    16.  
    17. <head>
    18.  
    19.    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />
    20.  
    21.    <title>Просмотр анкеты сотрудника</title>
    22.  
    23. <style type=\"text/css\">
    24. body { font: 12px Georgia; color: #666; }
    25. h3 { font-size: 16px; text-align: center; }
    26. table { width: 400px; border-collapse: collapse; margin: 5px auto; background: #ffffff; }
    27. td { padding: 3px; vertical-align: middle; }
    28. input { width: 250px; border: none; color: #010101; }
    29. textarea { width: 250px; height: 100px; border: solid 1px #CCC; color: #FF6666; }
    30. .buttons { width: auto; border: double 1px #666; background: #D6D6D6; color: #000; }
    31. #num { width: 20px; text-align: right; margin-right: 5px; float: right; }
    32. </style>
    33. </head>
    34. <body>
    35.  
    36. <h3>Анкета сотрудника</h3>
    37. ");
    38. /*Погнали данные на вывод*/
    39. while ($row = mysql_fetch_array($res)) {
    40.     echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
    41.     echo "<tr>\n";
    42.     echo "<td><img src=\"resample.php?filename=./foto/".$row['photo_1']."\"></td>\n";
    43.     echo "<td width=600><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"></td>";
    44.     echo "</tr>\n";
    45.     echo "<tr>\n";
    46.  
    47. далее не важно
    48.  
    код масштабирующий фотку сотрудника:

    PHP:
    1.  
    2. <?
    3. $height = '400';
    4. $width = '400';
    5. header('Content-type: image/jpeg');
    6. list($width_orig, $height_orig) = getimagesize($filename);
    7. $ratio_orig = $width_orig/$height_orig;
    8.  
    9. if ($width/$height > $ratio_orig) {
    10.     $width = $height*$ratio_orig;
    11.     } else {
    12.     $height = $width/$ratio_orig;
    13.     }
    14.    
    15. //Resample
    16. $image_p = imagecreatetruecolor($width,$height);
    17. $image = imagecreatefromjpeg($filename);
    18. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    19.  
    20. //Output
    21. imagejpeg($image_p,null,100);
    22. ?>
    23.  
    24.  
    прикол в том, что при просмотре типа анкеты вся текстовая информация догружается, а вот самой фотки нет.
    Причем если на сгенерированной анкете посомтреть HTML то строка
    PHP:
    1. echo "<td><img src=\"resample.php?filename=./foto/".$row['photo_1']."\"></td>\n";
    нормально передаётся и имеет вид например
    HTML:
    1. <td><img src="resample.php?filename=./foto/volod4enko.JPG"></td>
    2.  
    однако фото не отображается...

    Если задать скрипту масштабирования фото принудительно $filename, то в сгенерированной анкете прекрасно отображается заданная принудительно фотка...
    2 дня уже парюсь...
    Код на моем ноутбуке работает отлично... А вот на другом ноль....
    Файрволов нет, запретов тоже....
    что может быть?
    Заранее огромное спасибо...

    P.S. За код не пинайте - знаю, криво... Но это первый в жизни написанный код на PHP... Вопрос четко по сабжу. Почему на одном работает, а на другом - нет....
     
  2. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    о как.... однако.....
    но у меня нет проблемы "Undefined variable"....
    переменная ведь передается потому что:
    1. выборка из БД по параметру sname происходит;
    2. подстановка в ".$row['photo_1']." тоже проходит...

    я может тупой, но не понял как нужно переписать код....

    Да, действительно search.htm передает данные методом "POST"... Судя по ссылке получается что
    должно быть не

    PHP:
    1.  $sname = $_GET['sname'];
    а
    PHP:
    1.  $sname = $_POST['sname'];
    но дело это не меняет... ведь ".$row['photo_1']." скрипт берет из БД и подставляет в линк после "?", как иначе передать?
    или я не прав?

    Реально нужна помощь....
     
  3. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Пощёчина =)
     
  4. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    Я тормоз....

    PHP:
    1.  
    2. <?
    3. $filename = $_GET["filename"];
    4. $height = '400';
    5. $width = '400';
    6. header('Content-type: image/jpeg');
    7. list($width_orig, $height_orig) = getimagesize($filename);
    8. $ratio_orig = $width_orig/$height_orig;
    9.  
    10. if ($width/$height > $ratio_orig) {
    11.     $width = $height*$ratio_orig;
    12.     } else {
    13.     $height = $width/$ratio_orig;
    14.     }
    15.    
    16. //Resample
    17. $image_p = imagecreatetruecolor($width,$height);
    18. $image = imagecreatefromjpeg($filename);
    19. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    20.  
    21. //Output
    22. imagejpeg($image_p,null,100);
    23. ?>
    24.  
    25.  
    все окэй ;))))