invx
15.05.2004, 19:11:29
czy start_sesion zawse musi byc na poczatku pliku
czy jak skrypt generuje blad
Kod
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:usrkrasnalwwwrcx-portalindex.php:14) in c:usrkrasnalwwwrcx-portallogowanieplik.php on line 16
to znaczy ze wlasnie start_sesion jest nie na poczatku pliku ?
Liko
15.05.2004, 19:24:17
Tak, oznacza że już jakieś dane zostały wysłane, a tak być nie może.
Cytat
Notatka: Jeśli używasz sesji opartych o ciasteczka, to session_start() musi być wywołane przed wysłaniem jakichkolwiek danych do przeglądarki.
To jest w twoim przypadku bo używasz ciastek.
invx
15.05.2004, 19:32:27
ale ja ten skrypt includuje do index.php i nie moze on byc na poczatku
Liko
15.05.2004, 19:37:47
Specjalnie do tego jest funkcja [manual:d5d96bc457]ob_start[/manual:d5d96bc457] i [manual:d5d96bc457]ob_end_flush[/manual:d5d96bc457]. Polecam się znimi zapoznać i wtedy bez problemów bedziesz mógł inlucdować strony.
invx
15.05.2004, 19:52:35
tylko wszytsko tam po angieslku, ale z teo co wyczytalem musze dac na jedna funkcje na poczatek, druga na koniec includowanego pliku, i tak zrobilem i to samo ... wywala
Majdan
15.05.2004, 20:01:35
Sprawd tak:
[php:1:acb2304d8a]<?php
ob_start();
// kod
ob_end_flush();
session_start();
// (...) dalszy kod
?>[/php:1:acb2304d8a]
invx
15.05.2004, 20:18:02
i to mam dac w pliku includownym

