Komputer Świat Ekspert - Forum: [PHP/MySQL/HTML] Przesyłanie danych z formularza do bazy danych - Komputer Świat Ekspert - Forum

Skocz do zawartości

  • 2 stron +
  • 1
  • 2

[PHP/MySQL/HTML] Przesyłanie danych z formularza do bazy danych

#31 Użytkownik nie jest zalogowany   OldShaterhan 

  • Początkujący Uczestnik
  • Pip
  • Grupa: Czytelnicy
  • Postów 172
  • Rejestracja: 22-czerwiec 09

Napisano 13 listopad 2011, 17:37

Przepraszam, że tak późno, ale byłem zajęty.
https://rapidshare.c...191/helping.zip

I dzięki wielkie za pomoc jaką w ogóle dajesz ;)
Jeżeli możesz, spróbuj odpowiedzieć na moje pytanie w tym temacie.
Dołączona grafika
0

#32 Użytkownik nie jest zalogowany   Ferrari 

  • Tajny agent USB
  • Grupa: Moderatorzy
  • Postów 3531
  • Rejestracja: 21-marzec 04

Napisano 13 listopad 2011, 20:38

Plik dolacz.php:
Linia 16: Niepotrzebny nawias otwierający (
Linia 17: A gdzie masz w formularzu pole o nazwie 'pwd2'?
Linia 18: Obecność pól typu 'checkbox' najlepiej sprawdzać instrukcją isset($_POST['pole'])
Linia 19: A wtedy wystarczy napisać if($reg) chociaż ta linia jest zbędna
Linia 21: Porównujesz hasło niezakodowane z zakodowanym - nigdy się nie zgodzi!
Linia 24: Wrzucasz hasło niezakodowane do bazy danych - niezalecane!

Plik admin/kartanw.php
Linia 3: Zmień zapytanie na: SELECT * FROM `kwas` WHERE `card`=0
Jeśli nie pomoże, usuń warunek WHERE.
Coś się wyświetla? To znaczy, że nie ma rekordów z wartością 0 w polu card.

Plik db.php
Dopisz na końcu
mysql_query('SET NAMES "utf8"');

Plik punkty.php
Masz błędy w zapytaniu. Popraw:
mysql_query("SELECT `pkt`, * FROM `kwas` WHERE `NrKlienta`='$NrKlienta' AND `pwd`='$pwd'")
Lepiej zabezpiecz skrypt przed SQL Injection :)
Przygoda w Biurowej Dzielnicy - TODA :: Przyszłość sieci Webb i informatyzacja Polski
There is a road to freedom. Its milestones are Obedience, Endeavor, Honesty, Order, Cleanliness, Sobriety, Truthfulness, Sacrifice, and love of the Fatherland.
0

#33 Użytkownik nie jest zalogowany   OldShaterhan 

  • Początkujący Uczestnik
  • Pip
  • Grupa: Czytelnicy
  • Postów 172
  • Rejestracja: 22-czerwiec 09

Napisano 14 listopad 2011, 06:53

Plik dolacz.php
Okazało się, że ten plik jest inny niż na serwerze, dlatego jest kilka błędów.
Linia 16: Poprawiłem
Linia 17: Pole 'pwd2' to powtórz hasło.
Linie 18 i 19: To na razie zostawię.
Linia 21: Na serwerze jest poprawny, ale tu już dostosowałem(z kodowaniami).
Linia 24: j/w.


Plik admin/kartanw.php
Zmieniłem kod, wyświetla się, ale z osobną tabelą dla każdego wyniku(to wiem jak poprawić). I z rozjechanymi znakami.
Dodałem header(...);

Plik db.php
Dodane

Plik punkty.php
Zmieniłem, ale nadal twierdzi, że złe hasło i/lub nr klienta...
Jeżeli możesz, spróbuj odpowiedzieć na moje pytanie w tym temacie.
Dołączona grafika
0

#34 Użytkownik nie jest zalogowany   OldShaterhan 

  • Początkujący Uczestnik
  • Pip
  • Grupa: Czytelnicy
  • Postów 172
  • Rejestracja: 22-czerwiec 09

Napisano 17 listopad 2011, 15:41

