Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][SQL][PHP]nie chce się połączyć z serwerem
wfilipunas
post 21.07.2019, 08:21:55
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2019

Ostrzeżenie: (0%)
-----


Witam,
proszę o pomoc bo siedzę już nad tematem trochę czasu i mózg mi paruje. Stworzyłem plik index.php w którym jest wyłącznie button, po którego naciśnięciu chcę się połączyć z bazą na ftp. Zacznę od tego że mam problem na etapie funkcji @mysql_connect, gdyż nie jestem pewien czy poprawnie wpisuję wartości (mają być dane takie jak do ftp?).

W następnej kolejności chciałbym, aby po połączeniu z bazą została utworzona tabela. Poniżej podaję kod dla obu plików które utworzyłem i wrzuciłem na serwer. Dziękuję za pomoc!

index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

<form action="form.php" method="post">

<input type="submit" value="dodaj" />
</form>
</body>
</html>

form.php
<?php
/******************************************************
* connection.php
* konfiguracja połączenia z bazą danych
******************************************************/

function connection() {
// serwer
$mysql_server = "...";
// admin
$mysql_admin = "...";
// hasło
$mysql_pass = "...";
// nazwa baza
$mysql_db = "...";
// nawiązujemy połączenie z serwerem MySQL
@mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
or die('Brak połączenia z serwerem MySQL.');
// łączymy się z bazą danych
@mysql_select_db($mysql_db)
or die('Błąd wyboru bazy danych.');

CREATE TABLE $nazwa_tabeli (
$id_tabeli INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY ($id_tabeli),
$nazwa_produktu text,
$seria varchar(100),
$data date,
$ilosc_sztuk INT,
$cena float(53),
$typ_towaru text
);
}

?>

Ten post edytował wfilipunas 21.07.2019, 08:24:08
Go to the top of the page
+Quote Post
dublinka
post 21.07.2019, 10:56:14
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Musisz miec gdzies dane do mysql.
Niektore serwery wymagaja ustawienia bazy poprzez panel podajac nazwe a potem serwer generuje haslo itp
Poszukaj gdzies w pomocy swojego providera servera

Ten post edytował dublinka 21.07.2019, 10:57:16


--------------------
Go to the top of the page
+Quote Post
wfilipunas
post 21.07.2019, 11:57:13
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2019

Ostrzeżenie: (0%)
-----


Wydaje mi się że podalem poprawne dane serwera, usera, hasło i db i mimo wszystko po wyrzuceniu plików na serwer i kliknięciu buttona nic dalej się nie dzieje. Po prostu przekierowuje mnie do form.php I tyle. Nie ma żadnej informacji że poprawnie udało połączyć się z bazą i nie ma również nowo dodanej tabeli.

A może mam jakiś błąd w kodzie?

Ten post edytował wfilipunas 21.07.2019, 11:57:36
Go to the top of the page
+Quote Post
viking
post 21.07.2019, 13:14:55
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Wyrzuć wszystkie @. Tego rozszerzenia od lat nie ma już w php więc zamień na pdo albo mysqli.


--------------------
Go to the top of the page
+Quote Post
dublinka
post 21.07.2019, 14:32:34
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Podajesz tam zmienne ktorrych nie udostepniles. Nie wiem czy Ci to umknęło czy tego nie ma.
Kolejna sprawa to to ze ta wersja to juz przezytek.
Usun na poczatek wszelkie małpy bo one powoduja ze blad/info nie wyswietli sie.
Jesli chcesz pokazac info ze polaczenie nastapilo przypisz jakas zmienna do f() mysqli_connect() i potem sprawdz warunkiem.

Wogole to musisz zmienic minimum na mysqli.

Ten post edytował dublinka 21.07.2019, 14:37:52


--------------------
Go to the top of the page
+Quote Post
wfilipunas
post 21.07.2019, 18:24:22
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2019

Ostrzeżenie: (0%)
-----


dublinka i viking, dziękuję za informację. Poszperałem trochę kierując się Waszymi radami i chyba się udało smile.gif

Mam połączenie, dodaje mi też nową tabelę. A jak dodać dane z inputów tak, żeby znalazły się w tabeli jako rekordy? Mam utworzoną tabelę. Po wypełnieniu pól i kliknięciu dodaj pojawia się komunikat, że rekord został dodany, ale w tabeli nic się nie pojawia.

