مشكل با تابع header

gmail

Member
سلام لطفا هر كي سر در مياره جواب رواستاد كنه
من يك برنامه لاگين نوشتم با php and mysql حالا مشكلي كه دارم اينكه موقعي كه مي خوام لاگين شم error مي ده
کد:
Warning: session_start(): open(\tmp\sess_f814f5ba9dccc4db3155c7571aec64b4, O_RDWR) failed: No such file or directory (2) in c:\apache\htdocs\myblog\login.php on line 6

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\apache\htdocs\myblog\config.php:10) in c:\apache\htdocs\myblog\login.php on line 6

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\myblog\config.php:10) in c:\apache\htdocs\myblog\login.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at c:\apache\htdocs\myblog\config.php:10) in c:\apache\htdocs\myblog\login.php on line 39

Warning: Unknown(): open(\tmp\sess_f814f5ba9dccc4db3155c7571aec64b4, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (\tmp) in Unknown on line 0


اينم بگم كه اين مشكل رو با بعضي از نرم افزارا كه از نت دانلود كرده بودم داشتم منظورم اينه كه خودم حدس مي زنم كه مشكل از تنظيمات php باشه !!!!
 

amirnezhad

Member
دوست عزيز پرست ميگيد ... اين مشكب از PHP هستش براي رفعش هم توي فايل php.ini دنبال session.save_path بگرديد و مقدارش رو از tmp/ به يه آدرس روي كامپيوتر تغيير بديد ... مثلا G:\Server\Apache\php4\session البته يادتون باشه كه اين آدرس حتما بايد وجود داشته باشه و به صورت كامل هم وارد بشه ...

اين بخش مربوط به همين موضوع توي فايل php.ini روي كامپيوتر من اين شكليه ... فكر كنم يه خورده دقت كني خودت متوجه همه چيز ميشي ...

کد:
; Argument passed to save_handler.  In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this 
; variable in order to use PHP's session functions.
;session.save_path = /tmp
session.save_path = "G:\Server\Apache\php4\session"
 

gmail

Member
امير جون آره مشكل همين بود بعد اما
کد:
Warning: Cannot modify header information - headers already sent by (output started at c:\apache\htdocs\myblog\config.php:10) in c:\apache\htdocs\myblog\login.php on line 39
چي؟
جا هاي ديگم كه از تابع header استفاده كردم اين گير رو مي ده
 

oxygenws

Active Member
قبلا کاراکتری رو روی صفحه چاپ کردید. این چاپ کاراکتر در فایل c:\apache\htdocs\myblog\config.php چاپ شده که قبل از دستور header ----نباید---- کاراکتری چاپ بشه :)
 

amirnezhad

Member
شما از چه نرم افزاري براي ويرايش فايلهاتون استفاده ميكنيد ... مخصوصا فايلهاي PHP كه توشون نوشته فارسي داره ...
 

gmail

Member
والا من كه كاركتري چاپ نكردم از نرم افزار html-kit استفاده مي كنم
پليز هلپ رو زود تر استاد كنيد كه كارم بد جوري گيره
در ضمن اينم بگم من وقتي ديدم اين جوري كار نميده اومدم صفحه بعدي رو ضميمه كردم كه درست شد اما فكر نكنم اين اصلا درست باشه
 

amirnezhad

Member
والا من هم دارم از همين نرم افزار استفاده ميكنم و تاحالا مشكلي از طرف نرم افزار به اين صورت كه ميگيد وجود نداشته ... من احتمال مي دادم كه براي ويرايش فايلهاي فارسي تون از notepad يا يخ نرم افزاري استفاده ميكنيد كه خودش براي شناسايي فايلهاي UTF-8 دو تا كاراكتر اول فايل اضافه ميكنه ... اما اگه اينطور نيست و همه فايلهاتون رو با HTML-Kit ايجاد و ويرايش كرديد ميشه با اطمينان زيادي گفت كه يه جايي داره روي صفحه (قبل از دستور header) يه چيزي - حتي يه Space - نوشته ميشه كه باعث ايجاد اين مشكل شده ...
به هر صورت فكر نكنم تا وقتي كه Source كارتون رو بچه ها نبينن بتونن بيشتر از اين كمكتون كنن ...
موفق باشيد
 

gmail

Member
آقا راجب اون 2تا كاراكتر بله مي دونم اما من از خود html-kit گذشته از اين من توي اسكريپتم از هيچ متن فارسي استفاده نكردم
يك نكته ديگه اينكه من قبلا گفتم كه با بعضي از اسكريپت هاي ديگم مشكل اينحوري داشتم وقتي از تابع header استفاده كردم همين مشكل رو داشتم نمونه اسكريپت رو هم مي ذارم
کد:
session_start();  

include 'config.php';

$username = $_POST['username'];
$password = $_POST['password'];

if((!$username) || (!$password)){
	echo "Please enter ALL of the information! <br />";
	include 'login_form.html';
	exit();
}


$password = md5($password);


$sql = mysql_query("SELECT * FROM admin WHERE username='$username' AND password='$password' ");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
	while($row = mysql_fetch_array($sql)){
	foreach( $row AS $key => $val ){
		$$key = stripslashes( $val );
	}
		
		session_register('first_name');
		$_SESSION['first_name'] = $first_name;
		session_register('last_name');
		$_SESSION['last_name'] = $last_name;
		session_register('email_address');
		$_SESSION['email_address'] = $email_address;
		
		
		include  "login_success.php";
	}
 

oxygenws

Active Member
gmail گفت:
امير جون آره مشكل همين بود بعد اما
کد:
Warning: Cannot modify header information - headers already sent by (output started at c:\apache\htdocs\myblog\config.php:10) in c:\apache\htdocs\myblog\login.php on line 39
چي؟
جا هاي ديگم كه از تابع header استفاده كردم اين گير رو مي ده

لطفا فایل config.php رو اینجا بنویس.
 

gmail

Member
اينم فايل كانفيگ
کد:
<?php
$host="localhost";
$user="root";
$pass="";
$dbname="mydb";
mysql_connect ($host, $user, $pass) ;
mysql_select_db ($dbname);
?>
 

oxygenws

Active Member
همین فایل احتمالا قبل از علامت <?php دارای یه سری کاراکتر (یا space یا کاراکتر هایی که دیده نمی شن) هست، لطفا این رو بررسی کنید و اگه تونستی فایل رو با یه نرم افزار hex-editor باز کن تا کاراکتر های مخفی رو ببینی.

موفق باشید، امید

(راستی، از همون اول می خواستم بگم، ولی یادم می رفت، موضوع تاپیک رو درست انتخاب کن و لطفا همین تاپیک رو هم عوض کن)
 

gmail

Member
آقا درست شد همش زير سر اين فايل كانفيگ بود!
اما من يك سوالي برام پيش اومد آخه وقتي مه من فايل ها مو فقط با html-kit ويرايش مي كنم هيچ متن فارسي هم توش نمي زارم اين كاراكترا از كجا پيداشون مي شه؟؟؟؟
ممنون
 

oxygenws

Active Member
:) خدا خواسته لابد!!! من دیگه نمی دونم این کاراکتر ها از کجا اومده!!
 

gmail

Member
بابا خدا هم كه انگار هر چي سنگ واسه ما خواد.
در هر صورت ممنون:D
 

جدیدترین ارسال ها

بالا