Ferrari widzisz może jeszcze jakiś błąd w tym punkty.php? Bo za Chiny Ludowe nie widzę tam błędu, a twierdzi, że złe hasło...
Znaki działają także już w 100%.
Jeżeli możesz, spróbuj odpowiedzieć na moje pytanie w tym temacie.
Dołączona grafika
0

#35 Użytkownik nie jest zalogowany   Ferrari 

  • Tajny agent USB
  • Grupa: Moderatorzy
  • Postów 3531
  • Rejestracja: 21-marzec 04

Napisano 17 listopad 2011, 22:42

Wrzuć aktualną zawartość pliku punkty.php na forum.

Spróbuj w linii 6 dodać:
error_reporting(E_ALL);
var_dump($_POST);
Jeżeli są błędy, PHP powinien je wyświetlić. Zobaczysz też zawartość tablicy $_POST.
Przygoda w Biurowej Dzielnicy - TODA :: Przyszłość sieci Webb i informatyzacja Polski
There is a road to freedom. Its milestones are Obedience, Endeavor, Honesty, Order, Cleanliness, Sobriety, Truthfulness, Sacrifice, and love of the Fatherland.
0

#36 Użytkownik nie jest zalogowany   OldShaterhan 

  • Początkujący Uczestnik
  • Pip
  • Grupa: Czytelnicy
  • Postów 172
  • Rejestracja: 22-czerwiec 09

Napisano 19 listopad 2011, 17:23

Aktualny plik punkty.php:
<?php
header('Content-type: text/html; charset=utf-8');
include 'db.php';
$NrKlienta = $_POST['NrKlienta'];
$pwd = md5($_POST['pwd']);

error_reporting(E_ALL);
var_dump($_POST);

$spr = mysql_query("SELECT 'pkt', * FROM `kwas` WHERE `NrKlienta`='$NrKlienta' AND `pwd`='$pwd'")
or die("Zły numer klienta i/lub hasło");
while($pkt=mysql_fetch_array($spr)){
echo("Twoja liczba punktów: ".$pkt['pkt']);}


?>

Zawartość tablicy wyświetla, a błędów już nie:

Cytat

array(2) { ["NrKlienta"]=> string(13) "7263261846944" ["pwd"]=> string(9) "h.kiepska" } Zły numer klienta i/lub hasło

Jeżeli możesz, spróbuj odpowiedzieć na moje pytanie w tym temacie.
Dołączona grafika
0

#37 Użytkownik nie jest zalogowany   Ferrari 

  • Tajny agent USB
  • Grupa: Moderatorzy
  • Postów 3531
  • Rejestracja: 21-marzec 04

Napisano 19 listopad 2011, 17:35

Zamień w zapytaniu 'pkt' na `pkt`. Ważna uwaga:

"pole", 'pole' - zwróci po prostu tekst
`pole`, pole - odnosi się do kolumny o nazwie pole

Nazwy kolumn bezpieczniej podawać w `pole`, bo nie wystąpi konflikt ze słowami kluczowymi.

Jeżeli utworzysz kolumnę o nazwie desc i napiszesz SELECT desc FROM tabela wyskoczy błąd, bo desc jest słowem kluczowym. Natomiast SELECT `desc` FROM tabela zadziała. Patrz: Słowa kluczowe w MySQL

Jeżeli potrzebujesz tylko pola `pkt`, po co wyciągasz resztę? Usuń przecinek i gwiazdkę. Coś jeszcze jest nie tak. Sprawdź, czy do tabeli zapisujesz zakodowane hasła, czy jawne (podglądnij w phpMyAdmin).
Przygoda w Biurowej Dzielnicy - TODA :: Przyszłość sieci Webb i informatyzacja Polski
There is a road to freedom. Its milestones are Obedience, Endeavor, Honesty, Order, Cleanliness, Sobriety, Truthfulness, Sacrifice, and love of the Fatherland.
0

#38 Użytkownik nie jest zalogowany   OldShaterhan 

  • Początkujący Uczestnik
  • Pip
  • Grupa: Czytelnicy
  • Postów 172
  • Rejestracja: 22-czerwiec 09

Napisano 19 listopad 2011, 18:26

