Dragonhehe
25.07.2011, 14:03:22
Czesc drodzy forumowicze. Od kilku dni brykam sie z problemem w ponizszym skrypcie
<?php
require("bd.php");
if(isset($_SESSION['SESS_LOGGEDIN']) == TRUE) {
header("Location: " . $config_basedir); }
if($_POST['submit'])
{
$loginsql = "SELECT *FROM loginy WHERE nazwa_uzytkownika = '" .
$_POST['userBox'] . "' AND haslo = '" . $_POST['passBox'] . "'";
if($numrows==1)
{
$_SESSION['SESS_LOGGEDIN'] = 1;
$_SESSION['SESS_USERNAME'] = $loginrow['nazwa_uzytkownika'];
$_SESSION['SESS_USERID'] = $loginrow['id'];
$ordersql = "SELECT id FROM zamownienia WHERE id_klienta = " .
$_SESSION['SESS_USERID'] . " AND status < 2";
$_SESSION['SESS_PRDERNUM'] = $orderrow['id'];
header("Location: " . $config_basedir); }
else
{
header("Location: http://" . $HTTP_HOST . $SCRIPT_NAME . "error=1");
}
}
else
{
require("naglowek.php");
?>
<h1>Logowanie klienta</h1>
W celu zalogowania sie prosze podac nazwe konta uzytkownika i haslo.
Jesli nie dysponuje sie kontem, mozna je za darmo uzyskac. Wystarczy
kliknac odnosnik <a href="rejestrowanie.php">rejestrowanie</a>.
<p>
<?php
if($_GET['error'])
{
echo "<strong>Niepoprawna nazwa uzytkownika / haslo</strong>"; }
?>
</p>
<form action="
<?php echo $SCRIPT_NAME; ?>" method="POST">
<table>
<tr>
<td>Nazwa uzytkowanika</td>
<td><input type="textbox" name="userBox">
</tr>
<tr>
<td>Haslo</td>
<td><input type = "password" name="passBox">
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zaloguj!">
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
W 58 linijce wypisuje mi
CODE
Notice: Undefined index: error in D:\programy\xampp\htdocs\koszyk_zakupow\logowanie.php on line 58
Ma ktos pomysl jak rozwikłac ten problem

Bardzo prosze o szybka odpowiedz.
nospor
25.07.2011, 14:06:07
1) Uzywaj wlaściwego bbcode. W tym przypadku powinno być bbcode PHP
2) Zanim się dobierzesz do jakiegoś indeksu, sprawdzaj czy on istnieje - funkcja isset()
3) Przenoszę.
Dragonhehe
25.07.2011, 14:41:55
Ok, w porzadku. Moglbym dostac troche precyzyjniejszy komunikat dotyczący undefined index - tzn jak rozumiec ten blad.
nospor
25.07.2011, 14:44:29
To znaczy, że odwołujesz sie do indeksu o nazwie error, który nie istnieje. Napisałem, najpierw sprawdź, czy on istnieje, później się do niego odwołuj.
Nie: if($_GET['error'])
a: if(isset($_GET['error']) && $_GET['error'])
Lub w Twoim przypadku można jeszcze krócej:
if(!empty($_GET['error']))
Funkcja empty nie generuje NOTICE, nawet gdy nie ma indeksu
Dragonhehe
25.07.2011, 16:35:30
Wracam ponownie, teraz mam problem z Undefined variable: SCRIPT_NAME na 64 linii.
<?php
require("bd.php");
if(isset($_SESSION['SESS_LOGGEDIN']) == TRUE) {
header("Location: " . $config_basedir); }
if($_POST['submit'])
{
$loginsql = "SELECT *FROM loginy WHERE nazwa_uzytkownika = '" .
$_POST['userBox'] . "' AND haslo = '" . $_POST['passBox'] . "'";
if($numrows==1)
{
$_SESSION['SESS_LOGGEDIN'] = 1;
$_SESSION['SESS_USERNAME'] = $loginrow['nazwa_uzytkownika'];
$_SESSION['SESS_USERID'] = $loginrow['id'];
$ordersql = "SELECT id FROM zamownienia WHERE id_klienta = " .
$_SESSION['SESS_USERID'] . " AND status < 2";
$_SESSION['SESS_PRDERNUM'] = $orderrow['id'];
header("Location: " . $config_basedir); }
else
{
header("Location: http://" . $HTTP_HOST . $SCRIPT_NAME . "error=1");
}
}
else
{
require("naglowek.php");
?>
<h1>Logowanie klienta</h1>
W celu zalogowania sie prosze podac nazwe konta uzytkownika i haslo.
Jesli nie dysponuje sie kontem, mozna je za darmo uzyskac. Wystarczy
kliknac odnosnik <a href="rejestrowanie.php">rejestrowanie</a>.
<p>
<?php
if(isset($_GET['error']) && $_GET['error']) {
echo "<strong>Niepoprawna nazwa uzytkownika / haslo</strong>"; }
?>
<form action="
<?php echo $SCRIPT_NAME; ?>" method="POST">
<table>
<tr>
<td>Nazwa uzytkowanika</td>
<td><input type="textbox" name="userBox">
</tr>
<tr>
<td>Haslo</td>
<td><input type = "password" name="passBox">
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zaloguj!">
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
nospor
25.07.2011, 16:41:03
wywal to:
<?php echo $SCRIPT_NAME; ?>
jest zupełnie niepotrzebne
Dragonhehe
25.07.2011, 17:17:43
Dziekuje ponownie. Tylko teraz gdy sobie klikam na logowanie nie wyswietla mi sie ta strona, tylko
CODE
Zabroniony dostęp!
Nie masz dostępu do żądanego obiektu. Jest on zabezpieczony przed odczytem lub nie może być odczytany przez serwer.
Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem.
Error 403
localhost
2011-07-25 18:16:49
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
nospor
25.07.2011, 17:18:46
pokaz kod po zmianach, bo nie jestem pewien czy wywaliłeś jak trzeba
Dragonhehe
25.07.2011, 17:21:29
<?php
require("bd.php");
if(isset($_SESSION['SESS_LOGGEDIN']) == TRUE) {
header("Location: " . $config_basedir); }
if($_POST['submit'])
{
$loginsql = "SELECT *FROM loginy WHERE nazwa_uzytkownika = '" .
$_POST['userBox'] . "' AND haslo = '" . $_POST['passBox'] . "'";
if($numrows==1)
{
$_SESSION['SESS_LOGGEDIN'] = 1;
$_SESSION['SESS_USERNAME'] = $loginrow['nazwa_uzytkownika'];
$_SESSION['SESS_USERID'] = $loginrow['id'];
$ordersql = "SELECT id FROM zamownienia WHERE id_klienta = " .
$_SESSION['SESS_USERID'] . " AND status < 2";
$_SESSION['SESS_PRDERNUM'] = $orderrow['id'];
header("Location: " . $config_basedir); }
else
{
header("Location: http://" . $HTTP_HOST . $SCRIPT_NAME . "error=1");
}
}
else
{
require("naglowek.php");
?>
<h1>Logowanie klienta</h1>
W celu zalogowania sie prosze podac nazwe konta uzytkownika i haslo.
Jesli nie dysponuje sie kontem, mozna je za darmo uzyskac. Wystarczy
kliknac odnosnik <a href="rejestrowanie.php">rejestrowanie</a>.
<p>
<?php
if(isset($_GET['error']) && $_GET['error']) {
echo "<strong>Niepoprawna nazwa uzytkownika / haslo</strong>"; }
?>
<form action= method="POST">
<table>
<tr>
<td>Nazwa uzytkowanika</td>
<td><input type="textbox" name="userBox">
</tr>
<tr>
<td>Haslo</td>
<td><input type = "password" name="passBox">
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zaloguj!">
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
nospor
25.07.2011, 17:22:57
Przeczytaj jeszcze raz co ci kazałem wywalić, a następnie wywal tylko i wyłącznie to. Prosta porada, nie usuwaj nic więcej od siebie
Dragonhehe
25.07.2011, 17:30:04
Ja dokladnie przeczytalem co mi napisales. Tylko po tym kosmetycznym zabiegu, gdy zostawie "" pojawia sie
CODE
Nie odnaleziono serwera
Firefox nie może odnaleźć serwera error=1.
* Sprawdź, czy adres nie zawiera literówek jak np.
ww.example.com zamiast
www.example.com
* Jeśli nie można otworzyć żadnej strony, należy sprawdzić swoje połączenie sieciowe.
* Jeśli komputer użytkownika jest chroniony przez zaporę sieciową lub serwer proxy, należy sprawdzić, czy program Firefox jest uprawniony do łączenia się z Internetem.
czego nie powinno byc. Bardzo Ci dziękuje za dotychczasową pomoc
nospor
25.07.2011, 17:32:28
dziwne...
Dobra to zamiast:
<?php echo $SCRIPT_NAME; ?>
napisz:
<?php echo $_SERVER['SCRIPT_NAME']; ?>
Dragonhehe
25.07.2011, 17:35:50
Niestety mimo tego zabiegu nic sie nie zmieniło ;/
nospor
25.07.2011, 17:37:51
czyli wyświetla się co? Bo nie wiem na jakim etapie niezmieniania jesteśmy.
Dragonhehe
25.07.2011, 17:39:03
Gdy kliknę przycisk "Zaloguj!" to pojawia się error z Mozilli.
nospor
25.07.2011, 17:39:48
A weź wykomentuj wszystkie kody z:
header(....)
bo mi się wydaje ze formularz teraz jest ok, a ty jak rozumiem dostajesz ten błąd po wysłaniu formularza i być może wywali ci się poprostu na tym header(), które przekierowuje nie wiadomo gdzie.
Dragonhehe
25.07.2011, 17:55:33
bd.php
<?php
require("konfiguracja.php");
?>
dodawanie_do_koszyka.php
<?php
require("bd.php");
require("funkcje.php");
$validid = pf_validate_number($_GET['id'], "redirect", $config_basedir);
$prodsql = "SELECT * FROM produkty WHERE id = " . $validid . ";";
if($numrows ==0)
{
header("Location: " . $config_basedir); }
else
{
if($_POST['submit'])
{
if($_SESSION['SESS_ORDERNUM'])
{
$itemsql = "INSERT INTO pozycje_zamowienia(id_zamowienia, id_produktu, ilosc) VAlues(" . $_SESSION['sess_ordernum'] . ", " . $validid . ", "
. $_POST['amountBox'] . ")";
}
else
{
if($_SESSION['SESS_LOGGEDIN'])
{
$sql = "INSERT INTO zamowienia(id_klienta, zarejestrowany, data) VALUES(" . $_SESSION['SESS_USERID'] . ", 1, NOW())";
$itemsql = "INSERT INTO pozycje_zamowienia(id_zamowienia, id_produktu, ilosc) VALUES("
. $_SESSION['SESS_ORDERNUM'] . ", " . $validid . ", "
. $_POST['amountBox'] . ")";
}
else
{
$sql = "INSERT INTO zamowienia(zarejestrowany, data, sesja)
VALUES("
$itemsql = "INSERT INTO pozycje_zamowienia(id_zamowienia, id_produktu, ilosc) VALUES("
. $_SESSION['SESS_ORDERNUM'] . ", " . $validid . ", "
. $_POST['amountBox'] . ")";
}
}
$totalprice = $prodrow['cena'] * $_POST['amountBox'];
$upsql = "UPDATE zamowienia SET suma = suma+ " . $totalprice . "
WHERE id = " . $_SESSION['SESS_ORDERNUM'] . ";";
header("Location: " . $config_basedir . "wyswietlanie_koszyka.php");
}
else
{
require("naglowek.php");
echo"<form action='dodawanie_do_koszyka.php?id=" . $_GET['id'] . "' method='POST'>";
echo "<table cellpadding='10'>"; if(empty($prodrow['obraz'])) {
echo "<td><img src='./obrazy/brak_obrazu.jpg' width ='50' alt ='" . $prodrow['nazwa'] . "'></td>";
}
else
{
echo "<td><img src='./obrazy/" . $prodrow['obraz'] . "' width='50' alt='" . $prodrow['nazwa'] . "'></td>";
}
echo "<td>" . $prodrow['nazwa'] . "</td>"; echo "<td>Okresl ilosc<select name='amountBox'>";
for($i=1; $i<=100; $i++)
{
echo "<option>" . $i . "</option>"; }
echo "<td><strong>£" . sprintf('%.2f', $prodrow['cena']) . "</strong></td>";
echo "<td><input type ='submit' name='submit' value='Dodaj do koszyka'></td>";
}
}
require("stopka.php");
?>
funkcje.php
<?php
function showcart()
{
if($_SESSION['SESS_ORDERNUM'])
{
if($_SESSION['SESS_LOGGEDIN'])
{
$cutsql = "SELECT id, status from zamowienia WHERE id_klienta = "
. $_SESSION['SESS_USERID'] . " AND status < 2;";
$itemssql = "SELECT produkty.*, pozycje_zamowienia.*,
pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia
WHERE pozycje_zamowienia.id_produktu = produkty.id AND
id_zamowienia = " . $custrow['id'];
}
else{
$custsql = "SELECT id, status from zamowienia WHERE sesja = '" .
$itemssql = "SELECT produkty.*, pozycje_zamowienia.*,
pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia
WHERE pozycje_zamowienia.id_produktu = produkty.id AND
id_zamowienia = " . $custrow['id'];
}
}
else
{
$itemnumrows = 0;
}
if ($itemnumrows == 0)
{
echo "Nie dodano jeszcze niczego do koszyka. "; }
else
{
echo "<table cellpadding = '10'>"; echo "<td><strong>Pozycja</strong></td>"; echo "<td><strong>Ilosc</strong></td>"; echo "<td><strong>Cena jednostkowa</strong></td>"; echo "<td><strong>Cena calkowita</strong></td>";
{
$quantitytotal = $itemsrow['cena'] * $itemsrow ['ilosc'];
if(empty($itemsrow['obraz'])) {
echo "<td><img src='.obrazy/brak_obrazu.jpg' width='50' alt='" . $itemsrow['nazwa'] . "'></td>";
}
else
{
echo "<td><img src ='./obrazy/" . $itemsrow['obraz'] . "' width='50' alt '" . $itemsrow['nazwa'] . "'></td>";
}
echo "<td><img src ='./obrazy/" . $itemsrow['obraz'] . ".jpg' alt '" . $itemsrow['nazwa'] . "' width ='50'></td>";
echo "<td>" . $itemsrow['nazwa'] . "</td>"; echo "<td>" . $itemsrow['ilosc'] . "</td>"; echo "<td><strong>£" . sprintf('%.2f', $itemsrow['cena']) . "</strong></td>";
echo "<td><strong>£" . sprintf('%.2f', $quantitytotal) . "</strong></td>";
echo "<td>[<a href ='" . $config_basedir . "usuwanie.php?id=" . $itemsrow['itemid'] . "'>X</a>]</td>";
$suma = $suma + $quantitytotal;
$totalsql = "UPDATE zamowienia SET suma = " . $suma . "WHERE id =
" . $_SESSION['SESS_ORDERNUM'];
}
echo "<td><strong>£" . sprintf('%.2f', $suma) . "</strong></td>";
echo "<p><a href = 'placenie_adres.php'>Do kasy</a></p>"; }
}
function pf_validate_number($value, $function, $redirect){
if(isset($value) == TRUE) {
$error = 1;
}
if($error ==1){
header("Location: " . $redirect); }
else{
$final = $value;
}
}
else {
if($function == 'redirect'){
header("Location: " . $redirect); }
if($function == "value"){
$final = 0;
}
}
return $final;
}
?>
index.php
<?php
require("naglowek.php");
?>
<h1>Witaj!</h1>
Witaj na stronie internetowej <strong>
<?php echo $config_sitename;?></strong>. Wybierz jedną ze stron, aby rozpocząć przeglądanie
witryny. Dostępnych jest wiele różnych produktów.
<?php
require("stopka.php");
?>
nospor
25.07.2011, 17:57:53
"wykomentuj" nie oznacza "pokaż" tylko oznacza, weź w komentarz...
Jak masz kod:
header('blBLA');
To po wykomentowaniu ten kod ma wyglądać:
//header('blBLA');
Dragonhehe
25.07.2011, 18:02:35
konfiguracja.php
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpassword = "";
$dbdatabase = "koszyk_zakupow";
$config_basedir = "http://localhost/koszyk_zakupow/";
$config_sitename = "Idealna kraina";
?>
logowanie.php
<?php
require("bd.php");
if(isset($_SESSION['SESS_LOGGEDIN']) == TRUE) {
header("Location: " . $config_basedir); }
if($_POST['submit'])
{
$loginsql = "SELECT *FROM loginy WHERE nazwa_uzytkownika = '" .
$_POST['userBox'] . "' AND haslo = '" . $_POST['passBox'] . "'";
if($numrows==1)
{
$_SESSION['SESS_LOGGEDIN'] = 1;
$_SESSION['SESS_USERNAME'] = $loginrow['nazwa_uzytkownika'];
$_SESSION['SESS_USERID'] = $loginrow['id'];
$ordersql = "SELECT id FROM zamownienia WHERE id_klienta = " .
$_SESSION['SESS_USERID'] . " AND status < 2";
$_SESSION['SESS_PRDERNUM'] = $orderrow['id'];
header("Location: " . $config_basedir); }
else
{
header("Location: http://" . $HTTP_HOST . $SCRIPT_NAME . "error=1");
}
}
else
{
require("naglowek.php");
?>
<h1>Logowanie klienta</h1>
W celu zalogowania sie prosze podac nazwe konta uzytkownika i haslo.
Jesli nie dysponuje sie kontem, mozna je za darmo uzyskac. Wystarczy
kliknac odnosnik <a href="rejestrowanie.php">rejestrowanie</a>.
<p>
<?php
if(isset($_GET['error']) && $_GET['error']) {
echo "<strong>Niepoprawna nazwa uzytkownika / haslo</strong>"; }
?>
<form action="
<?php echo $_SERVER['SCRIPT_NAME']; ?> " method="POST">
<table>
<tr>
<td>Nazwa uzytkowanika</td>
<td><input type="textbox" name="userBox">
</tr>
<tr>
<td>Haslo</td>
<td><input type = "password" name="passBox">
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zaloguj!">
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
naglowek.php
<?php
if(isset($_SESSION['SESS_CHANGEID']) == TRUE) {
}
require("konfiguracja.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/loose.dtd">
<head>
<meta http_equiv="content-type" content="text/html; charset=iso-8859-2" />
<title>
<?php echo $config_sitename; ?></title>
<link href="arkusz_stylow.css" rel="stylesheet">
</head>
<body>
<div id="header">
<h1>
<?php echo $config_sitename; ?></h1>
</div>
<div id="menu">
<a href="
<?php echo $config_basedir; ?>">Główna strona</a> -
<a href="
<?php echo $config_basedir;?>wyswietlanie_koszyka.php">Wyswietlanie koszyka/Placenie</a>
</div>
<div id="container">
<div id="bar">
<?php
require("pasek.php");
if(isset($_SESSION['SESS_LOGGEDIN']) == TRUE) {
echo "Zalogowany jako <strong>" . $_SESSION['SESS_USERNAME'] . "</strong> [<a href= '" . $config_basedir .
"wylogowanie.php'>wyloguj</a>";
}
else
{
echo "<a href ='" . $config_basedir . "logowanie.php'>Logowanie</a>";
}
?>
</div>
<div id ="main">
pasek.php
<h1>Kategorie produktow</h1>
<ul>
<?php
echo "<li><a href='".$config_basedir."/produkty.php?id".$catrow['id']."'>".$catrow['nazwa']."</a></li>";
}
?>
</ul>
Tzn mam dac
//header("Location: " . $config_basedir);
zamiast
header("Location: " . $config_basedir);
nospor
25.07.2011, 18:05:18
tak
Dragonhehe
25.07.2011, 18:07:24
Niestety tak samo, error z mozilli. Moze blad jest w jakims innym pliku
nospor
25.07.2011, 18:10:16
Miales wykomentować wszystkie header, zrobiles tak, czy wykomentowales tylko ten jeden co pokazałeś?
Dragonhehe
25.07.2011, 18:21:37
Teraz fajnie tylko w przypadku gdy podam prawidłowy login i haslo z bazy danych. W przeciwnym razie pojawia sie pusta strona z treścią.
CODE
Prawa autorskie © Idealna kraina
Btw. przepisuje kody zywcem z ksiazki "PHP i Mysql" Jono Bacon.
nospor
25.07.2011, 18:24:56
Nie:
header("Location: http://" . $HTTP_HOST . $SCRIPT_NAME .
"error=1");
}
a:
header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] .
"error=1");
}
korzystasz z bardzo starego kodu napisanego w erze register_globals... ble
Dragonhehe
25.07.2011, 18:35:12
Po tej podmianie pojawia sie
CODE
Parse error: syntax error, unexpected T_ELSE in D:\programy\xampp\htdocs\koszyk_zakupow\logowanie.php on line 45
<?php
require("bd.php");
if(isset($_SESSION['SESS_LOGGEDIN']) == TRUE) {
//header("Location: " . $config_basedir);
}
if($_POST['submit'])
{
$loginsql = "SELECT *FROM loginy WHERE nazwa_uzytkownika = '" .
$_POST['userBox'] . "' AND haslo = '" . $_POST['passBox'] . "'";
if($numrows==1)
{
$_SESSION['SESS_LOGGEDIN'] = 1;
$_SESSION['SESS_USERNAME'] = $loginrow['nazwa_uzytkownika'];
$_SESSION['SESS_USERID'] = $loginrow['id'];
$ordersql = "SELECT id FROM zamownienia WHERE id_klienta = " .
$_SESSION['SESS_USERID'] . " AND status < 2";
$_SESSION['SESS_PRDERNUM'] = $orderrow['id'];
header("Location: " . $config_basedir); }
else
{
//header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] . "error=1");
}
else
{
require("naglowek.php");
?>
<h1>Logowanie klienta</h1>
W celu zalogowania sie prosze podac nazwe konta uzytkownika i haslo.
Jesli nie dysponuje sie kontem, mozna je za darmo uzyskac. Wystarczy
kliknac odnosnik <a href="rejestrowanie.php">rejestrowanie</a>.
<p>
<?php
if(isset($_GET['error']) && $_GET['error']) {
echo "<strong>Niepoprawna nazwa uzytkownika / haslo</strong>"; }
?>
<form action="
<?php echo $_SERVER['SCRIPT_NAME']; ?> " method="POST">
<table>
<tr>
<td>Nazwa uzytkowanika</td>
<td><input type="textbox" name="userBox">
</tr>
<tr>
<td>Haslo</td>
<td><input type = "password" name="passBox">
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zaloguj!">
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
Probowalem z usunietymi // przy header, w obu przypadkach taki sam błąd.
nospor
25.07.2011, 18:45:12
cos kasujesz za duzo za kazdym razem....
wczesniej miales:
header("Location: http://" . $HTTP_HOST . $SCRIPT_NAME .
"error=1");
}
}
teraz masz:
header("Location: http://" . $HTTP_HOST . $SCRIPT_NAME .
"error=1");
}
chodzi mi o brak jednego }
Dragonhehe
25.07.2011, 19:50:11
Ponownie dziekuje za pomoc. Teraz jak uzyje poprawnych danych do logowanie działa poprawnie. Gdy uzyje blednych danych nie wyswietla sie strona informujaca o blednych danych tylko
CODE
Nie znaleziono obiektu!
Nie znaleziono żądanego URLa na tym serwerze. Odnośnik na referującej stronie wydaje się być nieprawidłowy lub nieaktualny. Poinformuj autora tej strony o problemie.
Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem.
Error 404
localhost
2011-07-25 20:48:29
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
nospor
25.07.2011, 19:52:54
Widać nadal to przekierowanie masz złe.
Pokaz kod po zmianach
Dragonhehe
25.07.2011, 20:18:54
<?php
require("bd.php");
if(isset($_SESSION['SESS_LOGGEDIN']) == TRUE) {
header("Location: " . $config_basedir); }
if($_POST['submit'])
{
$loginsql = "SELECT *FROM loginy WHERE nazwa_uzytkownika = '" .
$_POST['userBox'] . "' AND haslo = '" . $_POST['passBox'] . "'";
if($numrows==1)
{
$_SESSION['SESS_LOGGEDIN'] = 1;
$_SESSION['SESS_USERNAME'] = $loginrow['nazwa_uzytkownika'];
$_SESSION['SESS_USERID'] = $loginrow['id'];
$ordersql = "SELECT id FROM zamownienia WHERE id_klienta = " .
$_SESSION['SESS_USERID'] . " AND status < 2";
$_SESSION['SESS_PRDERNUM'] = $orderrow['id'];
header("Location: " . $config_basedir); }
else
{
header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] . "error=1"); }
}
else
{
require("naglowek.php");
?>
<h1>Logowanie klienta</h1>
W celu zalogowania sie prosze podac nazwe konta uzytkownika i haslo.
Jesli nie dysponuje sie kontem, mozna je za darmo uzyskac. Wystarczy
kliknac odnosnik <a href="rejestrowanie.php">rejestrowanie</a>.
<p>
<?php
if(isset($_GET['error']) && $_GET['error']) {
echo "<strong>Niepoprawna nazwa uzytkownika / haslo</strong>"; }
?>
<form action="
<?php echo $_SERVER['SCRIPT_NAME']; ?> " method="POST">
<table>
<tr>
<td>Nazwa uzytkowanika</td>
<td><input type="textbox" name="userBox">
</tr>
<tr>
<td>Haslo</td>
<td><input type = "password" name="passBox">
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Zaloguj!">
</tr>
</table>
</form>
<?php
}
require("stopka.php");
?>
nospor
26.07.2011, 07:51:02
nie: header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] . "error=1");
a: header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] . "?error=1");
Dragonhehe
26.07.2011, 09:58:30
Teraz dziala jak trzeba, dziekuje. Teraz inna sprawa: gdy klikam w link napoje lub ciastka
fotokod strony produkty.php
<?php
require("bd.php");
require("funkcje.php");
$validid = pf_validate_number($_GET['id'], "redirect",
$config_basedir);
require("naglowek.php");
$prodcatsql = "SELECT * FROM produkty WHERe id_kat = " . $_GET['id'] .
";";
if($numrows ==0)
{
echo "<h1>Brak produktow</h1>"; echo "Kategoria nie zawiera produktow."; }
else
{
echo "<tab;e cellpadding='10'>";
{
if(empty($prodrow['obraz'])) {
echo "<td><img src='./obrazy/brak_obrazu.jpg' alt='" . $prodrow['nazwa'] . "'></td>";
}
else
{
echo "<td><img src='./obrazy/" . $prodrow['obraz'] . "' alt ='" . $prodrow['nazwa'] . "'></td>"; }
echo "<h2>" . $prodrow['nazwa'] . "</h2>"; echo "<p>" . $prodrow['opis']; echo "<p><strong>NASZA CENA: £" . springf
('%.2f', $prodrow['cena']) . "</strong>";
echo "<p>[<a href='dodawanie_do_koszyka.php?id=" . $prodrow['id'] . "'>kup</a>]";
}
}
require("stopka.php");
?>
to zamiast tego pojawia sie index.php
<?php
require("naglowek.php");
?>
<h1>Witaj!</h1>
Witaj na stronie internetowej <strong>
<?php echo $config_sitename;?></strong>. Wybierz jedną ze stron, aby rozpoczac przegledanie
witryny. Dostępnych jest wiele roznych produktow.
<?php
require("stopka.php");
?>
nospor
26.07.2011, 10:08:09
No ale jak wygląda link do tych ciastek?
Dragonhehe
26.07.2011, 10:11:58
ahh no tak jeszcze wrzucam jeden plik
pasek.php
<h1>Kategorie produktow</h1>
<ul>
<?php
echo "<li><a href='".$config_basedir."/produkty.php?id".$catrow['id']."'>".$catrow['nazwa']."</a></li>";
}
?>
</ul>
nospor
26.07.2011, 10:15:10
A jak wygląda wygenerowany już link?
Dragonhehe
26.07.2011, 10:19:27
Tzn ten z przeglądarki?? Jesli o ten chodzi to przed kliknieciem w ten a po kliknieciu jest taki sam, czyli
CODE
http://localhost/koszyk_zakupow/
a chcialbym zeby był
CODE
http://localhost/koszyk_zakupow/produkty.php?id1
albo
http://localhost/koszyk_zakupow/produkty.php?id2
nospor
26.07.2011, 10:22:06
Gubisz się w podstawach.
Skoro Twój skrypt, wyświetlający daną kategorię korzysta z $_GET['id']
to link nie moze byc taki: id1,id2.
link ma być: id=1, id=2
czyli nie:
echo "<li><a href='".$config_basedir."/produkty.php?id".$catrow['id']."'>".$catrow['nazwa']."</a></li>";
a:
echo "<li><a href='".$config_basedir."/produkty.php?id=".$catrow['id']."'>".$catrow['nazwa']."</a></li>";
nospor
26.07.2011, 11:51:27
Odpowiedź/wskazówki znajdziesz w tym temacie:
Temat: Jak poprawnie zada pytanie
Dragonhehe
26.07.2011, 15:40:01
Mam problem z funkcją mysql_num_rows(), w ponizszych plikach
1. W pliku funkcje.php
CODE
mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\programy\xampp\htdocs\koszyk_zakupow\funkcje.php on line 17
<?php
function showcart()
{
if($_SESSION['SESS_ORDERNUM'])
{
if($_SESSION['SESS_LOGGEDIN'])
{
$cutsql = "SELECT id, status from zamowienia WHERE id_klienta = "
. $_SESSION['SESS_USERID'] . " AND status < 2;";
$itemssql = "SELECT produkty.*, pozycje_zamowienia.*, pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia WHERE pozycje_zamowienia.id_produktu = produkty.id AND id_zamowienia = " . $custrow['id'];
}
2. W pliku wyswietlanie_koszyka.php
CODE
mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\programy\xampp\htdocs\koszyk_zakupow\wyswietlanie_koszyka.php on line 19
<?php
require("naglowek.php");
require("funkcje.php");
echo "<h1>Twoj koszyk zakupow</h1>"; showcart();
if(isset($_SESSION['SESS_ORDERNUM']) == TRUE) {
$sql = "SELECT * FROM pozycje_zamowienia WHERE id_zamowienia = " .
$_SESSION['SESS_ORDERNUM'] . ";";
if($numrows >= 1)
{
echo "<h2><a href ='placenie_adres.php'>Do kasy</a></h2>"; }
}
require("stopka.php");
?>
worek
26.07.2011, 15:59:34
mysql_query($sql, $nazwa polaczenia z bazą danych);
Dragonhehe
26.07.2011, 16:08:50
Dodalem nazwe polaczenia z bazą danych do obu mysql_query, ale nie pomogło.
worek
26.07.2011, 16:13:45
a gdzie masz w tych plikach include'a pliku z parametrami połączenia do bazy danych? A mam w bd. php
Jeżeli używasz parser ci jasno zwraca że jest problem z zapytaniem mysql
Czyli w twoim przypadku musi być $result = mysql_query($sql,$db);
Dragonhehe
26.07.2011, 16:18:03
Nie ma tego
peter13135
26.07.2011, 16:20:37
no tu zrób

widzę, że jesteś początkujący, więc proponuje robić ci w ten sposób zapytania:
if($sql==false)
{
}
//tutaj reszta kodu, czyli wszelkie mysql_fetch_cośtam, mysql_num_rows itd.
Dragonhehe
26.07.2011, 18:51:34
Oki fajnie, teraz gra.
Pojawil sie problem, wypisuje na stronie
CODE
Unknown column 'id_zamowienia' in 'where clause'
kod
<?php
function showcart()
{
if(isset($_SESSION['SESS_ORDERNUM'])) {
if(isset($_SESSION['SESS_LOGGEDIN'])) {
$cutsql = "SELECT id, status from zamowienia WHERE id_klienta = " . $_SESSION['SESS_USERID'] . " AND status < 2;";
$itemssql = "SELECT produkty.*, pozycje_zamowienia.*, pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia WHERE pozycje_zamowienia.id_produktu = produkty.id AND id_zamowienia = " . $custrow['id'];
if($itemsres==false)
{
}
}
else{
$custsql = "SELECT id, status from zamowienia WHERE sesja = '" .
$itemssql = "SELECT produkty.*, pozycje_zamowienia.*,
pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia
WHERE pozycje_zamowienia.id_produktu = produkty.id AND
id_zamowienia = " . $custrow['id'];
}
}
else
{
$itemnumrows = 0;
}
nospor
26.07.2011, 19:00:46
Cytat
Oki fajnie, teraz gra.
Oj....bo się pogniewamy.....
właśnie to, co podał ci poprzednik, było w linku który jak ci podałem parę postów wcześniej a z czym ty miałeś się zapoznać...
Dragonhehe
26.07.2011, 19:35:20
Szukałem w internecie podobnych problemów, mój jest inny. Dlatego tutaj zwracam się o pomoc. Proszę o wskazanie, udzielenie wskazówki.
Z góry dziękuję.
nospor
26.07.2011, 19:38:58
Dostałeś odemnie linka do tematu, z kupą wskazówek.
Nie kazałem ci nic szukać po internecie.
Gdybyś od razu łaskawie zapoznał się z linkiem co ci dałem to błąd:
Unknown column 'id_zamowienia' in 'where clause'
miałbyś już dawno. Ale ty się nie zapoznałeś, nie zastosowałeś i musiało minąć jeszcze parę postów aż ktoś ci to w poście napisał co masz zrobić i dopiero właściwy błąd zobaczyłeś - właśnie do tego zmierzam, żebyś brał bardziej do siebie to co ci podają i zapoznawał się z linkami które dostajesz.
Co do samego błędu:
Unknown column 'id_zamowienia' in 'where clause'
czego nie rozumiesz? Wyraźnie masz napisane że nie zna kolumn id_zamowienia. skoro nie zna, znaczy że takiej kolumny nie ma. a jak nie ma to nie możesz się do niej odwoływać.
Dragonhehe
26.07.2011, 20:15:38
Mam w bazie danych tabelę z tą kolumną, sprawdzalem czy nie mam jakiejs literówki. Obie nazwy są identyczne. Bardzo proszę o poradę.
nospor
26.07.2011, 20:20:23
Skoro baza mówi, że nie ma - to nie ma.
W jakiej tabeli masz to pole?
W tabeli produkty czy w tabeli pozycje_zamowienia ?
Dragonhehe
26.07.2011, 20:25:52
To pole mam w tabeli pozycje_zamowienia
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.