<![CDATA[Latest posts for the topic "fix giùm tôi lỗi trong php"]]> /hvaonline/posts/list/23.html JForum - http://www.jforum.net fix giùm tôi lỗi trong php Code:
session_start();
if (isset($_COOKIE['mediaonline'])) {
 $_SESSION["user"] = $_COOKIE['mediaonline'];
}
server báo lỗi thế này: Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /public_html/music/index.php:1) 2,lỗi bởi các ký tự meta... ví dụ ký tự này ' các biến nhập vào chứa ký tự ' khi sử dụng biến này trong các query sẽ báo lỗi ví dụ: $casi nhập vào giá trị sau " Li'knigt " khi chạy query này sẽ bị lỗi Code:
S ELECT * FROM $data->table_media WHERE mediasinger LIKE '".$n["casi"]."'
Làm ơn fix giùm tôi ]]>
/hvaonline/posts/list/819.html#3027 /hvaonline/posts/list/819.html#3027 GMT
Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#3089 /hvaonline/posts/list/819.html#3089 GMT Re: fix giùm tôi lỗi trong php
Chả hiểu sao forum lại detect ra đoạn text tôi gửi là có XSS và/hoặc SQL Injection, oan cho tôi quá :( http://www.savefile.com/files/6157938 <<< File text của cái post bằng image ở trên.]]>
/hvaonline/posts/list/819.html#3108 /hvaonline/posts/list/819.html#3108 GMT
fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#3110 /hvaonline/posts/list/819.html#3110 GMT Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#3241 /hvaonline/posts/list/819.html#3241 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#3251 /hvaonline/posts/list/819.html#3251 GMT Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#3256 /hvaonline/posts/list/819.html#3256 GMT Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#3384 /hvaonline/posts/list/819.html#3384 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#4059 /hvaonline/posts/list/819.html#4059 GMT fix giùm tôi lỗi trong php

vtv_4 wrote:
Bạn đưa file lên đây đi. 
đây bạn Code:
<?php
session_start();
if (isset($_COOKIE['MediaOnlineCookie'])) {
	$_SESSION["user"] = $_COOKIE['MediaOnlineCookie'];
}
?>
]]>
/hvaonline/posts/list/819.html#4062 /hvaonline/posts/list/819.html#4062 GMT
fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#4694 /hvaonline/posts/list/819.html#4694 GMT fix giùm tôi lỗi trong php

thang2rs wrote:
1. zeroj nói đúng. Bạn đã gởi cái gì đó đến client trước session_start(). Tôi đoán là bạn không gọi trực tiếp index.php mà wwwect từ 1 script khác. Kiểm tra script này xem sao. 2. Trong PHP có hàm mysql_real_escape_string($str). Dùng hàm này. Lưu ý là $str mang đúng giá trị của biến. Nếu $str đã quote (do magic quote = on) thì phải trả $str về đúng giá trị bằng stripslashes(). 
đảm bảo 100% ko phải tại có khoảng trắng hoặc thừa ký tự nào đó trước function session_start Tôi gọi trực tiếp file index.php, ko qua script nào cả Bác nói cụ thể hơn về mysql_real_escape_string($str) đi, dùng nó như addslashes... à? Tui khai báo Code:
<?
session_start();
trên cùng trog file index.php khi chưa login báo như vầy
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /www/nghenhac/index.php:1) in /www/nghenhac/index.php on line 2 
khi login vào nó báo như vầy
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /www/nghenhac/index.php:1) in /www/nghenhac/index.php on line 2 
2 lần Warning: khác nhau đó các bác nhé]]>
/hvaonline/posts/list/819.html#4906 /hvaonline/posts/list/819.html#4906 GMT
fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#5598 /hvaonline/posts/list/819.html#5598 GMT Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#5977 /hvaonline/posts/list/819.html#5977 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#6118 /hvaonline/posts/list/819.html#6118 GMT Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#6187 /hvaonline/posts/list/819.html#6187 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#6249 /hvaonline/posts/list/819.html#6249 GMT fix giùm tôi lỗi trong php