czy includujacym?? bo tego includa to ja dwa razy wykonuje. tzn raz plik 000.php do pliku aaa.php i potem plik aaa.php do pliku bbb.php
Majdan
15.05.2004, 20:21:49
Ja Ci nie powiem, bo nie wiem jak wyglšdajš pliki.
invx
15.05.2004, 20:41:27
index.php
[php:1:bba04ad6d0]
<html>
<head>
</head>
<body>
<div align="center">
<center>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#EFEFEF" width="750" height="57">
<tr>
<td width="683" height="57" align="left">
blabla
</td>
</tr>
</table>
<?php
include("include/head.inc.php");
?>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="750" height="500">
<tr>
<td width="746" height="6" colspan="3">
<img border="0" src="theme/default/linia.gif" width="750" height="12"></td>
</tr>
</table>
</center>
</div>
<p align="center">
</body>
</html>
[/php:1:bba04ad6d0]
head.inc.php
[php:1:bba04ad6d0]
<table align="center" bgcolor="#808080" width="750" cellspacing="0" cellpadding="0" border="0">
<tr>
<td bgcolor="#c0c0c0" align="right" class="uni_01" height="40">
<?php
include("logowanie/login.php");
?>
</td>
</tr>
</table>
[/php:1:bba04ad6d0]
login.php
[php:1:bba04ad6d0]
<?php
if($_POST[mode] == spr)
{
if(!isset($_POST[login]))
{
echo"Nie masz dostępu do tego modułu";
}
else
{
mysql_connect("127.0.0.1", "root", "krasnal") or die ("nie mozna polaczyc sie z baza");
mysql_select_db(rcx) or die ("nie mozna wybrac bazy");
session_start();
if($_POST['submit'])
{
$wyszukaj = mysql_query("SELECT * FROM users WHERE login='$_POST[login]' AND haslo='$_POST[pass]'");
$wynik = mysql_num_rows($wyszukaj);
if(empty($_POST[login]))
{
echo "nie podano loginu<br>";
}
if(empty($_POST[pass]))
{
echo "nie podano hasla<br>";
}
elseif($wynik == 1)
{
$_SESSION['log'] = $login;
}
elseif(isset($_POST[login]) && $_POST[pass])
{
echo "Niepoprawne dane";
}
}
if($_SESSION['log'])
{
echo "Witaj <b>".$_SESSION['log']."</b> na stronie !<br><a href='form_login.php?mode=a_profil&id=$id'>aktualizuj swuj profil</a><br><a href=login.php?mode=wyloguj>wyloguj</a>";
}
}
}
elseif($_GET[mode] == wyloguj)
{
session_start();
unset($_SESSION['log']);
echo"zostales wylogowany kliknij aby powrucic <a href=login.php>TUTAJ</a>";
}
else
{
echo"
<form action='$_SERVER[PHP_SELF]' method='POST'>
Login:
<input type='text' name='login'>
Hasło:
<input type='text' name='pass'>
<input type='hidden' name='mode' value='spr'>
<input type='submit' name='submit' value='Zaloguj'>
</form>
<a href='rejestruj.php'>zarejestruj sie</a> |
<a href='logowanie/form_login.php?mode=zapomnialem_pass'>zapomnialem hasla</a>
";
}
?>
[/php:1:bba04ad6d0]
Majdan
16.05.2004, 08:33:35
W tym wypadku możesz przenieść session_start():
login.php
[php:1:b4481863fd]<?php
session_start(); // tu dajesz
if($_POST[mode] == spr)
{
if(!isset($_POST[login]))
{
echo"Nie masz dostępu do tego modułu";
}
else
{
mysql_connect("127.0.0.1", "root", "krasnal") or die ("nie mozna
polaczyc sie z baza");
mysql_select_db(rcx) or die ("nie mozna wybrac bazy");
// stąd usuwasz
if($_POST['submit'])
{
$wyszukaj = mysql_query("SELECT * FROM users WHERE
login='$_POST[login]' AND haslo='$_POST[pass]'");
$wynik = mysql_num_rows($wyszukaj);
if(empty($_POST[login]))
{
echo "nie podano loginu<br>";
}
if(empty($_POST[pass]))
{
echo "nie podano hasla<br>";
}
elseif($wynik == 1)
{
$_SESSION['log'] = $login;
}
elseif(isset($_POST[login]) && $_POST[pass])
{
echo "Niepoprawne dane";
}
}
if($_SESSION['log'])
{
echo "Witaj <b>".$_SESSION['log']."</b> na stronie !<br><a
href='form_login.php?mode=a_profil&id=$id'>aktualizuj swuj
profil</a><br><a href=login.php?mode=wyloguj>wyloguj</a>";
}
}
}
elseif($_GET[mode] == wyloguj)
{
// stąd też usuwasz
unset($_SESSION['log']);
echo"zostales wylogowany kliknij aby powrucic <a
href=login.php>TUTAJ</a>";
}
else
{
echo"
<form action='$_SERVER[PHP_SELF]' method='POST'>
Login:
<input type='text' name='login'>
Hasło:
<input type='text' name='pass'>
<input type='hidden' name='mode' value='spr'>
<input type='submit' name='submit' value='Zaloguj'>
</form>
<a href='rejestruj.php'>zarejestruj sie</a>[space]|[space]
<a
href='logowanie/form_login.php?mode=zapomnialem_pass'>zapomnial
em hasla</a>
";
}
?>[/php:1:b4481863fd]
invx
16.05.2004, 09:17:01
to samo tylko w lini 2
Kod
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:usrkrasnalwwwrcx-portalindex.php:14) in c:usrkrasnalwwwrcx-portallogowanielogin.php on line 2
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:usrkrasnalwwwrcx-portalindex.php:14) in c:usrkrasnalwwwrcx-portallogowanielogin.php on line 2
moze zle siezabralem za cale ogowanie
Liko
16.05.2004, 09:55:21
index.php
[php:1:ced6e7870e]
<?php ob_start(); ?>
<html>
<head>
</head>
<body>
<div align="center">
<center>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#EFEFEF"
width="750" height="57">
<tr>
<td width="683" height="57" align="left">
blabla
</td>
</tr>
</table>
<?php
include("head.inc.php");
?>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" width="750" height="500">
<tr>
<td width="746" height="6" colspan="3">
<img border="0" src="theme/default/linia.gif" width="750" height="12"></td>
</tr>
</table>
</center>
</div>
<p align="center">
</body>
</html>
<?php ob_end_flush(); ?>[/php:1:ced6e7870e]
invx
16.05.2004, 16:48:26
Liko wielkie dzieki dziala, a juz przymiezalem sie do napisania inaczej skonstruowanego kodu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.