Problem z bazą danych MySQL

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
Monika89
Posty: 2
Rejestracja: 19 lip 2014, 12:10:11
Strona na CBA.pl: do-adopcji.cba.pl
Płeć: Niewybrana
User Agent: Chrome Windows

Problem z bazą danych MySQL

Post autor: Monika89 »

Witam

Mój problem polega na tym iż mimo komunikatu "Rekord został dodany poprawnie" nie widzę tabeli w bazie danych (phpmyadmin).

index.html

Kod: Zaznacz cały

<html>
<head>

</head>
<body>

<form action="index.php" method="post"> 
imię:<br /> 
<input type="text" name="imie" /><br /> 
e-mail:<br /> 
<input type="text" name="email" /><br /> 
<input type="submit" value="dodaj" /> 
</form>

</body>
</html>
index.php

Kod: Zaznacz cały

<?php 
// odbieramy dane z formularza 
$imie = $_POST['imie']; 
$email = $_POST['email']; 


if($imie and $email) { 

$DBhost = "mysql.cba.pl";
$DBusername = "*****";
$DBpassword = "*****";
$DBname = "*****";

$DBconnect = mysql_connect($DBhost, $DBusername, $DBpassword) or die(mysql_error());
mysql_select_db($DBname, $DBconnect);



$sql = "CREATE TABLE  (
imie VARCHAR(30),
email VARCHAR(30)
)";

$ins = "INSERT INTO TABLE (imie, email) VALUES ('$imie'','$email')"; 

$query = mysqli_query($link, $ins);     
    if($ins) echo "Rekord został dodany poprawnie"; 
    else echo "Błąd nie udało się dodać nowego rekordu"; 
mysqli_close($link); 
     
    mysql_close($connection); 
} 
?>
Proszę o pomoc i wielką wyrozumiałość gdyż dopiero się uczę :oops:
rad11
Posty: 24
Rejestracja: 26 lis 2013, 19:35:22
Strona na CBA.pl: radcms.cba.pl
Płeć: Niewybrana
User Agent: Firefox Windows 1920x1080

Re: Problem z bazą danych MySQL

Post autor: rad11 »

Po pierwsze to sprzwdzaj zmienne postowe metoda isset(). Po drugie http://www.w3schools.com/sql/sql_create_table.asp, http://www.w3schools.com/sql/sql_insert.asp zobacz co zgubilas. Po trzecie istnieje taka metoda var_dump() ktora mozesz sobie po kolei sprawdzac co zawieraja zmienne, metody itd i przez co masz wieksza szanse dojsc co jest nie tak. A po trzecie albo trzymasz sie mysqli albo mysql.
Awatar użytkownika
piwo
Posty: 673
Rejestracja: 13 lip 2010, 16:13:44
Płeć: Niewybrana
User Agent: Firefox Windows

Re: Problem z bazą danych MySQL

Post autor: piwo »

Po czwarte NIGDY PRZENIGDY i dodatkowo PRZENIGDY nie włącza się bezpośrednio do zapytania SQL danych podanych przez użytkownika bez ich uprzedniego zweryfikowania / przystosowania / przefiltrowania pod kątem bezpieczeństwa.
(zresztą nie tylko dane pochodzące z POST ale jakiekolwiek dane wejściowe przychodzące od użytkownika, bo są spryciarze którzy wbijają SQLInjection do np ciasteczek, user-agent itp.)

przykładowo jeśli dane są liczbą można,
$liczba = $_POST['jakasliczba'] * 1; // co czyni $liczba liczbą niezależnie od tego co rzeczywiście było w POST
albo ciągiem znaków,
$string = mysqli_real_escape_string($polaczenie, $_POST['imie']); // co zapobiega sztuczkom z wbijaniem swojego kodu w pole formularza.

Niestosowanie się do tego prowadzi prędzej czy później do oglądania napisu
"OWNED by Cow and Chicken team" albo "WłOd3k tU ByŁ"zamiast swojej strony
.

Kod: Zaznacz cały

<?php
$polaczenie = mysqli_connect("mysql.cba.pl","nazwausera","passwordusera","nazwadb");
if ( mysqli_connect_errno() ) {
  echo "Nie udalo sie nawiazac polaczenia : " . mysqli_connect_error();
}

// filtrujemy dane wejsciowe aby nadawaly się do wlaczenia jako czesc zapytania SQL
$imie   = mysqli_real_escape_string($polaczenie, $_POST['imie']);
$email = mysqli_real_escape_string($polaczenie, $_POST['email']);

$query = " INSERT INTO mojatabela (imie, email)
           VALUES ( '".$imie."', '".$email."' )";

if ( !mysqli_query( $polaczenie,$query ) ) {
    die ('wystapil blad : ' . mysqli_error($polaczenie) );
} else {
    echo "OK : dodano 1 rekord.";
}

mysqli_close($polaczenie);
?>
{$signature}
Monika89
Posty: 2
Rejestracja: 19 lip 2014, 12:10:11
Strona na CBA.pl: do-adopcji.cba.pl
Płeć: Niewybrana
User Agent: Chrome Windows 1366x768

Re: Problem z bazą danych MySQL

Post autor: Monika89 »

Dziękuje bardzo za odpowiedzi
pgu-scorpio
Posty: 12
Rejestracja: 27 maja 2013, 21:57:26
Strona na CBA.pl: pgu-scorpio.cba.pl
Płeć: Niewybrana
User Agent: Maxthon Windows 1680x1050

Re: Problem z bazą danych MySQL

Post autor: pgu-scorpio »

witam,zmieniłem tylko hasło na cba.pl w swoim profilu,na koncie ftp oraz bazy danych,teraz moje forum się nie otwiera i jest to co przesyłam w załączniku,nie potrafię przywrócić bazy danych ponieważ nie wiem jak to zrobić na phpmyadmin owszem zaloguję się na koncie ftp ale też tam niewiem jak przywrócić Obrazek,jeśli możecie proszę o przywrócenie forum do porządku,zmieniałem hasła ponieważ nie logowałem się dość długo na cba.pl itd i teraz już jest problem z forum,pozdrawiam i czekam na szybką odpowiedź
ODPOWIEDZ