if & errors

critrate

Registered
Здравейте.Искам да попитам за нещо елементарно,просто аз се забърках тотално.

значи първоначало проверявам с if дали съществува дадено нещо.няколко пъти за различни неща.И искам ако едно от тях не е изпълнено да не ми излиза формата за добавяне,но ако всичко е наред да си излиза.За сега това става.Но проблема идва после когато всичко е наред и давам добави на формата и не ми излиза,че полетата са празни а направо изпълнява заявката ... не знам дали обясних добре затова ще дам направо кода.

Код:
<?php
$greshka = array();
$touser = isset($_GET['touser']) ? $_GET['touser'] : NULL;
$com = isset($_GET['com']) ? $_GET['com'] : NULL;
$checkuser = mysql_query("SELECT * FROM users WHERE username = '$touser' ") or die (mysql_error());
$checkcom = mysql_query("SELECT * FROM comments WHERE id = '$com'") or die (mysql_error());
$checkcomuser = mysql_query("SELECT * FROM comments WHERE id = '$com' AND avtor = '$touser'") or die(mysql_error());
$checkalready = mysql_query("SELECT * FROM warning WHERE com = '$com'") or die (mysql_error());
if ($Quser['rank'] != 3 ) {
 $greshka[] = "Не си администратор за да даваш предупреждения";
}
if (mysql_num_rows($checkuser) <=0) {
 $greshka[] = "Този потребител не съществува";
}
if (mysql_num_rows($checkcom) <=0) {
 $greshka[] = "Няма такъв Коментар";
}
if (mysql_num_rows($checkcomuser) <=0) {
 $greshka[] = "Потребителя не е автор на този коментар";
}
if (mysql_num_rows($checkalready) >= 1) {
 $greshka[] = "Вече е зададено предупреждение на този коментар";
}
 if(isset($greshka))
                {
                    foreach ($greshka as $all)
                    {
                        echo "<div class='warning'>".$all."</div><br/>";
                    }
                }
else {
                        if(isset($_POST['addwar']) && count($greshka) < 1)
                        {
                             $text = htmlspecialchars(addslashes($_POST['text']));
                             $rule = htmlspecialchars(addslashes($_POST['rule']));
                             echo "<div class='check'><center>Поздравление Вие се регистрирахте успешно.</div>";
                        }
                        else
                        {   

?>
                <form method="POST" enctype="multipart/form-data" action="">
                    
                       
                            Към потребител:<br/>
                            <input type="text" name="rule" value="<?php echo "$touser"; ?>"  size="40"/><br/>
							На коментар <br/>
							<?php $com = mysql_fetch_array($checkcom);
                                  $com = bbcode($com['komentar']);
								  ?>
							<?php echo "$com<br/><br/>"; ?>
                            Допълнителен текст:<br/>
                            <input type="text" name="text" size="40"/><br/>
                <?php 
                $allrules = mysql_query("SELECT * FROM rules ORDER BY id") or die (mysql_error());
				while ($r = mysql_fetch_array($allrules)) {
				echo "<Input type = 'Radio' Name ='rule' value= '$r[id]'>$r[id] - $r[rule]<br/>";
				}

				?>
			<input type="submit" name="addwar" value="Добави" id="submit" />
                </form>
				<?php
				}}
				?>
 
PHP:
<?php
$greshka = array();
$touser = isset($_GET['touser']) ? $_GET['touser'] : NULL;
$com = isset($_GET['com']) ? $_GET['com'] : NULL;
$checkuser = mysql_query("SELECT * FROM users WHERE username = '$touser' ") or die (mysql_error());
$checkcom = mysql_query("SELECT * FROM comments WHERE id = '$com'") or die (mysql_error());
$checkcomuser = mysql_query("SELECT * FROM comments WHERE id = '$com' AND avtor = '$touser'") or die(mysql_error());
$checkalready = mysql_query("SELECT * FROM warning WHERE com = '$com'") or die (mysql_error());
if ($Quser['rank'] != 3 ) {
 $greshka[] = "Не си администратор за да даваш предупреждения";
}
else if (mysql_num_rows($checkuser) <=0) {
 $greshka[] = "Този потребител не съществува";
}
else if (mysql_num_rows($checkcom) <=0) {
 $greshka[] = "Няма такъв Коментар";
}
else if (mysql_num_rows($checkcomuser) <=0) {
 $greshka[] = "Потребителя не е автор на този коментар";
}
else if (mysql_num_rows($checkalready) >= 1) {
 $greshka[] = "Вече е зададено предупреждение на този коментар";
}
else  if(isset($greshka))
                {
                    foreach ($greshka as $all)
                    {
                        echo "<div class='warning'>".$all."</div><br/>";
                    }
                }
