Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: опять логотип
 
 автор: Василий   (04.01.2012 в 22:24)   письмо автору
 
 

Если логотип есть - выводим, если нет - то выводим картинку no.jpg

И картинки не выводятся
<?php 
$path 
"img/logo_pu/";
$image $myrow['logo']; 
$no no;
if (!empty(
$myrow ['logo'])) {
echo 
"<td><img src='".$path.$image."' alt='' /></td>"; }
else{
echo 
"<td><img src='".$path.$no."' alt='' /></td>"; }
?> 

  Ответить  
 
 автор: Slo_Nik   (04.01.2012 в 22:35)   письмо автору
 
   для: Василий   (04.01.2012 в 22:24)
 

>$no = no;
а разве переменной $no присвоено имя изображения?
по идее Вам php должен показать предупреждение типа "NOTICE", что не показывает?
вот так должно выглядеть
Notice: Use of undefined constant no - assumed 'no' in.....

  Ответить  
 
 автор: Василий   (04.01.2012 в 22:56)   письмо автору
 
   для: Slo_Nik   (04.01.2012 в 22:35)
 

не выдает ошибок.

вот верно? $no = no.jpg

  Ответить  
 
 автор: Valick   (04.01.2012 в 22:58)   письмо автору
 
   для: Василий   (04.01.2012 в 22:56)
 

нет не верно, кавычки кто будет рисовать?
$no = "no.jpg";

  Ответить  
 
 автор: Slo_Nik   (04.01.2012 в 23:00)   письмо автору
 
   для: Василий   (04.01.2012 в 22:56)
 

так. начнём всё сначала..
1)используете функцию error_reporting() ?
2)Если да, то в каком месте кода Вы её прописываете?
3)Проверьте через функцию phpinfo(), есть ли вывод ошибок в браузер?
4) Имя файла надо заключить в кавычки, это строка....
вот ссылка по ошибкам

Системное сообщение об ошибке - не твой враг, а твой друг. 
Избавляться от него не надо! Наоборот - надо стремиться получить его всеми силами - оно поможет исправить тебе ошибку.
Не надо просто путать программиста с пользователем.
Если ты разрабатываешь сайт, и пользователь - ты сам, то удобнее смотреть ошибки на экране.
поэтому делаем в настройках сервера
display_errors=on

ну и далее в статье и по ссылкам почитайте

  Ответить  
 
 автор: Василий   (05.01.2012 в 01:24)   письмо автору
 
   для: Slo_Nik   (04.01.2012 в 23:00)
 

1)используете функцию error_reporting() ?
2)Если да, то в каком месте кода Вы её прописываете?

Прописываю в самом верху
<?php
ini_set
("display_errors","1");
if (
version_compare(phpversion(), "5.0.0"">")==1) {
    
ini_set("error_reporting"E_ALL E_STRICT);
} else {
    
ini_set("error_reporting"E_ALL);
};
?>

Notice: Undefined variable: organ in...
Notice: Undefined variable: text in...
Notice: Undefined variable: ling in...

3)Проверьте через функцию phpinfo(), есть ли вывод ошибок в браузер?
log_errors On On
error_append_string no value no value
error_log error_log error_log
error_prepend_string no value no value
4) Имя файла надо заключить в кавычки, это строка....
кавычки есть $no = "no.jpg";

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 02:28)   письмо автору
 
   для: Василий   (05.01.2012 в 01:24)
 

инициализируйте все переменные, на которые выдало notice
возможно не правильно указан путь к изображению no.jpg
какие именно картинки не выводятся, логотип или no.jpg?

  Ответить  
 
 автор: Василий   (05.01.2012 в 03:08)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 02:28)
 

что такое "инициализируйте все переменные, на которые выдало notice!" ?

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 03:19)   письмо автору
 
   для: Василий   (05.01.2012 в 03:08)
 

присвоить значение по умолчанию
<?php $a = isset($a) ? $a null?>

  Ответить  
 
 автор: Василий   (05.01.2012 в 03:31)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 03:19)
 

Эти не иниц. переменные приходят из формы
<input name="text" type="hidden" value="<?php echo $_GET['text']; ?>">
<input name="ling" type="hidden" value="<?php echo $_GET['ling']; ?>">