Parametry tabeli: CREATE TABLE persons(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(30) NOT NULL,
last_name VARCHAR(30) NOT NULL,
email VARCHAR(70) NOT NULL UNIQUE

index.php
CODE

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

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



form.php:
CODE

<?php

$link = mysqli_connect("178.32.219.12", "1179586_MmS", "moje-haslo", "1179586_MmS");

if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$email = $_POST['email'];

if($imie and $nazwisko and $email) {

// dodajemy rekord do bazy
$sql = mysqli_query("INSERT INTO persons SET first_name='$imie', last_name='$nazwisko', email='$email'");

if($sql) echo "Rekord został dodany poprawnie";
else echo "Błąd nie udało się dodać nowego rekordu";


}


mysqli_close($link);
?>


Ten post edytował wfilipunas 21.07.2019, 19:37:13
Go to the top of the page
+Quote Post
dublinka
post 21.07.2019, 20:36:56
Post #7





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


  1. $sql = "INSERT INTO tabela (firstname, lastname, email)
  2. VALUES ('John', 'Doe', 'john@example.com')";

Ale nie polecam takiego rozwiazania.


Poczytaj to i uzywaj poprawnie.


https://websitebeaver.com/prepared-statemen...t-sql-injection

Rozwiazanie znajdziesz pod tytułem

"Insert, Update and Delete"

Ten post edytował dublinka 21.07.2019, 20:51:37


--------------------
Go to the top of the page
+Quote Post
wfilipunas
post 24.07.2019, 19:46:50
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2019

Ostrzeżenie: (0%)
-----


dublinka, dzięki za link. Sprawa okazuje się banalnie prosta. Finalny kod którego użyłem:
CODE

<?php

$link = mysqli_connect("178.32.219.12", "1179586_MmS", "moje-haslo", "1179586_MmS");

if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

$imie = $_POST['imie'];
$email = $_POST['email'];

$sql = "insert into test3(imie, email) values ('$imie', '$email');";
if(mysqli_query($link, $sql)){
echo "Table created successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}


mysqli_close($link);
?>


No i oczywiście wcześniej utworzyłem tabelę z odpowiednimi kolumnami. Grunt, że wszystko działa smile.gif
Go to the top of the page
+Quote Post
viking
post 24.07.2019, 20:03:25
Post #9





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


I jest pięknie podatne na atak.


--------------------
Go to the top of the page
+Quote Post
Nidan23
post 27.07.2019, 12:34:47
Post #10





Grupa: Zarejestrowani
Postów: 101
Pomógł: 2
Dołączył: 26.04.2019

Ostrzeżenie: (10%)
X----


Cytat(viking @ 24.07.2019, 21:03:25 ) *
I jest pięknie podatne na atak.

Dlaczego? Mógłbyś rozwinąć temat? Bo sam chętnie lepiej zabezpieczę moje połączenia
Go to the top of the page
+Quote Post
dublinka
post 27.07.2019, 13:13:24
Post #11





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Proste polączenia z bażą są narażone na ataki i tyle.
@Nidan, powinienes się nauvczyc podstaw. Minęło już sporo czasu jak CI odpowiedaiałem a Ty dalej stoisz.


Czekasz na inną odpowiedz ? smile.gif

Ten post edytował dublinka 27.07.2019, 13:30:56


--------------------
Go to the top of the page
+Quote Post
Nidan23
post 27.07.2019, 13:57:48
Post #12





Grupa: Zarejestrowani
Postów: 101
Pomógł: 2
Dołączył: 26.04.2019

Ostrzeżenie: (10%)
X----


Cytat(dublinka @ 27.07.2019, 14:13:24 ) *
@Nidan, powinienes się nauvczyc podstaw. Minęło już sporo czasu jak CI odpowiedaiałem a Ty dalej stoisz.


Czy zabezpieczanie połączenia z bazą w ten sposób to podstawy? Ja bym powiedział, że podstawą jest łączenie się z bazą a zabezpieczanie połączenia to schodek wyżej wink.gif
Go to the top of the page
+Quote Post
dublinka
post 28.07.2019, 05:21:29
Post #13





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(Nidan23 @ 27.07.2019, 13:57:48 ) *
Czy zabezpieczanie połączenia z bazą w ten sposób to podstawy?

Tak podstawy.



--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 17:45