else {
                        if(isset($_POST['addwar']) && count($greshka) < 1)
                        {
                             $text = htmlspecialchars(addslashes($_POST['text']));
                             $rule = htmlspecialchars(addslashes($_POST['rule']));
                             echo "<div class='check'><center>Поздравление Вие се регистрирахте успешно.</div>";
                        }
                        else
                        {   

?>
                <form method="POST" enctype="multipart/form-data" action="">
                    
                       
                            Към потребител:<br/>
                            <input type="text" name="rule" value="<?php echo "$touser"; ?>"  size="40"/><br/>
                     На коментар <br/>
                     <?php $com = mysql_fetch_array($checkcom);
                                  $com = bbcode($com['komentar']);
                          ?>
                     <?php echo "$com<br/><br/>"; ?>
                            Допълнителен текст:<br/>
                            <input type="text" name="text" size="40"/><br/>
                <?php 
                $allrules = mysql_query("SELECT * FROM rules ORDER BY id") or die (mysql_error());
            while ($r = mysql_fetch_array($allrules)) {
            echo "<Input type = 'Radio' Name ='rule' value= '$r[id]'>$r[id] - $r[rule]<br/>";
            }

            ?>
         <input type="submit" name="addwar" value="Добави" id="submit" />
                </form>
            <?php
            }}
            ?>
 
така не ме пуска до страницата и не ми дава никакви грешки само бял екран
 
PHP:
<?php
$greshka = array();
$touser = isset($_GET['touser']) ? $_GET['touser'] : NULL;
$com = isset($_GET['com']) ? $_GET['com'] : NULL;
$checkuser = mysql_query("SELECT * FROM users WHERE username = '$touser' ") or die (mysql_error());
$checkcom = mysql_query("SELECT * FROM comments WHERE id = '$com'") or die (mysql_error());
$checkcomuser = mysql_query("SELECT * FROM comments WHERE id = '$com' AND avtor = '$touser'") or die(mysql_error());
$checkalready = mysql_query("SELECT * FROM warning WHERE com = '$com'") or die (mysql_error());
if ($Quser['rank'] != 3 ) {
 $greshka[] = "Не си администратор за да даваш предупреждения";
}
if (mysql_num_rows($checkuser) <=0) {
 $greshka[] = "Този потребител не съществува";
}
if (mysql_num_rows($checkcom) <=0) {
 $greshka[] = "Няма такъв Коментар";
}
if (mysql_num_rows($checkcomuser) <=0) {
 $greshka[] = "Потребителя не е автор на този коментар";
}
if (mysql_num_rows($checkalready) >= 1) {
 $greshka[] = "Вече е зададено предупреждение на този коментар";
}
 if(isset($greshka))
                {
                    foreach ($greshka as $all)
                    {
                        echo "<div class='warning'>".$all."</div><br/>";
                    }
                }
else {
                        if(isset($_POST['addwar']) && count($greshka) < 1)
                        {
                             $text = htmlspecialchars(addslashes($_POST['text']));
                             $rule = htmlspecialchars(addslashes($_POST['rule']));
                             echo "<div class='check'><center>Поздравление Вие се регистрирахте успешно.</div>";
                        }
                        else if($greshka == 0)
                        {   

?>
                <form method="POST" enctype="multipart/form-data" action="">
                    
                       
                            Към потребител:<br/>
                            <input type="text" name="rule" value="<?php echo "$touser"; ?>"  size="40"/><br/>
                     На коментар <br/>
                     <?php $com = mysql_fetch_array($checkcom);
                                  $com = bbcode($com['komentar']);
                          ?>
                     <?php echo "$com<br/><br/>"; ?>
                            Допълнителен текст:<br/>
                            <input type="text" name="text" size="40"/><br/>
                <?php 
                $allrules = mysql_query("SELECT * FROM rules ORDER BY id") or die (mysql_error());
            while ($r = mysql_fetch_array($allrules)) {
            echo "<Input type = 'Radio' Name ='rule' value= '$r[id]'>$r[id] - $r[rule]<br/>";
            }

            ?>
         <input type="submit" name="addwar" value="Добави" id="submit" />
                </form>
            <?php
            }}
            ?>
 
така показва ако има някоя от горните грешки,но ако няма грешка пак не ми изкарва формата
 
Ти си подал value на полетата при което няма как да ти ги даде празни полета ! Трябва да си направиш проверка по някакъв параметър и ако примерно е не е изпълнен да ти подава стойностите от базата ако е изпълнен да ти дава същата форма без value !
PHP:
if($neshto == 0)
{
//forma bez value
echo"<input type='text' name='bla'>";
}
else
{
//forma sas value
echo"<input type='text' name='bla' value='$promenliva' >";
}
 
на тази полета ,на които проверявам не е зададен value o.0 :idea:

+ това с твоята редакция вобще не ми излиза формата :oops:
 
critrate каза:
на тази полета ,на които проверявам не е зададен value o.0 :idea:

+ това с твоята редакция вобще не ми излиза формата :oops:
Замени този участък така и да те питам къде ти е въвеждането в базата в тази част :D

