Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Cannont modify header

Parašė Erdfcvxl· 2013 Sau. 11 22:01:20
#1

Sveiki, taigi susiduriau su tokiu erroru

Warning: Cannot modify header information - headers already sent by (output started at /hermes/bosoraweb065/.../custom/mysql.php:1) in /hermes/bosoraweb065/b1043/.../custom/index.php on line 20


<?php
session_start();
include("mysql.php");
 
$psl = (isset($_GET['psl']) ? $_GET['psl'] : "");
if($psl == "login") {
	@extract($_POST);
 
	if (isset($login)) { 
		//unset($_SESSION['er']);
 
		if($username == "") {$_SESSION['er'] = "Please enter Customer's ID";} 
		elseif ($passwort == "") {$_SESSION['er'] = "Please enter Password";}
		else { $row = mysql_fetch_assoc(mysql_query("Select * from users WHERE u_id='$username'"));
 
			if($username == $row['u_id'] && $passwort == $row['u_pass']) {$_SESSION['user'] = $row['id'];}
			else{$_SESSION['er'] = "Customer ID or Password is wrong";}
		}
		if (isset($_SESSION['user'])) {
			header("Location: customer.php");
		} else {
			header("Location: index.php");
		}
	}
}
 
unset($_SESSION['user']);
 
 
include("header.php");
//dar kodo.....
 


Zodziu nera atrodo nieko is echo'inta ankciau negu header komanda panaudota, o errora vistiek meta, gal kas paaiskintu kodel?

Parašė Pakartoti slaptažodį· 2013 Sau. 11 22:01:55
#2

Nenaudok extract(), geriau paprastai su POST masyvu surašyk viską, galimas daiktas, čia ir bus problema.

Parašė Erdfcvxl· 2013 Sau. 11 22:01:14
#3

Deja, nepadaejo......


if($psl == "login") {
	//@extract($_POST);
 
	if (isset($login)) { 
		//unset($_SESSION['er']);
 
		if($_POST['username'] == "") {$_SESSION['er'] = "Please enter Customer's ID";} 
		elseif ($_POST['passwort'] == "") {$_SESSION['er'] = "Please enter Password";}
		else { $row = mysql_fetch_assoc(mysql_query("Select * from users WHERE u_id='".$_POST['username']."'"));
 
			if($_POST['username'] == $row['u_id'] && $_POST['passwort'] == $row['u_pass']) {$_SESSION['user'] = $row['id'];}
			else{$_SESSION['er'] = "Customer ID or Password is wrong";}
		}
		//if (isset($_SESSION['user'])) {
			header("Location: /customer.php");
		//} else {
		//	header("Location: index.php");
		//}
	}
}
Neatrodo kad kazka buciau praleides :/

Redagavo Erdfcvxl· 2013 Sau. 11 22:01:59

Parašė Pakartoti slaptažodį· 2013 Sau. 11 22:01:04
#4

Atleisk, kad kabinėjuosi, tiesiog noriu matyti optimalų ir saugų kodą, tai padeda lengviau rasti problemas. Tu naudoji dvigubą if'ą, kodėl nepadarius taip?

if (isset($login) && $psl == "login") {

Parašė Erdfcvxl· 2013 Sau. 11 22:01:00
#5

Kodas daug kartu reduoguotas ir t.t. tuo labiau savamokslis tai ir palieku tokias nesamones :) Kabinekis, tik i nauda iseis :)

Del to header tai pasiskaiciau kad cia del whitespacing gali but, kad palieku tarpelius, bet perziurejau visa koda atydziai ir ka radau pataisiau, bet erroras nedingsta :/ Nzn kaip cia prasisukti. Elementarus loginas neveikia...

Visa koda numesiu dar:


<?php
session_start();
include("mysql.php");
 
$psl = (isset($_GET['psl']) ? $_GET['psl'] : "");
 
if (isset($login) && $psl == "login") {
 
		unset($_SESSION['er']);
 
		if($_POST['username'] == "") {$_SESSION['er'] = "Please enter Customer's ID";} 
		elseif ($_POST['passwort'] == "") {$_SESSION['er'] = "Please enter Password";}
		else { $row = mysql_fetch_assoc(mysql_query("Select * from users WHERE u_id='".$_POST['username']."'"));
 
			if($_POST['username'] == $row['u_id'] && $_POST['passwort'] == $row['u_pass']) {$_SESSION['user'] = $row['id'];}
			else{$_SESSION['er'] = "Customer ID or Password is wrong";}
		}
		if (isset($_SESSION['user'])) {
			header("Location: /customer.php");
		} else {
			header("Location: index.php");
		}
	}
}
 
unset($_SESSION['user']);
 
include("header.php");
 
if($psl == "" && !isset($_SESSION['user'])){ ?>
 
<form method="POST" action="index.php?psl=login">
	<div class="forma">
		<div class="customer_name">
			Customer's ID:   <br> <br> <br> 
			Password:	 
		</div>		
		<div class="password">
			<input type="text" name="username" size="15">
			<input type="password" name="passwort" size="15" style="margin-top:5px;"/>
 
		</div>
		<center>
 
			<input type="submit" value="Login" name='login' /></p>
			<?php if(isset($_SESSION['er'])) {echo $_SESSION['er'];} ?>
		<center>
	</div>
</form>
 
<?php
}
include("footer.php");
?>

Redagavo Erdfcvxl· 2013 Sau. 11 22:01:37

Parašė Pakartoti slaptažodį· 2013 Sau. 11 23:01:04
#6

Tiesa, labai gerai pastebėjai. Pamėgink, jei dirbi per NP++, pasirinkt Encoding > UTF-8 w/o BOM.

Parašė Creatium· 2013 Sau. 11 23:01:27
#7

Bandei neincludinti header.php failo?

Parašė Erdfcvxl· 2013 Sau. 11 23:01:01
#8

Per notepad++ viska rasau. Jei gali paaiskink ka su juo daryti tureciau.

Redagavo Erdfcvxl· 2013 Sau. 11 23:01:31

Parašė Erdfcvxl· 2013 Sau. 11 23:01:03
#9

Creatium, pabandziau - nepadejo...

Parašė Pakartoti slaptažodį· 2013 Sau. 11 23:01:27
#10


Parašė Erdfcvxl· 2013 Sau. 11 23:01:48
#11

Dekui uz atsakymus bet klaida buvo visai ne ten kur ieskojom...... Pasirodo Mysql.php faile ir pries <?php ir gale po ?> buvo palikti space........ Kazkodel rode index.php klaida, bet buvo kitur. Svarbu dabar viskas veikia :))))) Darsyk dekui, gero vakaro :)

Parašė tauras· 2013 Kov. 12 21:03:40
#12

Pabandyk po session_start(); įdėt ob_start(); turėtų susitaisyt.:)