Я создаю список каталогов и пытаюсь направить оператор php if для запуска правильного события.
Этот оператор управляет отображением двух абзацев.
Похоже,this:
if ($userIsLoggedIn && $_SESSION['accountNum'] == $lstId)
{
$pageContent .= "
<span class='editListing'><a href='/listings/edit/basic/index.php'>Edit Listing...</a></span>
";
} else {
$pageContent .= "
<span class='editListing'>Your Listing? <a href='/listings/edit/basic/index.php'>Login to edit...</a></span>
";
}
$userIsLoggedIn
- это функция, которая проверяет, вошел ли пользователь на сайт.(Когда пользователь входит на веб-сайт, номер его учетной записи затем сохраняется как переменная сеанса.)
Переменная $ lstId может быть объяснена следующим образом:
while ($row = mysql_fetch_array($data)) {
$lstId = $row['id'];
...
Где этозначение идентификатора поля любой конкретной строки, которая хранится в таблице mysql.
Теперь, скажем, пользователь ищет строку, которая возвращает 2 результата.Каждый результат содержится в контейнере, и цикл заставляет контейнер повторяться с каждым результатом строки, который находится как совпадение.
Внутри контейнера, где вступает в силу оператор if.
Что я в основном хочу сделать, так это для каждого списка, пользователю предлагается «Ваш список? Войти, чтобы редактировать». И если пользователь выбирает эту ссылку, они направляются на страницу входа, после входа в систему ониимеют возможность редактировать список, соответствующий их учетной записи пользователя.
Но проблема, с которой я сталкиваюсь, заключается в том, что $lstId
кажется любым идентификатором любой возвращаемой строки, так что в основном, когда пользовательЗаходя на сайт, абзац «редактировать список» отображается в каждом отдельном результате, даже в тех, которые не относятся к их аккаунту.Если пользователь нажимает эту ссылку, он направляется на страницу, где он может редактировать свой собственный список.
Эффект, к которому я стремлюсь, заключается в том, что абзац «редактировать список» появится только в результате, содержащемих собственный список.И в каждом другом листинге абзац останется как «ваш листинг, войдите в систему для редактирования».
Вот полный HTML-код, который используется для получения каждого результата:
if ($tempVar == 0) {
$pageContent .= "
<div class='searchResultS'>
";
if ($total_pgs > 1)
{
$pageContent .= "
<p>$paginator</p>
";
}
}
$pageContent .= "
<div class='searchResult'>
<div class='searchResultWrapper'>
";
if ($lstPage !== "")
{
$pageContent .= "
<span class='moreDetails'><a href='/listings/$lstPage.php'>More Details...</a></span>
";
}
$pageContent .= "
<h3>$lstName</h3>
";
if ($userIsLoggedIn && $_SESSION['accountNum'] == $lstId)
{
$pageContent .= "
<span class='editListing'><a href='/listings/edit/basic/index.php'>Edit Listing...</a></span>
";
} else {
$pageContent .= "
<span class='editListing'>Your Listing? <a href='/listings/edit/basic/index.php'>Login to edit...</a></span>
";
}
$pageContent .= "
<br style='clear:both; height:0; font-size: 1px; line-height: 0px;' />
<div class='bizDesc'>
<p><span class='listHeadings'>Description:</span> $lstDesc</p>
</div>
<div class='bizAddr'>
<p><span class='listHeadings'>Street:</span> $lstAddress</p>
<p><span class='listHeadings'>Town:</span> $lstArea</p>
<p><span class='listHeadings'>Province:</span> $lstProvince</p>
<p><span class='listHeadings'>Post Code:</span> $lstPostcode</p>
<p><span class='listHeadings'>GPS Co-Ords:</span> $lstGps</p>
</div>
<div class='bizCont'>
<p><span class='listHeadings'>Contact:</span> $lstContact</p>
<p><span class='listHeadings'>Tel:</span> $lstTel</p>
<p><span class='listHeadings'>Cell:</span> $lstCell</p>
<p><span class='listHeadings'>Fax:</span> $lstFax</p>
<p><span class='listHeadings'>Skype:</span> $lstSkype</p>
<p><span class='listHeadings'>eMail:</span> <a href='mailto: $lstEmail?subject=Your listing on bergbiz.co.za'>$lstEmail</a></p>
</div>
</div>
</div><!-- end .searchResult -->
";
$tempVar ++;
}
ЕслиУ кого-либо есть какие-либо замечания, предложения или идеи по этому поводу, было бы очень признательно, если бы вы могли поделиться со мной некоторыми из них !!
Спасибо!
РЕДАКТИРОВАТЬ:
Код, помещенный сразу после оператора if в цикле:
$td = $_SESSION['accountNum'];
echo"session var is $td";
echo"lst id is $lstId";
Вывод:
session var is 10005lst id is 10003session var is 10005lst id is 10004session var is 10005lst id is 10002session var is 10005lst id is 10005
Есть идеи, почему он так получается?переменная сеанса остается прежней, но переменная id зацикливается?