Hasła są zakodowane. Co ciekawe po tej zamianie zaczęło działać, dzięki :)
Mam jeszcze jedno pytanie potrzebuję zrobić coś takiego, żeby po kliknięciu wyślij kartę wysyłało kartę dla danego klienta. Tylko jak wyciągnąć to z tego pliku? Zrobić jakiś ukryty input czy jak? Nie mam pomysłu. Wiem, że jeszcze jest opcja, abym zrobił checkbox i dla zaznaczonych po kliknięciu wyślij kartę aktualizował wartości karty. Tylko podkreślam - jak przekazać tablicy _POST 2 wartości - Nr Klienta i nową wartość "card"?
Skrypt admin/kartanw.php:
<?php
header('Content-type: text/html; charset=utf-8');
include '../db.php';
$result = mysql_query("SELECT * FROM `kwas` WHERE `card`=0");

while($r=mysql_fetch_array($result)) {
	echo "<table cellpadding=\"2\" border=\"1\">
	  <tr><td>Nr Klienta</td>
	  <td>Imię</td>
	  <td>Nazwisko</td>
	  <td>Data ur.</td>
	  <td>Ulica</td>
	  <td>Nr domu</td>
	  <td>Kod pocz.</td>
	  <td>Miasto</td>
	  <td>Telefon</td>
	  <td>E-mail</td>
	  <td>Karta</td>"; 
        echo "<tr>"; 
        echo "<td>".$r['NrKlienta']."</td>"; 
        echo "<td>".$r['imie']."</td>"; 
        echo "<td>".$r['nazwisko']."</td>"; 
        echo "<td>".$r['dataur']."</td>"; 
        echo "<td>".$r['ulica']."</td>"; 
        echo "<td>".$r['nr']."</td>"; 
        echo "<td>".$r['kod']."</td>"; 
        echo "<td>".$r['miasto']."</td>"; 
        echo "<td>".$r['telefon']."</td>"; 
        echo "<td>".$r['email']."</td>"; 
		echo "<td>".$r['card']."</td>"; 
        echo '<td> 
       <form action="wyslijkarte.php" method="post" enctype="text/plain">
       <input type="button" value="Wyślij kartę">
       </form></td>'; 
        echo "</tr>"; 
     
    echo "</table>"; 
	}
?>

PS Jak zrobić tłumaczenie 0 - nie, 1 - tak?
Jeżeli możesz, spróbuj odpowiedzieć na moje pytanie w tym temacie.
Dołączona grafika
0

#39 Użytkownik nie jest zalogowany   OldShaterhan 

  • Początkujący Uczestnik
  • Pip
  • Grupa: Czytelnicy
  • Postów 172
  • Rejestracja: 22-czerwiec 09

Napisano 23 listopad 2011, 22:04

Udajmy, że tych pytań nie było. Mam jednak problem - kod zmieniłem na:
<?php
header('Content-type: text/html; charset=utf-8');
include '../db.php';
$result = mysql_query("SELECT * FROM `kwas` WHERE `card`=0");

while($r=mysql_fetch_array($result)) {
	echo "<table cellpadding=\"2\" border=\"1\">
	  <tr><td>Nr Klienta</td>
	  <td>Imię</td>
	  <td>Nazwisko</td>
	  <td>Data ur.</td>
	  <td>Ulica</td>
	  <td>Nr domu</td>
	  <td>Kod pocz.</td>
	  <td>Miasto</td>
	  <td>Telefon</td>
	  <td>E-mail</td>
	  <td>Karta</td>"; 
        echo "<tr>"; 
        echo "<td>".$r['NrKlienta']."</td>"; 
        echo "<td>".$r['imie']."</td>"; 
        echo "<td>".$r['nazwisko']."</td>"; 
        echo "<td>".$r['dataur']."</td>"; 
        echo "<td>".$r['ulica']."</td>"; 
        echo "<td>".$r['nr']."</td>"; 
        echo "<td>".$r['kod']."</td>"; 
        echo "<td>".$r['miasto']."</td>"; 
        echo "<td>".$r['telefon']."</td>"; 
        echo "<td>".$r['email']."</td>"; 
		echo "<td>".$r['card']."</td>"; 
        echo '<td> 
       <form action="wyslijkarte.php" method="post" enctype="text/plain">
	   <input type="hidden" value='.$r['NrKlienta'].'>
       <input type="button" value="Wyślij kartę">
       </form></td>'; 
        echo "</tr>"; 
     
    echo "</table>"; 
	}