ЧТо с ними не так?
Куда это прописать:
<?php $a = isset($a) ? $a null?> 

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 03:33)   письмо автору
 
   для: Василий   (05.01.2012 в 03:31)
 

а Вы подумайте сами немножко....
перепишите мой пример так, что бы Ваши переменные были инициализированы
небольшая подсказка, это надо сделать в начале скрипта
и так как Вы подставляете глобальные переменные, лучше так не делать. всегда инициализируйте их, особенно те,в которых могут быть данные получаемые от пользователя

  Ответить  
 
 автор: Василий   (05.01.2012 в 03:41)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 03:33)
 

тогда вот так
<?php
ini_set
("display_errors","1");
if (
version_compare(phpversion(), "5.0.0"">")==1) {
    
ini_set("error_reporting"E_ALL E_STRICT);
} else {
    
ini_set("error_reporting"E_ALL);
};

 
$ling= isset($ling) ? $lingnull;
 
$text= isset($text) ? $textnull;
?>


Этот код вставляю сверху в том файле где выходили ошибки
Верно?

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 03:57)   письмо автору
 
   для: Василий   (05.01.2012 в 03:41)
 

нет, не верно.
думайте ещё.
опять подскажу.
откуда Вы получаете данные, которые хотите присвоить этим переменным из какого источника?

  Ответить  
 
 автор: Василий   (05.01.2012 в 04:02)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 03:57)
 

данные я беру из той многострадальной формы.
и передаю их в обработчик

из базы данных я получаю эти источники. И?

  Ответить  
 
 автор: Василий   (05.01.2012 в 04:22)   письмо автору
 
   для: Василий   (05.01.2012 в 04:02)
 

Slo_Nik, Вы чего не спите? )))

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 04:22)   письмо автору
 
   для: Василий   (05.01.2012 в 04:02)
 

что "и"???
это и так понятно, что из формы
когда отправляете форму в какой массив попадают данные из полей text и ling?

  Ответить  
 
 автор: Василий   (05.01.2012 в 04:23)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 04:22)
 

в зависимости от предприятия.
в данном случае они пустые

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 04:26)   письмо автору
 
   для: Василий   (05.01.2012 в 04:23)
 

ещё раз попробую, может дойдёт до Вас...
в какой массив попадают данные из формы, когда Вы её отправляете?
подсказка: атрибут тега form - method

  Ответить  
 
 автор: Василий   (05.01.2012 в 04:28)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 04:26)
 

методом POST

вижу их в массиве

[text] =>
[ling] =>

пустые.

  Ответить  
 
 автор: Василий   (05.01.2012 в 04:30)   письмо автору
 
   для: Василий   (05.01.2012 в 04:28)
 

методом GET!!!! ))))

странно
<form action="pu_action.php" method="get" name="f2">

<?php echo '<pre>';
print_r($_GET);
echo '</pre>';?>

показыает пустой массив
Array
(
)

А так полный
<?php echo '<pre>';
print_r($_POST);
echo '</pre>';?>

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 04:35)   письмо автору
 
   для: Василий   (05.01.2012 в 04:30)
 

какой к чёрту метод GET?!!
Вы отправляете форму, метод в атрибуте прописан post!!!
так какой может быть get?!!
вот теперь подумайте ещё раз, как инициализировать переменные
и по поводу метода get
Вы в value прописываете

<?php 
echo "<input type='text' name='text' value='".$_GET['text']."' />";

и когда отправите форму, то поле не будет заполнено.
а если пользователь ошибётся при заполнении формы?
тогда ему надо будет снова прописывать значение руками, которое было передано через get
а будет удобно, чтобы значения сохранились
вот над этим тоже подумайте, как сделать

  Ответить  
 
 автор: Василий   (05.01.2012 в 04:42)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 04:35)
 

Поясню - text, ling - не предлагается для изменения.
Пользователь их не может менять.
А название - пожалуйста.
  <td width="200" valign="top"><b>Название организации:</b></td>
  <td width="550" align="left" style='background-color:#f0f0f0'>
  <input value= "<?php echo $_GET['title']; ?>" type="text" name="title">

