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.:)