[PHP] Маску на стройке нашел.

carusya

Ребят, я, на самом деле, не настоящий сварщик, но вот нашел на стройке маску:
directory.php:
 
 <?
header("Content-type: text/xml");
header("Connection: close");
header("Expires: -1");

$page=1;
if(isset($_GET['page']
{
$page = $_GET['page'];
if(settype($page,"integer") == false)
die("<b>BAD REQUEST (invalid type)</b>");
}

echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";

$ldapconfig['host'] = '192.168.0.8';
$ldapconfig['port'] = NULL;
$ldapconfig['basedn'] = 'ou=users,dc=MyCompany,dc=ru';
$ldapconfig['filter'] = "(&(uid=*objectClass=sambaSamAccountobjectClass=inetOrgPerson";

print("<CiscoIPPhoneDirectory>\n");
print("\t<Title> </Title>\n");
print("\t<Prompt> </Prompt>\n");

$DS = @ldap_connect($ldapconfig['host'], $ldapconfig['port']);

if ( $DS === false )
exit("ldap_connect problem: ".ldap_error($DS;

$SRes = @ldap_search($DS, $ldapconfig['basedn'], $ldapconfig['filter']);

if ( $SRes === false )
exit("ldap_search problem: ".ldap_error($DS;

$res = @ldap_get_entries($DS, $SRes);
if ( $res === false )
exit("ldap_get_entries problem: ".ldap_error($DS;


$results = array;

for ($i = 0; $i < $res["count"]; $i++)
{

if (!isset($res[$i]["telephonenumber"]
continue;
if (!isset($res[$i]["displayname"]
continue;

$r_ar = array;

$r_ar['displayname']=$res[$i]["displayname"][0];
$r_ar['telephonenumber']=$res[$i]["telephonenumber"][0];
array_push($results, $r_ar);

}

for ($i = 0; $i < (count($results)-1); $i++)
for ($k = $i+1; $k < count($results); $k++)
{
if (strcmp($results[$i]['displayname'],$results[$k]['displayname']) > 0)
{
$r_tmp = array;
$r_tmp = $results[$i];
$results[$i] = $results[$k];
$results[$k] = $r_tmp;
}

}



for ($i = (32*($page-1; $i < (32*$page); $i++)
{

if ($i == count($results
break;

print("\t<DirectoryEntry>\n");

print("\t\t<Name>");
print($results[$i]['displayname']);
print("</Name>\n");


print("\t\t<Telephone>");
print($results[$i]['telephonenumber']);
print("</Telephone>\n");

print("\t</DirectoryEntry>\n");
}

print("<SoftKeyItem>");
print("<Name>Dial</Name>");
print("<URL>SoftKey:Dial</URL>");
print("<Position>1</Position>");
print("</SoftKeyItem>");

if ($page > 1)
{
print("<SoftKeyItem>");
print("<Name>Prev</Name>");
print("<URL>http://".$_SERVER['SERVER_NAME']."/asterisk/directory.php?page=".($page-1)."</URL>");
print("<Position>2</Position>");
print("</SoftKeyItem>");
}

$count_pages = (int) (count($results) / 32);

if count($results) % 32) !=0)
$count_pages++;

if ($page < $count_pages)
{
print("<SoftKeyItem>");
print("<Name>Next</Name>");
print("<URL>http://".$_SERVER['SERVER_NAME']."/asterisk/directory.php?page=".($page+1)."</URL>");
print("<Position>3</Position>");
print("</SoftKeyItem>");
}

print("<SoftKeyItem>");
print("<Name>Exit</Name>");
print("<URL>SoftKey:Exit</URL>");
print("<Position>4</Position>");
print("</SoftKeyItem>");

print("</CiscoIPPhoneDirectory>\n");

?>

(А как вы код выкладываете с подсветкой синтаксиса, кстати?)
Маска должна делать запросы к LDAP и формировать xml со справочником абонентов.
Так вот, залил я её на первый попавшийся сервак:
2.6.32-431.el6.i686 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux (CentOS)
php.i686 5.3.3-26.el6
httpd.i686 2.2.15-29.el6.centos
А он вместо вывода (или сообщений об ошибках) - кашу вот такую:
 
 BAD REQUEST (invalid type)"); } echo ''."\n"; $ldapconfig['host'] = '192.168.1.1'; $ldapconfig['port'] = NULL; $ldapconfig['basedn'] = 'dc=europos,dc=local'; $ldapconfig['filter'] = "(&(uid=*objectClass=sambaSamAccountobjectClass=inetOrgPerson"; print("\n"); print("\t\n"); print("\t \n"); $DS = @ldap_connect($ldapconfig['host'], $ldapconfig['port']); if ( $DS === false ) exit("ldap_connect problem: ".ldap_error($DS; $SRes = @ldap_search($DS, $ldapconfig['basedn'], $ldapconfig['filter']); if ( $SRes === false ) exit("ldap_search problem: ".ldap_error($DS; $res = @ldap_get_entries($DS, $SRes); if ( $res === false ) exit("ldap_get_entries problem: ".ldap_error($DS; $results = array; for ($i = 0; $i < $res["count"]; $i++) { if (!isset($res[$i]["telephonenumber"] continue; if (!isset($res[$i]["displayname"] continue; $r_ar = array; $r_ar['displayname']=$res[$i]["displayname"][0]; $r_ar['telephonenumber']=$res[$i]["telephonenumber"][0]; array_push($results, $r_ar); } for ($i = 0; $i < (count($results)-1); $i++) for ($k = $i+1; $k < count($results); $k++) { if (strcmp($results[$i]['displayname'],$results[$k]['displayname']) > 0) { $r_tmp = array; $r_tmp = $results[$i]; $results[$i] = $results[$k]; $results[$k] = $r_tmp; } } for ($i = (32*($page-1; $i < (32*$page); $i++) { if ($i == count($results break; print("\t\n"); print("\t\t"); print($results[$i]['displayname']); print("\n"); print("\t\t"); print($results[$i]['telephonenumber']); print("\n"); print("\t\n"); } print(""); print("Dial"); print("SoftKey:Dial"); print("1"); print(""); if ($page > 1) { print(""); print("Prev"); print("http://".$_SERVER['SERVER_NAME']."/asterisk/directory.php?page=".($page-1).""); print("2"); print(""); } $count_pages = (int) (count($results) / 32); if count($results) % 32) !=0) $count_pages++; if ($page < $count_pages) { print(""); print("Next"); print("http://".$_SERVER['SERVER_NAME']."/asterisk/directory.php?page=".($page+1).""); print("3"); print(""); } print(""); print("Exit"); print("SoftKey:Exit"); print("4"); print(""); print("\n"); ?> 

пробовал запускать directory.php?page=1, но вывод не меняется.
Пробовал перед и после $page=1; вставить print_r($page); и var_dump($page); - вывод не меняется :confused:
Что с ним происходит вообще? Я готов его поотлаживать, но он просто исполняется у меня как-то абсолюно некорректно :confused:

carusya

После
$page = $_GET['page'];
тоже вставлял
var_dump($page);
Вывод не меняется

Marinavo_0507

уверен, что это вообще исполняется как php?

carusya

уверен, что это вообще исполняется как php?
Не уверен.
Даже предположил, что что-то может быть не так:
-с серваком
-с кодом
Попробовал в тот же самый файл вставить
<?php
$a = array(1, 2, array("a", "b", "c";
var_dump($a);
?>

- Отрабатывает.
И вот только что осознал, что в моем скрипте в начале <?, исправил на <?php - заработал.

uncle17

short_open_tags=on в конфиге
К.О.

zya369

К.О.
lol
Оставить комментарий
Имя или ник:
Комментарий: