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]
php i MySQL problem
Re: php i MySQL problem
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.
[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.
Re: php i MySQL problem
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:
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.
