הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שגיאה בעת נסיון ליצירת מנוע חיפוש (https://hosts.co.il/forums/showthread.php?t=41161)

X-T 08-03-07 18:37

שגיאה בעת נסיון ליצירת מנוע חיפוש
 
שורת הקוד:
PHP קוד:

    $start=mysql_query("SELECT * FROM `news` WHERE `title` LIKE '%".$_POST['searchTXT']."%' LIMIT ".$_GET['page'] * 10 10.", ".$_GET['page'] * 10); 

שגיאה:

ציטוט:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/xxx.com/public_html/search.php on line 23

אשמח לקבל עזרה

Meir 08-03-07 18:42

הינה תיקון לבעיה שלך

PHP קוד:

$start=mysql_query("SELECT * FROM `news` WHERE `title` LIKE '%".$_POST['searchTXT']."%' LIMIT ".($_GET['page'] * 10 10).", ".$_GET['page'] * 10); 

היתה לך בעיה פה

PHP קוד:

$_GET['page'] * 10 10 

ולא כדי שתריץ את זה על אתר מסויים כי זה לא מאובטח בכלל אתה מקבל נתונים בלי לבדוק אותם

X-T 08-03-07 20:42

עדיין שגיאה, הינה קובץ המלא
PHP קוד:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

   <head>
      <title>Untitled</title>
   </head>
<body>
<?php
if(isset($_POST['submited']))
{
    function 
my_err($my_msg)
        {
                global 
$failed;
                global 
$err_msg;
                if (
$failed == FALSE)
                {
                    
$failed=TRUE;
                    
$err_msg .="Error(s): <br /> \n";
                }
                
$err_msg .= "$my_msg <br /> \n";
        }
    
$start=mysql_query("SELECT * FROM `news` WHERE `title` LIKE '%".$_POST['searchTXT']."%' LIMIT ".($_GET['page'] * 10 10).", ".$_GET['page'] * 10);  

    if(
mysql_num_rows($start) == 0)
    {
            
my_err('subject not found');
    }
    else
    {
        while(
$info=mysql_fetch_array($start))
        {
                
$info['title'] = str_replace($info['title'], '<b>'.$info['title'].'</b>';
                echo 
'<div>';
                echo 
$info['title'].'<br />';
                echo 
'<a href="'.$info['eauthor'].'">Download now!</a>';
                echo 
'</div>';
                echo 
'<br />';
        }
        
$start=mysql_query("SELECT `id` FROM `news` WHERE `title` LIKE '%".$_GET['searchTXT']."%'");
        
$rows=round(mysql_num_rows($start));
        for(
$i 1$i <= $rows$i++);
        {
                if(
$i == $_GET['page'])
                {
                    echo 
'<a href="search.php?page='.$i.'"><b>'.$i.'</b></a>';
                    continue;
                }
                echo 
'<a href="search.php?page='.$i.'">'.$i.'</a>';
        }
        echo 
'</span>';
        echo 
'</body>
        </html>'
;
        exit;
    }
?>  
    <?php
    
if($failed)
        echo 
'<span>'.$err_msg.'</span>';
    
?>
    <form action="search.php" method="get">
        <span>Search me:</span><input type="text" name="searchTXT" />
        <input type="submit" name="submited" value="TRUE" />
    </form>
</body>
</html>

שגיאה: שורה 33

Meir 08-03-07 20:59

שכחת לסגור את הסוגרים בשורה 33

עריכה: יש לך עוד בעיה לא סגרת את התנאי הראשון

Derey22 08-03-07 21:00

לידע כללי LIMIT מחליפה בין נ לג (אני חושב)..תריץ חיפוש זה היה כבר כתוב

RS324 08-03-07 21:30

ציטוט:

נכתב במקור על ידי Derey22 (פרסם 435417)
לידע כללי LIMIT מחליפה בין נ לג (אני חושב)..תריץ חיפוש זה היה כבר כתוב

אם כבר LIKE

LIMIT רק מגביל את התוצאות

BlueNosE 08-03-07 22:57

הוא התכוון LIKE.

וכל עוד אין פתרון יותר טוב מLIKE, שלוקח יותר משאילתא אחת ולא שולף את כל הנתונים ובודק אחד אחד, הייתי משתמש בLIKE, מה לעשות.

X-T 09-03-07 07:49

אשמח אם תעזרו לי לתקן את הקוד...

TopSite.co.il 09-03-07 13:45

אני לא יודע אם מה שכתבתי לך יעבוד אבל זה בטוח יאבטח לך את הקוד, כדאי מאוד שתקרא על אבטחת מידע המצב שלך לא מזהיר בסוגיה הזו, כדאי שתפנים את מה שביצעתי לך כאן:

PHP קוד:

<?php

/**
* Utility function to return a value from a named array or a specified default
*/

define"_NOTRIM"0x0001 );
define"_ALLOWHTML"0x0002 );
define"_ALLOWRAW"0x0004 );
define"_NOMAGIC"0x0008 );
function 
getParam( &$arr$name$def=null$mask=) {
            if (isset( 
$arr[$name] )) {
                    if (
is_array($arr[$name])) foreach ($arr[$name] as $key=>$element$result[$key] = cmsGetParam ($arr[$name], $key$def$mask);
                    else {
                            
$result $arr[$name];
                        if (!(
$mask&_NOTRIM)) $result trim($result);
                        if (!
is_numeric$result)) {
                                if (!(
$mask&_ALLOWHTML)) $result strip_tags($result);
                                if (!(
$mask&_ALLOWRAW)) {
                                            if (
is_numeric($def)) $result intval($result);
                                }
                        }
                        if (!
get_magic_quotes_gpc()) {
                                
$return addslashes$return );
                        }
                }
                return 
$result;
        } else {
                return 
$def;
        }
}
$submited     trimgetParam$_REQUEST'submited') );
$page         trimgetParam$_REQUEST'page') );
$searchTXT     trimgetParam$_REQUEST'searchTXT') );

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

   <head>
      <title>Untitled</title>
   </head>
<body>
<?php
if($submited)
{
    function 
my_err($my_msg)
        {
                global 
$failed;
                global 
$err_msg;
                if (
$failed == FALSE)
                {
                    
$failed=TRUE;
                    
$err_msg .="Error(s): <br /> \n";
                }
                
$err_msg .= "$my_msg <br /> \n";
        }
    
$start=mysql_query("SELECT * FROM `news` WHERE `title` LIKE '%".$searchTXT."%' LIMIT ".($page 10 10).", ".$page 10);  

    if(
mysql_num_rows($start) == 0)
    {
            
my_err('subject not found');
    }
    else
    {
        while(
$info=mysql_fetch_array($start))
        {
                
$info['title'] = str_replace($info['title'], '<b>'.$info['title'].'</b>';
                echo 
'<div>';
                echo 
$info['title'].'<br />';
                echo 
'<a href="'.$info['eauthor'].'">Download now!</a>';
                echo 
'</div>';
                echo 
'<br />';
        }
        
$start=mysql_query("SELECT `id` FROM `news` WHERE `title` LIKE '%".$searchTXT."%'");
        
$rows=round(mysql_num_rows($start));
        for(
$i 1$i <= $rows$i++);
        {
                if(
$i == $page)
                {
                    echo 
'<a href="search.php?page='.$i.'"><b>'.$i.'</b></a>';
                    continue;
                }
                echo 
'<a href="search.php?page='.$i.'">'.$i.'</a>';
        }
        echo 
'</span>';
        echo 
'</body>
        </html>'
;
        exit;
    }
?>  
    <?php
    
if($failed)
        echo 
'<span>'.$err_msg.'</span>';
    
?>
    <form action="search.php" method="get">
        <span>Search me:</span><input type="text" name="searchTXT" />
        <input type="submit" name="submited" value="TRUE" />
    </form>
</body>
</html>


X-T 09-03-07 14:13

אוקאי, הקוד שלא לא פועל ( שגיאה שורה 72 )

ציטוט:

Parse error: syntax error, unexpected ';' in /home/rancid/domains/xxx.com/public_html/search.php on line 72


כל הזמנים הם GMT +2. הזמן כעת הוא 03:49.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