[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с выводом функции в указаном месте
Shkiper
Здрасти! У меня есть класс а в нем функция в которой текст(выводится опператорм echo) так вот я вывожу функция из класса на странице но текст выводиться не там где надо а на самом верху страници а с помошью return вообще ничего не выводит.что делать?



Спустя 2 минуты, 38 секунд (15.12.2011 - 17:18) Winston написал(а):
В функции нужно делать return !
А ф-ю вызывать потом, в любом месте вот так:
echo funcName($param);

Спустя 1 час, 9 минут, 12 секунд (15.12.2011 - 18:28) Shkiper написал(а):
Спс!!!
Я теперь пожалел что не выучил до конца return и как его вызывать.Попробую

Спустя 12 минут, 33 секунды (15.12.2011 - 18:40) Shkiper написал(а):
Помогите мне вот с чем. У меня такая вот структура вывода функции из класса
$class = new main;
$page = $class->page_profile();
а потом с помошью echo выводиться переменная page но всеравно ничего не выводит что такое?

Спустя 1 минута, 3 секунды (15.12.2011 - 18:41) Winston написал(а):
В методе page_profile, return поставил ?
Покажи метод page_profile.

Спустя 15 минут, 40 секунд (15.12.2011 - 18:57) Shkiper написал(а):
page_profile - это функция в классе. Вот полностью класс вместе функцией(если увидете ошибки исправте пожалуйста)
<?php
session_start();
include_once ("system/data/db.php");
?>
<html>
<
head>
<
title><?php return $myrow['login']; ?></title>
</
head>
<
body>
<?php
//////////////////////////////////////////////////////////////////////////////////////////////////
class main {
function page_profile () {

if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{

//если существует логин и пароль в сессиях, то проверяем, действительны ли он
$db = mysql_connect ("localhost","phpuser","52321919") or exit(mysql_error());
mysql_select_db("phpsite",$db);
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))
{

//Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}

else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id

if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует


return <<<HERE
|<a href='page.php?id=$myrow2[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>
HERE;
//выше вывели меню

if ($myrow['login'] == $login) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные и выводим личные сообщения

return <<<HERE

<form action='update_user.php' method='post'>
Ваш логин <strong>
$myrow[login]</strong>. Изменить логин:<br>
<input name='login' type='text'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<form action='update_user.php' method='post'>
Изменить пароль:<br>
<input name='password' type='password'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<form action='update_user.php' method='post' enctype='multipart/form-data'>
Ваш аватар:<br>
<img alt='аватар' src='
$myrow[avatar]'><br>
Изображение должно быть формата jpg, gif или png. Изменить аватар:<br>
<input type="FILE" name="fupload">
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<h2>Личные сообщения:</h2>


HERE;

$tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$login' ORDER BY id DESC",$db);
$messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху

if (!empty($messages['id'])) {
do //выводим все сообщения в цикле
{
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
$myrow4 = mysql_fetch_array($result4);

if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
$avatar = $myrow4['avatar'];
}
else {$avatar = "avatars/net-avatara.jpg";}

return("
<table>
<tr>
<td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>

<td>Автор: <a href='page.php?id=%s'>%s</a><br>
Дата: %s<br>
Сообщение:<br>
%s<br>
<a href='drop_post.php?id=%s'>Удалить</a>

</td>
</tr>
</table><br>
"
,$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);

//выводим само сообщение
}
while($messages = mysql_fetch_array($tmp));

}
else {
//если сообщений не найдено
return "Сообщений нет";
}

}


else
{
//если страничка чужая, то выводим только некторые данные и форму для отправки личных сообщений

return <<<HERE
<img alt='аватар' src='$myrow[avatar]'><br>
<form action='post.php' method='post'>
<br>
<h2>Отправить Ваше сообщение:</h2>
<textarea cols='43' rows='4' name='text'></textarea><br>
<input type='hidden' name='poluchatel' value='
$myrow[login]'>
<input type='hidden' name='id' value='
$myrow[id]'>
<input type='submit' name='submit' value='Отправить'>
</form>

HERE;
}


}


}

?>






<?php

/////////////////////////////////////////////////////////////////////////////////////////////////
$class = new main;
$page = $class->page_profile();


include ("template/index.php");
?>
</body>
</
html>

Спустя 1 час, 29 минут, 27 секунд (15.12.2011 - 20:26) bodja написал(а):
Это че за код с кучей return и exit и одном методе?
И одним методом в одном классе? :blink:
Ааа.. я догадался -это ООП :D

Ну а если серьезно начните с простого.

function page() {
return 'куку!';
}
echo page();


а потом вот так

class main {
private $msg='куку!';
public function page () {
return $this->msg;
}
}


$class = new main();
echo $class->page();


а потом потихоньку свой процедурный код будете лепить в класс,
и не признавайтесь никому :rolleyes:

Спустя 23 часа, 11 минут, 29 секунд (16.12.2011 - 19:38) Shkiper написал(а):
а как мне вывести результат из БД? например $mysql[text] ведь при присваивании переменой msg вылизит ошибка
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.