Autor Zpráva
pito
Profil
Zdravim,

Mam prihlaseni do administrace kde napisu svuj nick a heslo odeslu to,ale potom mi to napise chybu:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/www/stolarskeprace.cz/www/admin_zpracuj.php:1) in /home/www/stolarskeprace.cz/www/admin_zpracuj.php on line 8

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/stolarskeprace.cz/www/admin_zpracuj.php:1) in /home/www/stolarskeprace.cz/www/admin_zpracuj.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at /home/www/stolarskeprace.cz/www/admin_zpracuj.php:1) in /home/www/stolarskeprace.cz/www/admin_zpracuj.php on line 25


Script mam tenhle:

<?php
ob_start();
/*
* Tetno soubor zjisti zda se takovy uzivatel s takovym heslem v databazi nachazi.
* Pokud ano, do sessions o tom ulozime informaci.
* Jinak se samozrejme presmerujeme zpet a dame uzivateli vedet, ze zadal spatne udaje
*/
session_start(); // Budeme pracovat se session, musíme je nastartovat.
if(isset($_POST['nick'])){
  require 'config.php';
  $name = $_POST['nick'];
  $pass = ($_POST['heslo']);
    $query = MySQL_Query("SELECT * FROM `admin` WHERE `nick` = '$name' and `heslo` = '$pass'") or die (mysql_error());
    // Vybereme uživatele se zadaným jménem a heslem
      $Vysledek = mysql_fetch_array($query);
        $Vysledek['nick'];
        if($Vysledek['nick']){ // pokud tato proměnná obsahuje data, bylo zadané správné jméno a heslo
          // Do sessions si uložíme pár informací o přihlášeném
          $_SESSION['prihlasen'] = 1;
          $_SESSION['nick'] = $Vysledek['nick'];
          $_SESSION['id'] = $Vysledek['id'];
          $_SESSION['Userpohlavi'] = $Vysledek['pohlavi'];
          $_SESSION['UserMail'] = $Vysledek['mail'];
          $bl="administrace-ok.php";
          header("location: $bl"); // přesměrujeme na index
        }else{
          $bl="chyba=6.php";
          header("location: $bl"); // špatně zadané údaje
          // echo "Zadal jsi špatné údaje";
        }
    mysql_free_result($query);
}else{
  echo "Zde nic není.";
}
ob_end_flush();
?>



Radek 8 je:
session_start();

radek 25 je:
header("location: $bl");

nevim kde muze byt chyba
pito
Profil
a v souboru admin.php kde mam formular mam
<?php
session_start(); // startujeme session. Všimněte si, že tento kód je úplně nahoře před jakýmkolik výstupem.
?>
Werewolf
Profil
pito
Přesuň 8. řádek před ten komentář, celý ten skript přesuň na úplný začátek toho souboru, pokud tam není a pokud je ten soubor v kódování UTF-8, nastav mu, aby byl bez BOM.

A místo 25. řádku dej kód:
echo("<script>locartion.assign('".$bl."');");


A odstranil jsi všechny problémy, které by to mohly způsobit.
pito
Profil
opet chyba.Zmenil jsem to jak jsi rikal.

<?php
ob_start();
session_start(); // Budeme pracovat se session, musíme je nastartovat.
/*
* Tetno soubor zjisti zda se takovy uzivatel s takovym heslem v databazi nachazi.
* Pokud ano, do sessions o tom ulozime informaci.
* Jinak se samozrejme presmerujeme zpet a dame uzivateli vedet, ze zadal spatne udaje
*/
if(isset($_POST['nick'])){
  require 'config.php';
  $name = $_POST['nick'];
  $pass = ($_POST['heslo']);
    $query = MySQL_Query("SELECT * FROM `admin` WHERE `nick` = '$name' and `heslo` = '$pass'") or die (mysql_error());
    // Vybereme uživatele se zadaným jménem a heslem
      $Vysledek = mysql_fetch_array($query);
        $Vysledek['nick'];
        if($Vysledek['nick']){ // pokud tato proměnná obsahuje data, bylo zadané správné jméno a heslo
          // Do sessions si uložíme pár informací o přihlášeném
          $_SESSION['prihlasen'] = 1;
          $_SESSION['nick'] = $Vysledek['nick'];
          $_SESSION['id'] = $Vysledek['id'];
          $_SESSION['Userpohlavi'] = $Vysledek['pohlavi'];
          $_SESSION['UserMail'] = $Vysledek['mail'];
          $bl="administrace-ok.php";
          echo("<script>locartion.assign('".$bl."');");
        }else{
          $bl="chyba=6.php";
          header("location: $bl"); // špatně zadané údaje
          // echo "Zadal jsi špatné údaje";
        }
    mysql_free_result($query);
}else{
  echo "Zde nic není.";
}
ob_end_flush();
?>


chyba je:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/www/stolarskeprace.cz/www/admin_zpracuj.php:1) in /home/www/stolarskeprace.cz/www/admin_zpracuj.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/stolarskeprace.cz/www/admin_zpracuj.php:1) in /home/www/stolarskeprace.cz/www/admin_zpracuj.php on line 3


radek 3:
session_start(); // Budeme pracovat se session, musíme je nastartovat.
Mike8748
Profil
output started at /home/www/stolarskeprace.cz/www/admin_zpracuj.php:1

vystup na radce 1. to na 99.9% znamena jediny, ze pouzivas kodovani UTF, a v souboru jsou znaky BOM, tedy signatura urcujici konkretni kodovani utf. takze si v editoru vypni vkladani signatury BOM, soubory znova uloz/uploaduj a bude po problemu
pito
Profil
nechapu kde to mam vypnout.Delam to v poznamkovym bloku :)
Mastodont
Profil
No tak tam to nevypneš.. Přeejdi na jiný editor.
pito
Profil
pouzivam sem tam i pspad ale nevim kde to tam vypnu
Mike8748
Profil
pito
nastaveni editoru, tam je zaskrtavatko "Vkladat BOM" nebo neco takovyho
pito
Profil
nastaveni jsem nasel ale neni to tam.A nejde zmenit kodovani misto utf bych mel cp1250
Mike8748
Profil
pito
no pokud zmenis kodovani souboru tak to by problem "vyresilo" protoze win1250 zadny BOM nema. ovsem nastanou ti dalsi problemy s kodovanim databaze,...

Pspad, nastaveni programu, Program, cast 2, checkbox Ident. byty v kodovani UTF8
Mastodont
Profil
To by musel být opravdu pravěký PSPad, aby tam nešlo změnit kódování.
pito
Profil
nejak to neresi.Je to porad stejny.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: