php i MySQL problem

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
!ans
Nowy
Nowy
Posty: 131
Rejestracja: wt gru 11, 2007 9:59 pm
Lokalizacja: zza rogu

php i MySQL problem

Post autor: !ans »

Napisałem skrypt. Taki wstęp do rejestracji i pojawił się problem. Jak zmienne z formularz zapisać do bazy danych. Próbowałem już na kilka sposobów i niestety nie działa. Oto skrypt:

[php]<?php
$zapytanie01 = 'use sklep';
$zapytanie02 = "INSERT INTO users VALUES ('$podany_nick', '$podane_haslo', '$podany_email')";
$podany_nick = $_POST['nick'];
$podane_haslo = $_POST['haslo'];
$podany_email = $_POST['email'];
$lacz = mysql_connect( "localhost", "root", "0okm9ijn" );
$pyt02 = mysql_query( $zapytanie01 );
$pyt03 = mysql_query( $zapytanie02 );
$pyt04 = mysql_close( $lacz );
if ( $pyt02 ){
echo '<div style="color: blue;">OK</div><br />';
}
else {
echo 'Error<br />';
}
if ( $pyt03 ){
echo '<div style="color: red;">OK</div><br />';
}
else {
echo 'Error<br />';
}
echo $zapytanie02;
?>
[/php]

Plik z formularzem. Raczej się nie przyda ,ale wstawiam tak jakby coś.

[xml]<html>
<head>

</head>
<body>
<form action="index2.php" method="POST">
Login:<input type="text" name="nick"/><br />
Haslo:<input type="text" name="haslo"/><br />
E-mail:<input type="text" name="email"/><br />
<input type="submit" value="Wyslij"/><br />
<input type="reset" value="Wyczysc"/>
</form>
</body>
</html>[/xml]
Cotter
Nowy
Nowy
Posty: 69
Rejestracja: pn lut 06, 2006 3:11 pm

Re: php i MySQL problem

Post autor: Cotter »

Proponuję na początek sprawdzić czy powiodło się połączenie z bazą danych:

[php]<?php
$lacz = mysql_connect( "localhost", "root", "0okm9ijn" );
if (!$lacz)
{
die('Polaczenie nie udalo sie'.mysql_error());
}
?>[/php]

mysql_error() - to jest bardzo przydatna funkcja ponieważ wyświetla błąd zwrócony przez bazę danych.

Proponuję również dla każdej kwerendy wysyłanej do bazy sprawdzać poprawność:

[php]<?php
$pyt02 = mysql_query( $zapytanie01 ) or die(mysql_error());
?>[/php]

Trzecia sprawa:
nie używaj zmiennych z formularza w ten sposób: $podany_nick. Takie korzystanie zmiennych z reguły jest wyłączone na serwerach, ponieważ może prowadzić do nieprzewidzianego zachowania kodu.

Najlepiej odwoływać się do zmiennych z formularza w następujący sposób:
$_POST['podany_nick']

Ostatnia sprawa:
Przed wstawieniem zmiennych do kwerendy używaj: mysql_real_escape_string() w celu uniknięcia ataków hakerskich typu injection.
!ans
Nowy
Nowy
Posty: 131
Rejestracja: wt gru 11, 2007 9:59 pm
Lokalizacja: zza rogu

Re: php i MySQL problem

Post autor: !ans »

Chodziło o to że do bazy danych zapisywały się nazwy zmiennych lub puste pola. Na szczęści już udało mi się z tym uporać ,ale dzięki za cenne rady.
Nie rozumiem tylko o co chodziło ci w tym miejscu:
Ostatnia sprawa:
Przed wstawieniem zmiennych do kwerendy używaj: mysql_real_escape_string() w celu uniknięcia ataków hakerskich typu injection.
ODPOWIEDZ