thang2rs wrote:
mysql_real_escape_string(): Như tên gọi của nó, đây là hàm dùng để escape một chuỗi trước khi đưa vào query. Mặc dù là hàm của PHP nhưng hàm này gọi các thư viện hàm của MySQL. Do đó hàm này bảo đảm chuỗi đưa vào vừa chính xác vừa an toàn (tránh các SQL injection hay các kí tự vô tình làm hỏng các query). Dùng nó như sau: Nếu $str lấy từ user input, kiểm tra magic quote, nếu =on trả $str về đúng giá trị của nó: if (get_magic_quotes_gpc()) { $str=stripslashes($_POST['name']); } else $str=$_POST['name']; Escape $str: $str=mysql_real_escape_string($str); Sau đó đặt $str vào 2 dấu ' như bạn đã dùng.  
em đã làm thử nhưng vẫn ko được bác ui em cho đoạn này vào phần input của user (file post.php) Code:
if (get_magic_quotes_gpc()) {
  $mediasinger=stripslashes($_POST['mediasinger']);
} else
  $mediasinger=$_POST['mediasinger'];


$mediasinger=mysql_real_escape_string($mediasinger);
kết quả thấy y chang như em đang dùng hàm addslashes, nếu giá trị input có ký tự meta nó sẽ tự sinh ra dấu \ trước nó, khi chạy query vẫn có lỗi...]]>
/hvaonline/posts/list/819.html#7301 /hvaonline/posts/list/819.html#7301 GMT
Re: fix giùm tôi lỗi trong php it's me cho $mediasinger thì: Trường hợp 1: get_magic_quotes_gpc()==1 , $mediasinger mang giá trị it\'s me (lưu ý có \) Trường hợp 2: get_magic_quotes_gpc()==0 , $mediasinger mang giá trị it's me (lưu ý không có \) Trường hợp 2 ta để nguyên $mediasinger. Trường hợp 1 ta bỏ \ bằng stripslashes(). Lúc này $mediasinger mang giá trị giống như trong trường hợp 2 (nghĩa là it's me, đây là giá trị thực của $mediasinger) Sau đó ta mysql_real_escape_string() biến $mediasinger trước khi đưa nó vào query. Lúc này $mediasinger mang giá trị đã được escape là it\'s me (đây là cách mà MySQL escape kí tự ' và nhiều kí tự khác nữa). Giá trị này được để trong 2 dấu nháy đơn và dùng "an toàn" trong câu query. Tôi đã dùng cách này trong nhiều năm và chưa bao giờ gặp bất kì 1 lỗi nào. Nếu bạn chạy mà vẫn gặp lỗi thì đành nhờ các cao thủ khác vậy :) ]]> /hvaonline/posts/list/819.html#7450 /hvaonline/posts/list/819.html#7450 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#7743 /hvaonline/posts/list/819.html#7743 GMT fix giùm tôi lỗi trong php table_media; if (get_magic_quotes_gpc()) { $mediasinger=stripslashes($_POST['mediasinger']); } else $mediasinger=$_POST['mediasinger']; $mediasinger=mysql_real_escape_string($mediasinger); $query="S ELECT * FROM $table WHERE mediasinger LIKE '%$mediasinger%'"; Note: Bỏ khoảng trắng trong "S ELECT"; ]]> /hvaonline/posts/list/819.html#7773 /hvaonline/posts/list/819.html#7773 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#7797 /hvaonline/posts/list/819.html#7797 GMT Re: fix giùm tôi lỗi trong php table_media và $mediasinger xây dựng query. $query="S ELECT * FROM $table WHERE mediasinger LIKE '%$mediasinger%'"; Gọi mysql_query() với query này. ]]> /hvaonline/posts/list/819.html#7976 /hvaonline/posts/list/819.html#7976 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#8386 /hvaonline/posts/list/819.html#8386 GMT Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#8439 /hvaonline/posts/list/819.html#8439 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#8745 /hvaonline/posts/list/819.html#8745 GMT Re: fix giùm tôi lỗi trong php dùng bộ lọc của bác thực chất khi gặp ký tự meta sẽ thêm vào đắng trước ký tự /vì vậy khi search chuỗi có chứa ký tự meta tức có / sẽ báo lỗi query ngay, phải giải quyết vấn đề này thế nào bác ui   Đành phải nhắc lại với bạn là việc thêm \ trước các kí tự đặc biệt là bắt buộc. Có thể lỗi mà bạn gặp là do 2 lần gọi mysql_real_escape_string() (bạn nói là do ở 2 file khác nhau gì đó)? Tuy nhiên, dù thế nào thì có thể bạn không tìm được kết quả như mong đợi chứ không thể gây lỗi được. Bạn cho xem chính xác chuỗi query trước khi gọi mysql_query() mà bạn nói là gây lỗi đi! ]]> /hvaonline/posts/list/819.html#9574 /hvaonline/posts/list/819.html#9574 GMT Re: fix giùm tôi lỗi trong php

thang2rs wrote:
Đành phải nhắc lại với bạn là việc thêm \ trước các kí tự đặc biệt là bắt buộc.  
Em cũng nghĩ vậy, mọi thứ tốt cả em chỉ gặp trục trặc về phần search
Có thể lỗi mà bạn gặp là do 2 lần gọi mysql_real_escape_string() (bạn nói là do ở 2 file khác nhau gì đó)? Tuy nhiên, dù thế nào thì có thể bạn không tìm được kết quả như mong đợi chứ không thể gây lỗi được. Bạn cho xem chính xác chuỗi query trước khi gọi mysql_query() mà bạn nói là gây lỗi đi!  
tất nhiên em thử hết các cách rồi bác à, ví dụ chuỗi là I'm MatNai Khi ko thêm mysql_real_escape_string() sẽ có giá trị như vậy Nếu thêm mysql_real_escape_string() vào để lọc sẽ lấy giá trị thật là I\'m MatNai Nhưng vấn đề khi em muốn search từ khoá này link form search sẽ bị ngắt quãng khi gặp ký tự ' ở đây chưa nói đến việc query search gặp lỗi gì mà vấn đề là link của form search bị ngắt quãng, ví dụ như từ khoá trên link search sẽ là index.php?act=search&kw=I chuỗi đằng sau sẽ bị mất vì gặp dấu ' Em thấy code của các forum thường sẽ đổi các ký tự này khi search dạng %20%26... Help me!]]>
/hvaonline/posts/list/819.html#9677 /hvaonline/posts/list/819.html#9677 GMT
Re: fix giùm tôi lỗi trong php ví dụ như từ khoá trên link search sẽ là index.php?act=search&kw=I chuỗi đằng sau sẽ bị mất vì gặp dấu '   Wow! Vấn đề giờ đã theo hướng hoàn toàn khác. Hãy thử: Code:
if (get_magic_quotes_gpc()) {
	$mediasinger=stripslashes($_POST['mediasinger']);
} else {
	$mediasinger=$_POST['mediasinger']; 
}

$querystring='act=search&kw='.urlencode($mediasinger);
$urlstring='index.php?'.htmlentities($querystring);
Sau đó trong index.php (lưu ý $_GET): Code:
if (get_magic_quotes_gpc()) {
	$mediasinger=stripslashes($_GET['kw']);
} else {
	$mediasinger=$_GET['kw']; 
}

$mediasinger=mysql_real_escape_string($mediasinger);
Rồi xây dựng $query như ta đã làm. ]]>
/hvaonline/posts/list/819.html#9863 /hvaonline/posts/list/819.html#9863 GMT
Re: fix giùm tôi lỗi trong php Code:
if (get_magic_quotes_gpc()) {
 	$mediasinger=stripslashes($_GET['kw']);
 } else {
 	$mediasinger=$_GET['kw']; 
 }
 
 $mediasinger=mysql_real_escape_string($mediasinger);
