Помощ за 1 PHP команда

bganonymous

Registered
Имам този PHP код, който изкарва новините от базата данни (news.php?newsid=ID на новината). Но, когато новината не съществува, или потребителят напише в лентата само news.php, а не news.php?newsid=ID на новината (както трябва да бъде) - не се показва грешка... :( Някой може ли да ми каже как става това, което искам?

Код:
<?php
$getid = $_GET['newsid'];
$sql = "SELECT * FROM news WHERE newsid = '$getid'";
$result = @mysql_query($sql, $database_connection) or die(mysql_error());
while ($sql = mysql_fetch_object($result))
{
$newstitle = $sql -> newstitle;
$newscontent = $sql -> newscontent;
$newsby = $sql -> newsby;
}
?>
 
в началото слагаш

if(!isset($_GET['newsid'])) { съобщение за грешка } else { твоят код }

а освен това е хубаво да напишеш $getid = (int) $_GET['newsid'], security reasons :)
 
djman каза:
в началото слагаш

if(!isset($_GET['newsid'])) { съобщение за грешка } else { твоят код }

а освен това е хубаво да напишеш $getid = (int) $_GET['newsid'], security reasons :)
Може ли да ми го направиш? :o
 
така върши ли ти работа?
PHP:
<?php
if(!isset($_GET['newsid'])) { 
else
$getid = (int) $_GET['newsid'];
$sql = "SELECT * FROM news WHERE newsid = '$getid'";
$result = @mysql_query($sql, $database_connection) or die(mysql_error());
while ($sql = mysql_fetch_object($result))
{
$newstitle = $sql -> newstitle;
$newscontent = $sql -> newscontent;
$newsby = $sql -> newsby;
}
?>
 
systems каза:
така върши ли ти работа?
PHP:
<?php
if(!isset($_GET['newsid'])) { 
else
$getid = (int) $_GET['newsid'];
$sql = "SELECT * FROM news WHERE newsid = '$getid'";
$result = @mysql_query($sql, $database_connection) or die(mysql_error());
while ($sql = mysql_fetch_object($result))
{
$newstitle = $sql -> newstitle;
$newscontent = $sql -> newscontent;
$newsby = $sql -> newsby;
}
?>
Не работи. Има някъде грешка или може би грешки.
 
Ами има грешка, затова не работи. Пича по-горе не е добавил скобите ;)
Би трябвало това да работи
Код:
<?php
if(!isset($_GET['newsid'])) { 
echo "Грешка!";
}
else {
$getid = (int)$_GET['newsid'];
$sql = "SELECT * FROM news WHERE newsid = '$getid'";
$result = @mysql_query($sql, $database_connection) or die(mysql_error());
while ($sql = mysql_fetch_object($result))
{
$newstitle = $sql -> newstitle;
$newscontent = $sql -> newscontent;
$newsby = $sql -> newsby;
}
    }
?>
 
Братле, с тоя $_GET дето го вкарваш в базата директно направо настръхвам, така сайта ти смятай, че е хакнат на втория ден.

Винаги, ама винаги слагайте най-отгоре този код за защита:

PHP:
$_GET = array_map ('mysql_real_escape_string', $_GET);
$_POST = array_map ('mysql_real_escape_string', $_POST);
 

Back
Горе