if(isset($_POST['addwar']) && count($greshka) < 1)
{
if(empty($_POST['text']) or empty($_POST['rule']))
{
echo"Greshka";
}
else
{
$text = htmlspecialchars(addslashes($_POST['text']));
$rule = htmlspecialchars(addslashes($_POST['rule']));
//Защо ти са променливите ако не правиш нищо с тях в базата ли ги поставяш
echo "<div class='check'><center>Поздравление Вие се регистрирахте успешно.</div>";
}
}

ЕДИТ// Към твоя оригиналния код го замени :)
 
:( махнах въвеждането в базата данни ,защото исках просто да проверя дали ми дава правилно грешките и накрая като се оправи всичко ще си сложа заявката

п.п казах в предишният пост,че не ми се показва формата
 
critrate каза:
:( махнах въвеждането в базата данни ,защото исках просто да проверя дали ми дава правилно грешките и накрая като се оправи всичко ще си сложа заявката

Немога да разбера сега последно формата да се показва или да се скрива искаш ! Дай си последователността от действия които искаш да се изпълняват за да се получи както искаш. Примерно :
1. Проверка празно поле
2. Показване на форма ако полето е празно ако не е да не я показва
...

Много объркано обесняваш :p
 
ако има една от тези грешки формата да не се показва

Код:
if ($Quser['rank'] != 3 ) {

 $greshka[] = "Не си администратор за да даваш предупреждения";

}

if (mysql_num_rows($checkuser) <=0) {

 $greshka[] = "Този потребител не съществува";

}

if (mysql_num_rows($checkcom) <=0) {

 $greshka[] = "Няма такъв Коментар";

}

if (mysql_num_rows($checkcomuser) <=0) {

 $greshka[] = "Потребителя не е автор на този коментар";

}

if (mysql_num_rows($checkalready) >= 1) {

 $greshka[] = "Вече е зададено предупреждение на този коментар";

}

ако няма грешки да показва формата.

:?:
 
Е то би трябвало да си работи бре ! Замени реда така
if(isset($greshka) > 0)
 
dakata__92 каза:
Е то би трябвало да си работи бре ! Замени реда така
if(isset($greshka) > 0)

чудя се каква ли ще е причината ми да те лъжа,че не бачка ?

все едно $greshka винаги има стойност ...
 
Пробвай така :

PHP:
<?php
$greshka = array();
$eror = 0;
$touser = isset($_GET['touser']) ? $_GET['touser'] : NULL;
$com = isset($_GET['com']) ? $_GET['com'] : NULL;
$checkuser = mysql_query("SELECT * FROM users WHERE username = '$touser' ") or die (mysql_error());
$checkcom = mysql_query("SELECT * FROM comments WHERE id = '$com'") or die (mysql_error());
$checkcomuser = mysql_query("SELECT * FROM comments WHERE id = '$com' AND avtor = '$touser'") or die(mysql_error());
$checkalready = mysql_query("SELECT * FROM warning WHERE com = '$com'") or die (mysql_error());
if ($Quser['rank'] != 3 ) {
 $greshka[1] = "Не си администратор за да даваш предупреждения";
 $eror = $eror +1;
}
if (mysql_num_rows($checkuser) <=0) {
 $greshka[2] = "Този потребител не съществува";
 $eror = $eror +1;
}
if (mysql_num_rows($checkcom) <=0) {
 $greshka[3] = "Няма такъв Коментар";
 $eror = $eror +1;
}
if (mysql_num_rows($checkcomuser) <=0) {
 $greshka[4] = "Потребителя не е автор на този коментар";
 $eror = $eror +1;
}
if (mysql_num_rows($checkalready) >= 1) {
 $greshka[5] = "Вече е зададено предупреждение на този коментар";
 $eror = $eror +1;
}
if($eror != 0)
{
    foreach ($greshka as $all)
    {
         echo "<div class='warning'>".$all."</div><br/>";
    }
}
else 
{
    if(isset($_POST['addwar']))
    {
		$text = htmlspecialchars(addslashes($_POST['text']));
        $rule = htmlspecialchars(addslashes($_POST['rule']));
        echo "<div class='check'><center>Поздравление Вие се регистрирахте успешно.</div>";
     else
    {   

?>
        <form method="POST" enctype="multipart/form-data" action="">
        Към потребител:<br/>
        <input type="text" name="rule" value="<?php echo "$touser"; ?>"  size="40"/><br/>
        На коментар <br/>
        <?php $com = mysql_fetch_array($checkcom);
        $com = bbcode($com['komentar']);
        ?>
        <?php echo "$com<br/><br/>"; ?>
        Допълнителен текст:<br/>
        <input type="text" name="text" size="40"/><br/>
        <?php 
        $allrules = mysql_query("SELECT * FROM rules ORDER BY id") or die (mysql_error());
        while ($r = mysql_fetch_array($allrules)) 
		{
            echo "<Input type = 'Radio' Name ='rule' value= '$r[id]'>$r[id] - $r[rule]<br/>";
        }
		?>
        <input type="submit" name="addwar" value="Добави" id="submit" />
        </form>
<?php
    }
}
?>
 

Горе