?>

Niestety tabela się rozsypała - znów mam osobną tabelę dla każdego wyniku. Wszystko działało, dopóki w input hidden nie zmieniłem kodu. Nie działa także naciśnięcie na Wyślij kartę. Mógłbyś sprawdzić? wyslijkarte.php
<?php
$NrKlienta=$_POST['NrKlienta'];
include '../db.php';
$dolacz = mysql_query("UPDATE `kwas` ('card') VALUES ('1') WHERE `NrKlienta`=$NrKlienta")
or die("Wystąpił problem z wysłaniem karty");
?>

Strony były już oceniane, ale chcę ją dalej rozwijać - przygotowuję się do systemu logowania. Mógłbyś mi powiedzieć jak zrobić 2 osobne sesje na jednej witrynie?
Ma być osobna dla admina i osobna dla klientów. Dla admina ma się odbywać w obrębie katalogu admin, dla klientów w całej subdomenie(katalogu) kwas.kasztanek.tk.
Wstępne kody:
login.php
<?php
header('Content-type: text/html; charset=utf-8');
session_start();
if (isset($_POST['NrKlienta']) && isset($_POST['pwd']))
{
//podjęcie próby zalogowania 
 
$NrKlienta=$_POST['NrKlienta'];
$pwd=md5($_POST['pwd']);
 
include 'db.php';
$wynik=mysql_query("select * from `kwas` where `NrKlienta`=$NrKlienta and `pwd`=$pwd"););
echo $zapytanie;
 
if (mysql_num_rows($wynik) > 0)
{
//jezeli uzytkownik jest w bazie nastąpi jego zalogowanie
 
$_SESSION['prawid_uzyt']=$NrKlienta;
 
}
}
 
 
?>
<html>
<body>
<?php include 'menu.html';?>
<center><h2>System logowania do e-systemu<br/>
Programu Lojalnościowego KWAS</h2>
<?
if (isset($_SESSION['prawid_uzyt']))
{
echo 'Uzytkownik zalogowany jako: '.$_SESSION['prawid_uzyt'].'<br />';
echo '<a href= "logout.php">Wylogowanie</a><br />';
}
else 
{
if (isset($iduzytkownika))
{
//jezeli proba logowanie byla nieudana 
echo 'Zalogowanie niemożliwe.<br />';
}
else
{
//nie bylo proby logowania
echo 'Nie jesteś zalogowany/a.<br />';
}
//tworzenie formularza logowania
echo '<form action="login.php" method="post">';
echo '<table>';
echo '<tr><td>Numer Klienta: </td>';
echo '<td><input type="text" name="NrKlienta"</td></tr>';
echo '<tr><td>Hasło: </td>';
echo '<td><input type="password" name="pwd"</td></tr>';
echo '<tr><td colspan="2" align="center">';
echo '<input type="submit" value="Logowanie"></td></tr>';
echo '<input type="hidden" name="email">';
echo '</table></form>';
}
?>
<br>
</center>
</body>
</html>

