witam,
z php nie jestem dobry, jednak mam parę problemów co do mojej strony, otóż:
1 nius.php
<?php
if(isSet($_SESSION['komunikat']))
echo $_SESSION['komunikat'];
else
echo "Wprowadz nazwę użytkownika i hasło:";
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// jeśli user jest zalogowany
if($_SESSION['logged'])
{
// wyświetlamy userowi jego dane
echo '
Witaj
'.$_SESSION['nick'].'!
'; echo 'WYLOGUJ'; } // jeśli nie jest zalogowany else { echo 'Witaj!'; echo 'Zaloguj się'; } // koniec buforowania ob\_end\_flush(); ?\>[/code] Wprowadz nazwę użytkownika i hasło:
[quote] Notice: Undefined index: logged in C:\xampp\htdocs\www\nius.php on line 92 [/quote]
tj czepia się tego
[code]if($\_SESSION['logged'])
tu chyba chodzi o to, że mam tylko jeden plik, a robię dwie sesje, nie wiem jak to robić, by jak się jest zalogowanym pokazywało tą stronę, a gdy nie inną, bo nie wiem jakie mają być różnice. 2 logowanie
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// połączenie z mysql
mysql_connect('localhost', 'root', '')
or die('Nieudane polaczenie z baza danych...');
// wybór bazy danych
mysql_select_db('gods')
or die('Nie udalo sie wybrac bazy danych...');
// nagłówek
echo '
Logowanie
'; // sprawdzamy czy user jest już zalogowany if($\_SESSION['logged']) echo 'Już jestes zalogowany!'; else { // tworzymy prosty formularz echo ' Nick: Hasło: '; // jeśli zostanie naciśnięty przycisk "Zaloguj" if(isset($\_POST['ok'])) { $nick = trim($\_POST['nick']); $pass = trim($\_POST['pass']); // sprawdzamy czy wszystkie dane zostały podane if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!'; // jeśli tak... else { // filtrujemy dane $nick = strip\_tags( mysql\_real\_escape\_string( HTMLSpecialChars($nick))); $pass = strip\_tags( mysql\_real\_escape\_string( HTMLSpecialChars($pass))); // kodujemy hasło $pass = md5($pass); // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem $result = mysql\_query("SELECT \* FROM users WHERE nick='$nick' AND pass='$pass'"); // jeśli nie istnieje if(mysql\_num\_rows($result)==0) echo 'Niestety podałes niepoprawne dane!'; // jeśli tak... else { // dodajemy wynik zapytania do tablicy $row = mysql\_fetch\_array($result); // ustawianie sesji że użytkownik jest zalogowany $\_SESSION['logged'] = true; // dodawanie do sesji id użytkownika, login $\_SESSION['id'] = $row['id']; $\_SESSION['nick'] = $row['nick']; // wyświetlenie komunikatu oznaczającego poprawne logowanie echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na [stronę główna](nius.php)'; } } } } // rozłączenie z bazą danych mysql\_close(); // koniec buforowania ob\_end\_flush(); ?\>[/code] [quote] Notice: Undefined index: logged in C:\xampp\htdocs\www\login.php on line 64 [/quote] tj [code] if($\_SESSION['logged']) echo 'Już jestes zalogowany!'; tu też chyba o sesje jest problem? 3 Dodawanie rekordów<?php echo '
Dodaj
'; $a = trim($\_REQUEST['a']); $id = trim($\_GET['id']); ?\> imie: opis: powiazanie: \<?php // odbieramy dane z formularza $imie = $\_POST['imie']; $opis = $\_POST['opis']; $powiazanie = $\_POST['powiazanie']; if($imie and $opis and $powiazanie) { // łączymy się z bazą danych $connection = @mysql\_connect('localhost', 'root', '') or die('Brak połączenia z serwerem MySQL'); $db = @mysql\_select\_db('gods', $connection) or die('Nie mogę połączyć się z bazą danych'); // dodajemy rekord do bazy $ins = @mysql\_query("INSERT INTO greccy SET imie='$imie', opis='$opis', powiazanie='$powiazanie'"); if($ins) echo 'Rekord został dodany poprawnie [stronę wcześniej](grecka.php)'; else echo "Błąd nie udało się dodać nowego rekordu"; mysql\_close($connection); } ?\>[/code] [quote] Notice: Undefined index: imie in C:\xampp\htdocs\www\add.php on line 62 Notice: Undefined index: opis in C:\xampp\htdocs\www\add.php on line 63 Notice: Undefined index: powiazanie in C:\xampp\htdocs\www\add.php on line 64 [/quote] tu dot. tego [code]$imie = $\_POST['imie']; $opis = $\_POST['opis']; $powiazanie = $\_POST['powiazanie']; nie mam pojęcia czemu. 4 edycja<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// połączenie z mysql
mysql_connect('localhost', 'root', '')
or die('Nieudane polaczenie z baza danych...');
// wybór bazy danych
mysql_select_db('gods')
or die('Nie udalo sie wybrac bazy danych...');
// nagłówek
echo '
Edycja
'; $a = trim($\_REQUEST['a']); $id = trim($\_GET['id']); mysql\_query('SET character\_set\_connection=utf8\_polish\_ci'); mysql\_query('SET character\_set\_imie=utf8\_polish\_ci'); mysql\_query('SET character\_set\_opis=utf8\_polish\_ci'); mysql\_query('SET character\_set\_powiazanie=utf8\_polish\_ci'); mysql\_query(' SET NAMES utf8 '); if($a == 'edit' and !empty($id)) { /\* zapytanie do tabeli \*/ $wynik = mysql\_query("SELECT \* FROM greccy WHERE id='$id'") or die('Błąd zapytania'); /\* wyświetlamy wyniki, sprawdzamy, czy zapytanie zwróciło wartość większą od 0 \*/ if(mysql\_num\_rows($wynik) \> 0) { /\* odczytujemy zawartość wiersza z tabeli \*/ $r = mysql\_fetch\_assoc($wynik); /\* wczytujemy dane do formularza \*/ /\* w formularz znajdują się ukryte pola "a" z wartością "save" i pole "id" z wartością zmiennej id \*/ echo ' imie: value="'.$r['imie'].'" /\> opis: value="'.$r['opis'].'" /\> powiazanie: value="'.$r['powiazanie'].'" /\> '; } } elseif($a == 'save') { /\* odbieramy zmienne z formularza \*/ $id = $\_POST['id']; $imie = trim($\_POST['imie']); $opis = trim($\_POST['opis']); $powiazanie = trim($\_POST['powiazanie']); /\* uaktualniamy tabelę greccy \*/ mysql\_query("UPDATE greccy SET imie='$imie', opis='$opis', powiazanie='$powiazanie' WHERE id='$id'") or die('Błąd zapytania'); echo 'Dane zostały zaktualizowane [wróć](grecka.php)'; } // rozłączenie z bazą danych mysql\_close(); // koniec buforowania ob\_end\_flush(); ?\>[/code] jeśli edytuje rekord z imieniem, które występuje w bazie danych to: [quote] Notice: Undefined index: id in C:\xampp\htdocs\www\edit.php on line 64 Błąd zapytania [/quote] czyli [code]$id = trim($\_GET['id']);i do tego strona mi się rozjeżdża, natomiast gdy poprawie edytuję to:
czepia się tego samego.
trochę tego jest, ale bardzo ładnie proszę o pomoc i z góry dziękuję