Так как все-таки устраниь ошибку неинициализации тех переменных?

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 04:48)   письмо автору
 
   для: Василий   (05.01.2012 в 04:42)
 

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

  Ответить  
 
 автор: Василий   (05.01.2012 в 04:52)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 04:48)
 

я переписал Ваш пример
 $ling= isset($ling) ? $ling: null;
 $text= isset($text) ? $text: null; 

Вы пишите что у меня неправильно )))

Подскажите, где Вы учились PHP
Сколько времени у Вас это заняло?

  Ответить  
 
 автор: elenaki   (05.01.2012 в 10:42)   письмо автору
 
   для: Василий   (05.01.2012 в 04:52)
 

>Подскажите, где Вы учились PHP
>Сколько времени у Вас это заняло?


смешно. разве можно сказать - все, я выучил PHP, теперь ВСЕ знаю. учиться надо постоянно.

  Ответить  
 
 автор: cheops   (05.01.2012 в 14:47)   письмо автору
 
   для: Василий   (05.01.2012 в 04:52)
 

Вообще PHP можно выучить на базовом уровне, прочитав последовательную книгу в 500 страниц, а потом в 1000 страниц. Возможно придется прочитать пару-тройку раз. Сколько это времени занимает, зависит от конкретного человека и того, сколько языков программирования он уже знает. В таких книгах материал дается от простого к сложному.

PS Однако, elenaki, ехидничает не с проста. Во-первых каждые несколько лет 40% ваших знаний устаревает, а на смену старым технологиям приходят новые. Поэтому знания нужно постоянно обновлять - это непрерывный процесс. Кроме того, PHP - это лишь кирпичик большой пирамиды, всю эту пирамиду не охватить, вы поднимите лишь несколько кирпичей. Один кирпич почти беполезен, нет пользу конечно извлечете, но кирпичи друг друга усиливают и вы становитесь сильным тогда, когда у вас в руках оказывается часть пирамиды - одна или несколько технологий от начала до конца.
PPS С вами ничего не нормального не происходит, все так и должно быть, по началу это не быстро, потом процесс пойдет быстрее и быстрее. В конце концов вы сами не будете замечать, как изучаете новые технологии, настолько свыкнитесь с этим процессом.

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 14:58)   письмо автору
 
   для: Василий   (05.01.2012 в 04:42)
 

Если пользователь не может менять text и ling, то зачем вообще их в форму пихать?
Вывод в форме предполагает изменение параметра.

  Ответить  
 
 автор: Василий   (05.01.2012 в 15:04)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 14:58)
 

почему?
да я пробовал - база не обновляется иначе, пишет вы вели не все данные.
Поэтому "таскаю" их.
Но как ушли далеко от первого поста.
Картинка не выводится

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 15:12)   письмо автору
 
   для: Василий   (05.01.2012 в 15:04)
 

значит подправьте код, который пишет в базу, что бы он не реагировал на эти данные.
теперь по картинке
что писал я Вам раньше, да и Cheops тоже ?
поэтапно проверять все переменные, выводите их в браузер и смотрите, что в них находится

<?php  
$path 
"img/logo_pu/"
echo 
$path;
$image $myrow['logo'];  
echo 
$image
$no 
"no.jpg";
echo 
$no
echo 
$path.$image;
if (!empty(
$myrow ['logo']) /* где проверка, что файл существует?!! */) { 
echo 
"<td><img src='".$path.$image."' alt='' /></td>"; } 
else{ 
echo 
"<td><img src='".$path.$no."' alt='' /></td>"; } 
?> 

p.s. и уберите элементы таблицы из echo !!! потом будете оформлять

  Ответить  
 
 автор: Василий   (05.01.2012 в 15:14)   письмо автору
 
   для: Slo_Nik   (05.01.2012 в 15:12)
 

файл, в котором Вы пытаетесь показать картинку и сама папка img лежат на одном уровне?

вот в чем была проблема.
Спасибо

  Ответить  
 
 автор: Slo_Nik   (05.01.2012 в 15:16)   письмо автору
 
   для: Василий   (05.01.2012 в 15:14)
 


<?php
/* зачем проверять эту переменную если есть уже $image?!! */
if (!empty($myrow ['logo'])

Вывели картинку?
Если да, то закатывайте банкет по этому поводу )))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования