2010-05-24 2 views
0

Как это получить, чтобы не отображаться, когда вы впервые переходите на страницу ???if else statements php

if ($error) { 
echo "Error: $error<br/>"; 
} 
if ($keycode) { 
echo "Keycode: $keycode<br/>"; 
} 
+0

где $ ошибка и $ скан быть установлен? –

+1

Вы не разместили достаточно кода. Если '$ error' не определен, сообщение не будет отображаться. Где вы это определяете? –

+1

Ваше местоимение неоднозначно в «Как мне заставить это не отображаться». Что вы хотите, чтобы не появляться? "Ошибка"? "Ключевой код"? Что-то другое? – Pops

ответ

1
<?php 

if ($error){ echo "Error: $error 
"; } if ($keycode) { echo "Keycode: $keycode 
"; } 
+2

Что здесь происходит? – webbiedave

+0

Я предполагал, что его вопрос был «как не иметь этот текст». Мне кажется, что ответ на его вопрос заключается в том, что PHP не разбирает его файл, потому что нет тега

3
<?php 
session_start(); 

if ($_SESSION['been_here'] == true) { 
    // show what you need to show 
} 
else { 
    // don't show it 
    $_SESSION['been_here'] = true; 
} 
?> 

Дело в том, что $ _SESSION-переменные "последний" (до тех пор, как вы session_start()). Google «php sessions» для получения дополнительной информации и задайте дополнительные вопросы по SO, если это необходимо. :)

Использовать session_destroy(); для уничтожения сеанса.

+0

запуск сеанса может не работать для меня, потому что у меня уже есть заголовки, отправленные на страницу уже. – user154107

+0

use session_start() перед отправкой вывода ... –

+0

Да, используйте session_start(); еще до _any whitespace_. Это может быть немного раздражающим, пока вы не привыкнете к нему, но это должно быть так. :) –

0

Основываясь на комментариях, кажется, что ваш условный объект оценивается как истинный, прежде чем вы его ожидаете. Не видя больше своего кода, это только предположение, но я считаю, что ваша проблема в том, что вы даете переменной $error значение по умолчанию/время при создании, которое не означает false. Например:

$error = "default error message, change me later"; 

// Later... 
if ($error) { // This evaluates to true 
    echo "Error: $error<br/>"; 
} 

Если да, то вы будете хотеть, чтобы проверить PHP's documentation on casting to booleans, и, возможно, использовать что-то вроде этого (с вкладом от Christian's answer):

$error = "0"; // Default error message, change it later 

// Later... 
if($_SESSION['been_here'] == true) 
    $error = "This is the real error message."; 

// Even later... 
if ($error) { 
    echo "Error: $error<br/>"; 
} 
0

Это, вероятно, работает для вас:

if (isset($error) && !empty($error)) { 
    echo "Error: $error<br/>"; 
} 

Не могу сказать больше, потому что вы не указали, что такое значение $error.

Или вы просто должны ввести флаг, который указывает, что произошла ошибка:

$error = 'Error message.'; 
$has_error = false; 

if(!empty($_POST) && some_condition) { // means it is a POST request 
    $has_error = true; 
} 

if($has_error) { 
    echo "Error: $error<br/>"; 
}