Проблем

human

Registered
Значи направих си система за новини и сега си правя админ панел.В админ панела добавям страниците с include и за добавянето на новина е include"add.php"; .Скриптът добавя файла , но като дам да добавям новина ми дава , че не съм попълнил всички полета.Когато везна директно през add.php си добавя новината .Кажете къде е проблема:
Код:
Добави новина<hr>

<form method="POST"> 
<input type="hidden" name="id" value="<?
include('config2.php');
$connection = mysql_connect($server,$dbusername,$dbpassword) or die("Сайтът не може да се свърже към базата данни");
$db = @mysql_select_db($db_name,$connection)or die("Сайтът не може да се свърже към базата данни2");
$our = mysql_query("SELECT id FROM news ORDER BY id  DESC LIMIT 1"); 
 while($r=mysql_fetch_array($our)){  
$id=$r[id]+1;
echo$id;
}?>">
Автор: <input  name="awtor" value="" /><br /> 
Име на новината: <br /><input type="text"  name="ime"><br /> 
Новина: <br /><textarea rows=7  name=nowina cols=40  type=text></textarea><br /> 
<input name="news" type="submit" value="Добави!"> 
</form> 
<?php 
if ($_POST[news]) { 
$ime = $_POST[ime];  
$nowina = $_POST[nowina]; 
if($awtor==NULL|$ime==NULL|$nowina==NULL) { 
//проверява дали всички полета са попълнени
echo "Не си попълнил някое от полетата."; 
}else{ 

$checkime = mysql_query("SELECT ime FROM news WHERE ime='$ime'"); 
$checkname= mysql_num_rows($checkime); 
if ($checkname>0) { 
// опа..някой е добавил тази новина вече! 
echo "Тази новина вече е била добавяна"; 
}else{ 
// никой не е добавят тази новина, продължаваме...
$awtor = htmlspecialchars($awtor); 
$ime = htmlspecialchars($ime); 
$nowina = htmlspecialchars($nowina); 
$id = htmlspecialchars($id);
// превръщаме полетата да не са в html
//всичко е перфректно да добавяме
$query = mysql_query("INSERT INTO `news` (awtor, ime, nowina, id) VALUES('$awtor','$ime','$nowina','$id')"); 
// успешно добавихме новината
echo "Успешно добави новина!"; 
} 
} 
} 
else 
{ 
//формата не е използвана 
echo (""); 
} 

?>
Във файлът config2.php е информацията (dbuser, dbpass и т.н.)
 
може да пробваш вместо:

if($awtor==NULL|$ime==NULL|$nowina==NULL)

това:

if(
(!empty($awtor)) &&
(!empty($ime)) &&
(!empty($nowina))
)

или

if(
(strlen($awtor)>0) &&
(strlen($ime)>0) &&
(strlen($nowina)>0)
)
не съм го пробвал и може да е грешно. освен това, empty() може би съществува само в PHP5
 
Така даже и не проверява дали е попълнено полето :(


EDIT: Разбрах какво става , но немога да го оправя.Не добавя автора и името на новината само новината добвая.Незнам защо става това...
 
Не съм сигорен но защо не пробваш така
if($awtor == NULL || $ime == NULL || $nowina == NULL)
{echo "Не си попълнил някое от полетата."; exit;}
else{ ......
Или
if ( empty($awtor) || empty($ime) || empty($nowina) )
{ echo 'ne e wuvedeno ne6to'; exit; }
else { }...........
 
index каза:
Не съм сигорен но защо не пробваш така
if($awtor == NULL || $ime == NULL || $nowina == NULL)
{echo "Не си попълнил някое от полетата."; exit;}
else{ ......
Или
if ( empty($awtor) || empty($ime) || empty($nowina) )
{ echo 'ne e wuvedeno ne6to'; exit; }
else { }...........
Не бе човек...по някаква причина не отчита че полетата са непопълнени.Какъвто и код да сложа няма да ги отчита като попълнени.Ако не работи кода за непопълнените полета не добавя нищо...Когато влезна директно в add.php си добавя всички, но незнам с include защо не става
 
Така трябва да е:
Код:
Добави новина<hr>

<form method="POST">
<input type="hidden" name="id" value="<?
include('config2.php');
$connection = mysql_connect($server,$dbusername,$dbpassword) or die("Сайтът не може да се свърже към базата данни");
$db = @mysql_select_db($db_name,$connection)or die("Сайтът не може да се свърже към базата данни2");
$our = mysql_query("SELECT id FROM news ORDER BY id  DESC LIMIT 1");
 while($r=mysql_fetch_array($our)){ 
$id=$r[id]+1;
echo$id;
}?>">
Автор: <input  name="awtor" value="" /><br />
Име на новината: <br /><input type="text"  name="ime"><br />
Новина: <br /><textarea rows="7"  name="nowina" cols="40"  type="text"></textarea><br />
<input name="news" type="submit" value="Добави!">
</form>
<?php
if ($_POST['news']) {
$ime = $_POST['ime']; 
$nowina = $_POST['nowina'];
$awtor = $_POST['awtor'];
if((empty($awtor)) && (empty($ime)) && (empty($nowina))) {
//проверява дали всички полета са попълнени
echo "Не си попълнил някое от полетата.";
}else{

$checkime = mysql_query("SELECT ime FROM news WHERE ime='$ime'");
$checkname= mysql_num_rows($checkime);
if ($checkname>0) {
// опа..някой е добавил тази новина вече!
echo "Тази новина вече е била добавяна";
}else{
// никой не е добавят тази новина, продължаваме...
$awtor = htmlspecialchars($awtor);
$ime = htmlspecialchars($ime);
$nowina = htmlspecialchars($nowina);
$id = htmlspecialchars($id);
// превръщаме полетата да не са в html
//всичко е перфректно да добавяме
$query = mysql_query("INSERT INTO `news` (awtor, ime, nowina, id) VALUES('$awtor','$ime','$nowina','$id')");
// успешно добавихме новината
echo "Успешно добави новина!";
}
}
}
else
{
//формата не е използвана
echo ("");
}

?>

Ако ти кажа колко кавички (и ' и ") беше пропуснал направо ще паднеш от стола.
 

Back
Горе