Forum Katalogu Ciekawych Stron Strona Główna  Forum Katalogu Ciekawych Stron Strona Główna  
 
FAQ  FAQ   Szukaj  Szukaj   Użytkownicy  Użytkownicy   Ranking systemów  Ranking systemów   Grupy  Grupy  
 
Rejestracja  ::  Zaloguj Zaloguj się, by sprawdzić wiadomości
 
Forum Katalogu Ciekawych Stron Strona Główna » PHP / MySQL oraz inne bazy danych » Problem z session_start();

Napisz nowy temat  Odpowiedz do tematu
 Problem z session_start(); « Zobacz poprzedni temat :: Zobacz następny temat » 
Autor Wiadomość
MacPain
PostWysłany: 04 Kwi 2006, 15:31    Temat postu: Problem z session_start(); Odpowiedz z cytatem Zacytuj zaznaczone

Gaduła
Gaduła

Dołączył: 18 Paź 2005
Posty: 245


kod wyglada nastepujaco
Kod:
<?php
session_start();
$nazwa_uz = $_POST['nazwa_uz'];
$haslo = $_POST['haslo'];
if(isset($_POST['nazwa_uz']) && isset($_POST['haslo']))
{
$mysql=mysql_connect('localhost','root','krasnal');
$wybrana=mysql_select_db("nowa");
$zapytanie="select * from uzytkownik where nazwa_uz='$nazwa_uz' and haslo='$haslo'";
$wynik=mysql_query($zapytanie);
if (mysql_num_rows($wynik) != 0)
{
$_SESSION['prawid_uzyt'] = $nazwa_uz;
echo "<a href='dalej.php'>Back</a>";

else
{
echo"niepomyślne logowanie";
exit;
}     
}
echo "<a href='dalej.php'>Next</a>";
?>

Problem w tym ze wyrzuca mi blad typu

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\usr\krasnal\www\bbbbbbb\loguj.php:1) in c:\usr\krasnal\www\bbbbbbb\loguj.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\bbbbbbb\loguj.php:1) in c:\usr\krasnal\www\bbbbbbb\loguj.php on line 2
BackNext

Za wszelka pomoc z gory thx.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
KCS
Wysłany:     Temat postu: Reklama w KCS







Powrót do góry
jachu
PostWysłany: 04 Kwi 2006, 15:37    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 04 Kwi 2006
Posty: 10

Skąd: Bydgoszcz

Nie bede sie zaglebia w szczegóły dlaczego tak Wink
Ale wystarczy wkleic na poczatku kodu
<? ob_start(); ?>
a na koncu
<? ob_end_flush(); ?>


PS Chyba nie wkleiles calego kodu.. albo powiązań.. ale powyższa metoda napewno zadziała ..
_________________
www.katalog.gsm-java.pl & www.katalog.wtie.pl & www.qlwebik.info & www.jthost.be
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
MacPain
PostWysłany: 04 Kwi 2006, 16:04    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Gaduła
Gaduła

Dołączył: 18 Paź 2005
Posty: 245


Wiec zapytam Smile dalaczego tak no i czy powiazania beda widoczne jezeli odniose sie do nastepnej zakladki w ktorej sprawdzam czy sesja isset ???
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
MacPain
PostWysłany: 04 Kwi 2006, 16:18    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Gaduła
Gaduła

Dołączył: 18 Paź 2005
Posty: 245


Zrobilem tak i dziala jak ja nie lubie takich sytuacji:
logowanie:
Kod:
<?php

session_start();

$nazwa_uz = $_POST['nazwa_uz'];
$haslo = $_POST['haslo'];

if ($nazwa_uz && $haslo)

{
$mysql=mysql_connect('localhost','root','krasnal');
$wybrana=mysql_select_db("nowa");
$zapytanie="select * from uzytkownik where nazwa_uz='$nazwa_uz' and haslo='$haslo'";
$wynik=mysql_query($zapytanie);
if (mysql_num_rows($wynik) != 0)
{
$_SESSION['prawid_uzyt'] = $nazwa_uz;
echo "<a href='dalej.php'>Back</a>";

else
{
echo"niepomyślne logowanie";
exit;
}     
}
echo "Logowanie nie powiodło się";
?>

i odwolanie sie do nastepnej zakladki :
Kod:
<?php
 session_start();
  echo '<h1>Część członkowska</h1>';

  if(isset($_SESSION['prawid_uzyt']))
  {
    echo '<p>Użytkownik zalogowany jako '.$_SESSION['prawid_uzyt'].'</p>';
    echo '<p>Oto zawartość dostępna tylko dla członków</p>';
  }
  else
  {
    echo '<p>Użytkownik niezalogowany.</p>';
    echo '<p>Tylko zalogowani użytkownicy mogą oglądać tę stronę.</p>';
  }

  echo '<a href="uwierz_glowny.php">Powrót do strony głównej</a>';
?>

Hmmm wydaj mi sie ze dzialajac na krasnalserv i robiac strony z kodowanie utf-8 session_start(); nie dziala jezeli znowu zrobimy w ANSI to dziala dziwna sprawa Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
MacPain
PostWysłany: 04 Kwi 2006, 16:22    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Gaduła
Gaduła

Dołączył: 18 Paź 2005
Posty: 245


Czytalem gdzies na grupach ze utf-8 wstawia dodatkowe puste znaki i sesja nie moze byc wykonana bo przesyla pusty ciag znakow moge sie mylic Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
Said
PostWysłany: 07 Kwi 2006, 09:45    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Bywalec
Bywalec

Dołączył: 04 Kwi 2006
Posty: 160


$nazwa_uz = $_POST['nazwa_uz'];
$haslo = $_POST['haslo'];

a co sie dzieje jak ktos nie poda hasla albo nazwy uzytkownika ??

conajmniej powinno byc tak (moim zdaniem Wink ) :
if ( isSet( $_POST['nazwa_uz'] ) && !empty( $_POST['nazwa_uz']) )
$nazwa_uz = $_POST['nazwa_uz'];
else
die('Podaj login!');

i tak samo dla hasla
_________________
Graj online w gry flash z serii super mario. Dobra zabawa gwarantowana!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Said
PostWysłany: 07 Kwi 2006, 09:48    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Bywalec
Bywalec

Dołączył: 04 Kwi 2006
Posty: 160


hmm, zmienne odebrane z formularza dodajesz bezposrednio (bez sprawdzenia) do skryptu moze Ci sie stac krzywda - czy slyszales o SQL injection ?
_________________
Graj online w gry flash z serii super mario. Dobra zabawa gwarantowana!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
MacPain
PostWysłany: 07 Kwi 2006, 09:53    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Gaduła
Gaduła

Dołączył: 18 Paź 2005
Posty: 245


to byla stara werja nowa wyglada juz tak:
Kod:
<?php

session_start();

if (isset($POST['$nazwa_uz']) && isset($POST['haslo']))
$nazwa_uz = $_POST['nazwa_uz'];
$haslo = $_POST['haslo'];
{
$mysql=mysql_connect('localhost','root','krasnal');
$wybrana=mysql_select_db("nowa");
$zapytanie="select * from uzytkownik where nazwa_uz='$nazwa_uz' and haslo='$haslo'";
$wynik=mysql_query($zapytanie);
if (mysql_num_rows($wynik) != 0)
{
$_SESSION['prawid_uzyt'] = $nazwa_uz;

else
{
echo"niepomyślne logowanie";
exit;
}     
}
  if (isset($_SESSION['prawid_uzyt']))
  {
      echo 'Zalogowano jako '.stripslashes($_SESSION['prawid_uzyt']).'.';
      echo '<br />';
      echo "<a href='dalej2.php'>Dalej</a>";

  }
  else
  {
     echo "nie jest zalogowany";
     exit;
  } 
?>

Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
Said
PostWysłany: 07 Kwi 2006, 10:02    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Bywalec
Bywalec

Dołączył: 04 Kwi 2006
Posty: 160


nadal sa bledy o ktorych pisalem wyzej:
1. sprawdzasz czy zmienne zostaly ustawione natomiast nie sprawdzasz czy sa puste - przynajmniej jesli chodzi o login to powinienes dokonac takiego sprawdzenia - hasla nie musisz tylko pod warunkiem ze dopuszczasz wystepowanie pustych hasel.

isSet() sprawdza tylko czy taka zmienna gdzies tam wystapila - dzieki temu nie bedzie bledu - brak indeksu w tablicy $_POST
empty() - sprawdza czy zmienna nie jest czasami pusta
generalnie to powinno sie dokonac sprawdzenia jakiego typu przyszly dane
kozystajac np. z is_numeric()...etc

2. dane odbierasz z wlasciwego miejsca natomiast nie sprawdzasz co w nich przyszlo (narazajac sie na sql injection) - powinienes przynajmniej uzyc htmlspecialchars( $_POST['zmienna'] )
_________________
Graj online w gry flash z serii super mario. Dobra zabawa gwarantowana!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Said
PostWysłany: 07 Kwi 2006, 10:05    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Bywalec
Bywalec

Dołączył: 04 Kwi 2006
Posty: 160


no skoro juz sie tak czepiam Very Happy
to jeszcze jedna podpowiedz - lepiej jest korzystac z pojedynczych cudzyslowow np $sql = 'Select * FROM ' . $tab_name . ' WHERE ...';
interpreter php traktuje tekst zawarty w pojedynczych cudzyslowach jako
string i opuszcza - w podwojnych sprawdza w poszukiwaniu zmiennych - bez dziala szybciej - no i kozystaj z podpowiedzi wyzej czyli ob_start() - ob_end_flush() na koncu skryptu
_________________
Graj online w gry flash z serii super mario. Dobra zabawa gwarantowana!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
MacPain
PostWysłany: 07 Kwi 2006, 17:57    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Gaduła
Gaduła

Dołączył: 18 Paź 2005
Posty: 245


Zrobilem tak kwerendy nie ruszam dziekuje za porady BIG THX Smile kod wyglada tak:
Kod:
<?php session_start(); ?>
<html><body bgcolor="CAE2F0">
<?php
if ( isSet( $_POST['nazwa_uz'] ) && !empty( $_POST['nazwa_uz']) )
$nazwa_uz = htmlspecialchars($_POST['nazwa_uz']);
if ( isSet( $_POST['haslo'] ) && !empty( $_POST['haslo']) )
$haslo = htmlspecialchars($_POST['haslo']);
{
$mysql=mysql_connect('localhost','root','krasnal');
$wybrana=mysql_select_db("nowa");
$zapytanie="select * from uzytkownik where nazwa_uz='$nazwa_uz' and haslo=md5('$haslo')";
$wynik=mysql_query($zapytanie);
if (mysql_num_rows($wynik) != 0)
{
$_SESSION['prawid_uzyt'] = $nazwa_uz;

else
{
     echo '<center>';
     echo 'Nie jestes zalogowany';
     echo '<br><br>';
     echo '<a href="index.php">Zalogoj sie</a>';   
     echo '</center>';
     exit;}     
}
  if (isset($_SESSION['prawid_uzyt']))
  {
      echo '<center>';
      echo 'Zalogowano jako '.stripslashes($_SESSION['prawid_uzyt']).'.';
      echo '<br><br>
      <a href="wyswietl.php">Wyswietl wszystkie</a>     
      <a href="dodaj.php">Dodaj nowe ogloszenie</a>     
      <a href="zmien.php">Zmiana ogloszenia</a>     
      <a href="usun.php">Usuwanie ogloszenia</a>     
      <a href="wylogoj.php">Logout</a>
      ';
      echo '</center>';
  }
  else
  {
     echo '<center>';
     echo 'Nie jestes zalogowany';
     echo '<br><br>';
     echo '<a href="index.php">Zalogoj sie</a>';   
     echo '</center>';
     exit;
  } 
?>
</body></html>
i o co chodzi z ob_start(); czytam w manualu ale moj angielski nie jest perfekt ??
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
Wyświetl posty z ostatnich:   
Napisz nowy temat  Odpowiedz do tematu Strona 1 z 1


Forum Katalogu Ciekawych Stron Strona Główna » PHP / MySQL oraz inne bazy danych » Problem z session_start();
Skocz do:  



Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


katalog stron | forum
Powered by phpBB © 2005 phpBB Group