проблема такая. допустим чувак логинется в личном кабинете под своим Login\pass. авторизация состоит из 2-х файликов: index.php( форма) login.php(скрипт авторизации) следующим должно быть к примеру статистика о Юзере (show_user.php) файлик этот готов, вопрос остался в том как мне его прикрепить чтоб он заработал правильно. должна получиться цепь : index.php(1,1)->login.php->show_user.php(1,1) index.php(3,333)->login.php->show_user.php(3,333) исходиники файлов могу прикрепить, помогите, пожалуйста.сейчас у меня просто после авторизации переходит на show_user.php но толком не работает потому что не знает по какому юзеру показывать, на странице вываливается таблица с ошибками в полях. . . :cry:
Можно как-то так: В куках храним id сессии, в БД допустим, hash($id_сессии.$ip). Функции для авторизации (ИМХО лучше класс конешн, но о вкусах не спорят) хранятся в отдельном файлеге который require_once(или __autoload если класс) и в index.php и в show_users.php. P.S. Да конешн это не оптимальный варинат, логинку нужно было продумывать изначально сразу нормально но и так потянет
а раз проходит аторизация, то данные о том какой пользователь делает действия у тебя должны быть. Иначе на фига весь сыр бор? вот вытащи эти дынные(намёк на низ должен быть в сессии, если чё ) и используй их в запросе.
вот прикрепляю файлики . куки не используются. Юзаю Urfa. пишется личный каб. index.php: PHP: <HTML><HEAD> <TITLE>Вход</TITLE> </HEAD><BODY> <BR>Вход <FORM name="login" method="POST" action="./login.php"><TABLE> <TR> <TD class="form-field" align="right">Логин</TD> <TD class="form-field" align="left"> <INPUT type="text" class="form-field" size="40" name="login" value="<?php $login?>"></TD></TR> <TR><TD class="form-field" align="right">Пароль</TD> <TD class="form-field" align="left"> <INPUT type="password" class="form-field" size="40" name="pass" value="<?php $pass?>"></TD></TR> <INPUT type="hidden" name="cmd" value="login"><TR> <TD></TD> <TD><INPUT type="submit" class="form-button" value="Вход"></TD> </TR></TABLE></FORM> </BODY> </HTML> вот login.php: PHP: <?php require_once('./urfaclient/socket.php'); require_once('./urfaclient/packet.php'); require_once('./urfaclient/functions.php'); if (!urfa_connect('127.0.0.1',11758)) { echo "Error connect"; exit; } if (!urfa_login($_POST['login'],$_POST['pass'])) { echo "Invalid login or password"; exit; } else { echo "<html><head><META HTTP-EQUIV='Refresh' CONTENT='0; URL=show_user.php'></head></html>"; } ?> а вот сам show_user.php: PHP: <?php require_once('./urfaclient/user_functions.php'); require_once('./urfaclient/socket.php'); require_once('./urfaclient/packet.php'); echo "<table border=\"0\" width=\"100%\"><tr><td width=\"50\"><img src=\"./images/stat.gif\"></td><td align=\"left\"><font size=\"4\"><b>Информация</b></font></td>"; echo "<td width=\"16\" align=\"right\"></td><td align=\"left\" width=\"10%\" nowrap></td></tr></table>"; echo "<hr size=\"2\" color=\"#FF6600\">"; echo "<div align=\"left\"><img src=\"./images/user_big.gif\" style=\"vertical-align:text-bottom\"><font size=\"5\" color=\"#0000CC\" face=\"Tahoma\"><b>Аккаунт </font><font size=\"5\" color=\"#00AA00\" face=\"Tahoma\">",$ret['login']."</b></font></div>\n"; // ФБВМЙГБ - ПУОПЧОЩЕ ДБООЩЕ echo "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\0\" cellpadding=\"0\"><tr><td bgcolor=\"#AAAAAA\">\n"; echo "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">\n"; echo "<tr>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\" width=\"60\"><font size=\"2\" face=\"Arial\"><b>Лицевой<br>счет</b></font></td>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\" width=\"160\"><img src=\"./images/account.gif\" style=\"vertical-align:text-bottom\"><font size=\"2\" face=\"Arial\"><b>Логин</b></font></td>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\"><img src=\"./images/info.gif\" style=\"vertical-align:text-bottom\"><font size=\"2\" face=\"Arial\"><b>ФИО</b></font></td>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\" width=\"70\"><img src=\"./images/user.gif\" style=\"vertical-align:text-bottom\"><font size=\"2\" face=\"Arial\"><b>Дата подключения</b></font></td>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\" width=\"90\"><img src=\"./images/money.gif\" style=\"vertical-align:text-bottom\"><font size=\"2\" face=\"Arial\"><b>Баланс</b></font></td>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\" width=\"90\"><img src=\"./images/credit.gif\" style=\"vertical-align:text-bottom\"><font size=\"2\" face=\"Arial\"><b>Кредит</b></font></td>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\" width=\"120\"><img src=\"./images/link.gif\" style=\"vertical-align:text-bottom\"><font size=\"2\" face=\"Arial\"><b>Состояние</b></font></td>"; echo "</tr>\n"; echo "<tr>"; echo "<td bgcolor=\"#FFFFFF\" align=\"center\">";$ret['user_id']."</td>"; echo "<td bgcolor=\"#FFFFFF\" align=\"center\">";$ret['login']."</td>"; echo "<td bgcolor=\"#FFFFFF\" align=\"center\">";$ret['full_name']."</td>"; $date = date("d.m.Y", $row['connect_date']); echo "<td bgcolor=\"#FFFFFF\" align=\"center\">".$date."</td>"; $sum = round($ret['balance']*100)/100; if ($sum < 0) echo "<td bgcolor=\"#FFFFFF\" align=\"right\"><span style=\"color:red;text-decoration:blink;\"><b>$sum</b></span></td>"; else echo "<td bgcolor=\"#FFFFFF\" align=\"right\"><span style=\"color:green;\"><b>$sum</b></span></td>"; $sum = round($ret['credit']*100)/100; echo "<td bgcolor=\"#FFFFFF\" align=\"right\">$sum</td>"; echo "<td bgcolor=\"#FFFFFF\" align=\"center\">"; if ($ret['int_status'] == 1) { echo "<img src=\"./images/internet_on.gif\" title=\"Интернет включен\">"; } else { echo "<img src=\"./images/internet_off.gif\" title=\"Интернет выключен\">"; }; if ($ret['is_blocked'] == 0) { echo "<img src=\"./images/unblock.gif\" title=\"Активен\">"; } else { echo "<img src=\"./images/block.gif\" title=\"Заблокирован\">"; }; echo "</td>"; echo "</tr>\n"; echo "</table>\n"; echo "</td></tr></table>\n"; echo "<br>"; // ********************************************************************* // пФЛТЩФЙЕ ПВМБУФЙ ЧЩЧПДБ ЛПМПОПЛ echo "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"><tr valign=\"top\">"; echo "<td rowspan=\"4\" width=\"70%\">"; // ********************************************************************* // пФЛТЩФЙЕ ПВМБУФЙ МЕЧПК ЛПМПОЛЙ echo "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">"; echo "<tr valign=\"top\"><td>"; // ********************************************************************* // User Info // ********************************************************************* echo "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\0\" cellpadding=\"0\"><tr><td bgcolor=\"#AAAAAA\">\n"; echo "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">\n"; echo "<tr>"; echo "<td bgcolor=\"#E9ECF3\" align=\"center\" colspan=\"2\"><img src=\"./images/user.gif\"> <font size=\"2\" face=\"Arial\"><b>Основные данные абонента</b></font></td>"; echo "</tr>\n"; echo "<tr>"; echo "<td bgcolor=\"#FFFFFF\" width=\"150\" align=\"right\" nowrap=\"true\"><font size=\"2\" face=\"Arial\"><b>Фактический адрес </b></font></td>"; echo "<td bgcolor=\"#FFFFFF\" width=\"80%\" align=\"left\">";$ret['actual_address']." </td>"; echo "</tr>\n"; echo "<tr>"; echo "<td bgcolor=\"#FFFFFF\" align=\"right\" nowrap=\"true\"><font size=\"2\" face=\"Arial\"><b>Телефон(домашний) </b></font></td>"; echo "<td bgcolor=\"#FFFFFF\" align=\"left\">";$ret['home_telephone']."</td>"; echo "</tr>\n"; echo "<tr>"; echo "<td bgcolor=\"#FFFFFF\" align=\"right\" nowrap=\"true\"><font size=\"2\" face=\"Arial\"><b>Телефон(мобильный) </b></font></td>"; echo "<td bgcolor=\"#FFFFFF\" align=\"left\">";$ret['mobile_telephone']."</td>"; echo "</tr>\n"; echo "<tr>"; echo "<td bgcolor=\"#FFFFFF\" align=\"right\" nowrap=\"true\"><font size=\"2\" face=\"Arial\"><b>Телефон(рабочий) </b></font></td>"; echo "<td bgcolor=\"#FFFFFF\" align=\"left\">";$ret['work_telephone']."</td>"; echo "</tr>\n"; /* echo "<tr>"; echo "<td bgcolor=\"#FFFFFF\" align=\"right\" nowrap=\"true\"><font size=\"2\" face=\"Arial\"><b>Комментарии </b></font></td>"; echo "<td bgcolor=\"#FFFFFF\" align=\"left\"><pre>".iconv('utf8','cp1251',$row['comments'])."</pre></td>"; echo "</tr>\n"; */ echo "</tr></table>\n"; echo "</td></tr></table>\n"; // ********************************************************************* // end User Info // ********************************************************************* echo "</td></tr>"; echo "</td></tr>"; echo "<tr><td>"; echo "<tr><td width=\"70%\">"; echo "<br>"; // ******************************************************************************** // Tarrif Plans and Services до конца show_user.php не стал писать, просто принцип хочу понять. функции которые описаны в этом файле берутся из
топик не читал, но чиста интуитивно - может проблема в echo "<td bgcolor=\"#FFFFFF\" align=\"left\">";$ret['home_telephone']."</td>";
не, не то, что тут тебя смущает вопрос состоит в другом, если в этой строчке ошибка, её ваще порезать можно, но вроде как норм. тут суть в другом
допустим вот такая. у меня такое же ощущение. просто видимо он не понимает может по какому юзеру надо создавать массив ???
ну вот сматри выложу щас триста строк user_functions.php: PHP: <?php require_once('socket.php'); function rpcs_user5_get_services_name($service_id) { //-0x402b $ret=array(); if (!urfa_call(-0x402b)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetInt($service_id); urfa_send_param($packet); if ($x = urfa_get_data()) { $ret['service_type'] = $x->DataGetInt(); $ret['service_id'] = $x->DataGetInt(); $ret['service_name'] = $x->DataGetString(); $ret['service_comment'] = $x->DataGetString(); $ret['periodic_cost'] = $x->DataGetDouble(); urfa_get_data(); } return $ret; } function rpcf_user5_get_user_info() { //-0x4006 $ret=array(); if (!urfa_call(-0x4006)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } if ($x = urfa_get_data()) { $ret['user_id'] = $x->DataGetInt(); $ret['login'] = $x->DataGetString(); $ret['basic_account'] = $x->DataGetInt(); $ret['balance'] = $x->DataGetDouble(); $ret['credit'] = $x->DataGetDouble(); $ret['is_blocked'] = $x->DataGetInt(); $ret['create_date'] = $x->DataGetInt(); $ret['last_change_date'] = $x->DataGetInt(); $ret['who_create'] = $x->DataGetInt(); $ret['who_change'] = $x->DataGetInt(); $ret['is_juridical'] = $x->DataGetInt(); $ret['full_name'] = $x->DataGetString(); $ret['juridical_address'] = $x->DataGetString(); $ret['actual_address'] = $x->DataGetString(); $ret['work_telephone'] = $x->DataGetString(); $ret['home_telephone'] = $x->DataGetString(); $ret['mobile_telephone'] = $x->DataGetString(); $ret['web_page'] = $x->DataGetString(); $ret['icq_number'] = $x->DataGetString(); $ret['tax_number'] = $x->DataGetString(); $ret['kpp_number'] = $x->DataGetString(); $ret['bank_id'] = $x->DataGetInt(); $ret['bank_account'] = $x->DataGetString(); $ret['int_status'] = $x->DataGetInt(); $ret['vat_rate'] = $x->DataGetDouble(); urfa_get_data(); } return $ret; } function rpcf_user5_traffic_report($start_date,$end_date) { //-0x4009 $ret=array(); if (!urfa_call(-0x4009)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetInt($start_date); $packet->DataSetInt($end_date); urfa_send_param($packet); if ($x = urfa_get_data()) { $ret['account_id'] = $x->DataGetInt(); $ret['bytes_in_kbyte'] = $x->DataGetDouble(); $ret['count'] = $x->DataGetInt(); for ($i=0;$i<$ret['count'];$i++) { $x = urfa_get_data(); $traf['tclass_id'] = $x->DataGetInt(); $traf['tclass_name'] = $x->DataGetString(); $traf['bytes'] = $x->DataGetLong(); $traf['base_cost'] = $x->DataGetDouble(); $traf['discount'] = $x->DataGetDouble(); $traf['discount_with_tax'] = $x->DataGetDouble(); $ret['traffic'][]=$traf; } urfa_get_data(); } return $ret; } function rpcf_user5_get_remaining_seconds($user_id) { //-0x2027 $ret=array(); if (!urfa_call(-0x2027)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetInt($user_id); urfa_send_param($packet); if ($x = urfa_get_data()) { $ret['remaining_seconds'] = $x->DataGetInt(); $ret['downloaded_seconds'] = $x->DataGetInt(); urfa_get_data(); } return $ret; } function rpcf_user5_get_remaining_traffic($user_id) { //-0x2026 $ret=array(); if (!urfa_call(-0x2026)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetInt($user_id); urfa_send_param($packet); if ($x = urfa_get_data()) { $ret['traffic_remaining_mb'] = $x->DataGetDouble(); $ret['traffic_downloaded_mb'] = $x->DataGetDouble(); urfa_get_data(); } return $ret; } function rpcf_user5_get_group_id_by_name($name) { //-0x401b $ret=array(); if (!urfa_call(-0x401b)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetString($name); urfa_send_param($packet); if ($x = urfa_get_data()) { $ret['group_name'] = $name; $ret['group_id'] = $x->DataGetInt(); urfa_get_data(); } return $ret; } function rpcf_user5_get_service_id_by_name($name) { //-0x401e $ret=array(); if (!urfa_call(-0x401e)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetString($name); urfa_send_param($packet); if ($x = urfa_get_data()) { $ret['service_name'] = $name; $ret['service_id'] = $x->DataGetInt(); urfa_get_data(); } return $ret; } function rpcf_user5_get_tariff_id_by_name($name) { //-0x401a $ret=array(); if (!urfa_call(-0x401a)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetString($name); urfa_send_param($packet); if ($x = urfa_get_data()) { $ret['tariff_name'] = $name; $ret['tariff_id'] = $x->DataGetInt(); urfa_get_data(); } return $ret; } function rpcf_user5_get_user_group_list() { //-0x401c $ret=array(); if (!urfa_call(-0x401c)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $x = urfa_get_data(); $ret['count'] = $x->DataGetInt(); for ($i=0;$i<$ret['count'];$i++) { $group['id'] = $x->DataGetInt(); $ret['groups'][]=$group; } urfa_get_data(); return $ret; } function rpcf_user5_blocks_report($start_date,$end_date) { //-0x4013 $ret=array(); if (!urfa_call(-0x4013)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetInt($start_date); $packet->DataSetInt($end_date); urfa_send_param($packet); $x = urfa_get_data(); $ret['count']=$x->DataGetInt(); for ($i=0;$i<$ret['count'];$i++) { $x = urfa_get_data(); $block['account_id'] = $x->DataGetInt(); $block['start_date'] = $x->DataGetInt(); $block['expire_date'] = $x->DataGetInt(); $block['what_blocked'] = $x->DataGetInt(); $block['block_type'] = $x->DataGetInt(); $block['comment'] = $x->DataGetString(); $ret['block'][]=$block; } urfa_get_data(); return $ret; } function rpcf_user5_brief_report_for_wintray() { //-0x4026 $ret=array(); if (!urfa_call(-0x4026)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $x = urfa_get_data(); $ret['int_status']=$x->DataGetInt(); $ret['balance']=$x->DataGetDouble(); urfa_get_data(); return $ret; } function rpcf_user5_change_int_status($status) { //-0x4007 $ret=array(); if (!urfa_call(-0x4007)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $packet = new Packet(); $packet->DataSetInt($status); urfa_send_param($packet); urfa_get_data(); } function rpcf_user5_get_services() { //-0x4023 $ret=array(); if (!urfa_call(-0x4023)) { print "Error calling function ". __FUNCTION__ ."\n"; return FALSE; } $x = urfa_get_data(); $ret['count']=$x->DataGetInt(); for ($i=0;$i<$ret['count'];$i++) { $x = urfa_get_data(); $service['id'] = $x->DataGetInt(); $service['service_id'] = $x->DataGetInt(); $service['service_type'] = $x->DataGetInt(); $service['service_name'] = $x->DataGetString(); $service['tariff_name'] = $x->DataGetString(); $service['discount_period'] = $x->DataGetString(); $service['cost'] = $x->DataGetDouble(); $service['discounted_in_curr_period'] = $x->DataGetDouble(); $ret['services'][]=$service; } urfa_get_data(); return $ret; } ?>
омфг. Ты хоть примерно представляешь зачем нужны функции? PHP: $ret=rpcf_user5_get_user_info(); поробуй поставить после инклюдов show_user.php тока с urfa ни когда не работал так что ни чего не обещаю...
смотри в чём дело. лазий по файлам и смотри что делаеться в тех строках в которых у тебя ошибки. да и вот к тому движку который ты юзаешь, мануаль существует? ты как я понимаю не сам его писал?
Это не движок =)) это е*отень от биллинга UTM, причем не стандартная которая прилагалась с биллингом а переписанная на пхп, потому что ту которая была даже вскрыть нельзя было =))
подрбнее изучи. я же не всевидящий. например, я совершенно не понимаю что он пишет и читает в файле....