làm gì, vì em ko dùng vẫn search được mà bác, để chống injection khi search à bác? cho em hỏi thêm về cái title khi di chuột vào tên singer có dấu ' cũng bị ngắt quãng luôn, phải dùng hàm gì bác ui? Hàm gì để lấy ký tự đầu tiên và cuối cùng của chuỗi bác nhẩy, vì khi người ta nhập dấu cách vào đầu hoặc sau chuỗi sẽ gây rối loạn bộ search của em, em muốn lọc luôn khi user đăng bài, mà làm sao làm mất dấu cách ở đầu(or cuối) đi được bác, dùng hàm str_change có được ko? Em hỏi nhiều câu quá bác trả lời giùm he, làm phiền bác nhìu!]]>
/hvaonline/posts/list/819.html#9959 /hvaonline/posts/list/819.html#9959 GMT
Re: fix giùm tôi lỗi trong php Code:
if (get_magic_quotes_gpc()) {
  	$mediasinger=stripslashes($_GET['kw']);
} else {
  	$mediasinger=$_GET['kw']; 
}
  
$mediasinger=mysql_real_escape_string($mediasinger);
Lại phải nhắc lại: cái này là bắt buộc mặc dù trong trường hợp của bạn là không cần thiết. Tôi đoán là server đã set magic quotes = on. Khi đó nếu $mediasinger="it's me" chẳng hạn sẽ mang giá trị mới là "it\'s me". Kí tự ' đã được escaped và bạn có thể dùng $mediasinger trong mysql_query() mà không gây bất cứ lỗi nào. Tuy nhiên nếu magic quotes = off thì vấn đề sẽ phát sinh. Lí do là "it's me" mà không được escaped thì sẽ gây lỗi khi chạy mysql_query(). Hơn nữa mysql_real_escape_string() escape các kí tự đặc biệt khác với cách của server (đã nói rất rõ ở các bài trước). Code:
cho em hỏi thêm về cái title khi di chuột vào tên singer có dấu ' cũng bị ngắt quãng luôn, phải dùng hàm gì bác ui?
Dùng như ta đã dùng với urlencode() và htmlentities() Code:
Hàm gì để lấy ký tự đầu tiên và cuối cùng của chuỗi bác nhẩy, vì khi người ta nhập dấu cách vào đầu hoặc sau chuỗi sẽ gây rối loạn bộ search của em, em muốn lọc luôn khi user đăng bài, mà làm sao làm mất dấu cách ở đầu(or cuối) đi được bác, dùng hàm str_change có được ko?
$mediasinger=trim($mediasinger); Cách dùng: if (get_magic_quotes_gpc()) { $mediasinger=stripslashes($_GET['kw']); } else { $mediasinger=$_GET['kw']; } $mediasinger=trim($mediasinger); $mediasinger=mysql_real_escape_string($mediasinger); ]]>
/hvaonline/posts/list/819.html#10142 /hvaonline/posts/list/819.html#10142 GMT
fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#10707 /hvaonline/posts/list/819.html#10707 GMT fix giùm tôi lỗi trong php ko dùng được get_magic_quotes_gpc() với giá trị của $_GET  Nghĩa là sao hả bạn???]]> /hvaonline/posts/list/819.html#10709 /hvaonline/posts/list/819.html#10709 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#10710 /hvaonline/posts/list/819.html#10710 GMT Re: fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#10715 /hvaonline/posts/list/819.html#10715 GMT Re: fix giùm tôi lỗi trong php Nghĩa là sao hả bạn???  em nói tắt, bác đọc bài viết trên là hiểu ý em mà :-))
nên biến $kw lấy từ $_GET['kw']. Trước khi lấy $kw ta phải kiểm tra magic quote 
em đặt code kiểm tra ở file index thì báo lỗi không tìm thấy gì hết. Nếu đặt ở file search thì ko thấy động tĩnh gì, ko thấy gì khác so với khi ko đặt, có nhất thiết phải đặt ở index ko bác, em nghĩ chỉ cần đặt phía trên đoạn code search là được bác nhẩy (trước khi mang so sánh với giá trị trong database của mình) bác thanh2rs đọc PM của em chưa vậy?]]>
/hvaonline/posts/list/819.html#10840 /hvaonline/posts/list/819.html#10840 GMT
fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#11210 /hvaonline/posts/list/819.html#11210 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#11497 /hvaonline/posts/list/819.html#11497 GMT fix giùm tôi lỗi trong php /hvaonline/posts/list/819.html#11656 /hvaonline/posts/list/819.html#11656 GMT