admin/login.php
<?php
header('Content-type: text/html; charset=utf-8');
session_start();
if (isset($_POST['login']) && isset($_POST['pwd']))
{
//podjęcie próby zalogowania 
 
$login=$_POST['login'];
$pwd=md5($_POST['pwd']);
 
include '../db.php';
$wynik=mysql_query("select * from `kwas` where `login`=$login and `haslo`=$haslo and `zez`=2");
echo $zapytanie;
 
if (mysql_num_rows($wynik) > 0)
{
//jezeli uzytkownik jest w bazie nastąpi jego zalogowanie
 
$_SESSION['prawid_uzyt']=$NrKlienta;
 
}

 
 
?>
<html>
<body>
<?php include '../menu.html';?>
<h2>System logowania do panelu administracyjnego<br/>
Programu Lojalnościowego KWAS</h2>
<?
if (isset($_SESSION['prawid_uzyt']))
{
echo 'Uzytkownik zalogowany jako: '.$_SESSION['prawid_uzyt'].'<br />';
echo '<a href= "logout.php">Wylogowanie</a><br />';
}
else 
{
if (isset($iduzytkownika))
{
//jezeli proba logowanie byla nieudana 
echo 'Zalogowanie niemożliwe.<br />';
}
else
{
//nie bylo proby logowania
echo 'Nie jesteś zalogowany/a.<br />';
}
//tworzenie formularza logowania
echo '<form action="login.php" method="post">';
echo '<table>';
echo '<tr><td>Login: </td>';
echo '<td><input type="text" name="login"</td></tr>';
echo '<tr><td>Hasło: </td>';
echo '<td><input type="password" name="pwd"</td></tr>';
echo '<tr><td colspan="2" align="center">';
echo '<input type="submit" value="Logowanie"></td></tr>';
echo '<input type="hidden" name="email">';
echo '</table></form>';
}
?>
<br>
</body>
</html>

Jeżeli możesz, spróbuj odpowiedzieć na moje pytanie w tym temacie.
Dołączona grafika
0

  • 2 stron +
  • 1
  • 2


Szybka odpowiedź

  

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych


Zmień widoczność shoutboxa Shoutbox

emikyou  : (16 kwiecień 2012 - 13:26) @Ferrari: Na PŁ korzystają z "OpenGL SuperBible: Comprehensive Tutorial and Reference" i "OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1"
wtomczak  : (10 kwiecień 2012 - 09:27) masz problem z komputerem napisz na facebooku na stronie WT654, na pewno pomoże
Maciej :)  : (08 kwiecień 2012 - 09:36) A co do reklam, to mi na operze adBlock coś nie służy, szczególnie z postami bota redakcji :( od kiedy go dali, to zaczęło się walić..
Maciej :)  : (08 kwiecień 2012 - 09:35) Hej witam :) no, jak przestałem kupować Eksperta to wzięli i wstrzymali ;| także nie mam tylko numeru pierwszego i ostatniego :p trochę szkoda, parę lat się było...
neo5628  : (05 kwiecień 2012 - 21:57) Help http://forum.ks-ekspert.pl/topic/140746-problem-z-dzwiekiem/ Proszę
PiKey  : (21 marzec 2012 - 18:24) ludzie, pomóżcie :) http://forum.ks-ekspert.pl/topic/140418-jak-dziala-sprawdzanie-wykonania-zadania-na-stronach-typu-doladujse/
PiKey  : (21 marzec 2012 - 18:24) ds
A:-)Brunuś  : (17 marzec 2012 - 19:17) jest tu ktoś? http://forum.ks-ekspert.pl/topic/140400-firewire-obudowa-do-dysku-25-—-200-zlo/
Ferrari  : (16 marzec 2012 - 11:12) Polećcie dobrą książkę do OpenGL albo kurs w sieci :)
lisz55  : (15 marzec 2012 - 21:44) przez ktore reklamy? nie widze zeby jakies nowe byly
Pretender  : (15 marzec 2012 - 18:22) :/
Pretender  : (15 marzec 2012 - 18:22) az sie nie chce czytac tego forum przez te parszywe reklamy...ale dzidostwo zrobili...
yojo2  : (12 marzec 2012 - 13:26) wchodz na forum przez lynxa :P
Ferrari  : (10 marzec 2012 - 21:21) Jak tu nie korzystać z AdBlocka, kiedy Forum Eksperta wywala reklamę na całą stronę?
lisz55  : (09 marzec 2012 - 21:41) siedze i czytam calkiem niezle ale mogl by ktos wytlumaczyc o co chodzi z dark knightem nie widzialem tego filmu
lisz55  : (09 marzec 2012 - 21:40) to moze rozruszam troche czat http://moviesascode.net/
Pretender  : (06 marzec 2012 - 16:43) rozmowy tak jak Enty prowadziły w powieści Tolkiena :P
dawido90  : (05 marzec 2012 - 15:03) to już poprostu przyzwyczajenie
yojo2  : (04 marzec 2012 - 22:25) mailem przestac tu wchodzic, ale stwierdzilem ze skoro i tak zwykle tu tylko wchodze i wychodze, to wszystko jedno :P
Ferrari  : (04 marzec 2012 - 21:16) Już myślałem, że ruch na forum spada zera, a jednak pochodna zmieniła znak :)
Rozszerz pole shoutboxa