Sonxz utworzono 23 lipca 2018 utworzono 23 lipca 2018 Mój problem a w zasadzie pytanie jest następujące jak wysłać dane z tego formularza do bazy danych w phpmyadmin oraz drugie jak porównać ze sobą hasła.Za wszystkie odpowiedzi dziękuje. dodam jeszcze że jak na razie wszystko pięknie działa <!DOCTYPE HTML> <html> <?php $con = mysqli_connect("localhost","root","","test"); if (mysqli_connect_errno()) { echo "Połączenie nie udane: " . mysqli_connect_error(); } $nameErr = $emailErr = $hasloErr = $haslo1Err = ""; $name = $email = $haslo = $haslo1 = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Uzupełnij Pole Login"; } else { $name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Dozwolone są tylko litery"; } } if (empty($_POST["email"])) { $emailErr = "Uzupełnij e-mail"; } else { $email = test_input($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Nieprawidłowy format e-mail"; } } if (empty($_POST["haslo"])) { $hasloErr = "Uzupełnij hasło"; } else { $haslo = test_input($_POST["haslo"]); if (!preg_match("/^[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$haslo)) { $hasloErr = "Niepraidłowy format hasła"; } } if (empty($_POST["haslo1"])) { $haslo1Err = "Uzupełnij hasło"; } else { $haslo1 = test_input($_POST["haslo1"]); if (!preg_match("/^[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$haslo)) { $hasloErr = "Niepraidłowy format hasła"; } } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <head> <style> span{ color:red; } </style> </head> <body> <h2>ZAREJSTRUJ SIĘ</h2> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Login: <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Haslo: <input type="password" name="haslo"> <span class="error">* <?php echo $hasloErr;?></span> <br><br> Powturz haslo: <input name="haslo1" type="password" /> <span class="error">* <?php echo $haslo1Err;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </form> <?php echo "<h2>TWOJE DANE:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $haslo; echo "<br>"; echo $haslo1; echo "<br>"; ?> </body> </html> index.php
MasterYoghourt komentarz 13 sierpnia 2018 komentarz 13 sierpnia 2018 (edytowane) Poniżej masz skrypt, nie pamiętam kogo autorstwa, chyba blueman to napisał. Tabelę "tabela_testowa" tworzysz albo za pomocą phpmyadmin albo poleceniem poprzez klienta mysql. Spoiler Poniżej przedstawiony został przykład wykorzystywania bazy danych mysql do zapisywania i odczytywania danych pobranych z formularza. Skrypt składa się z kilku elementów: * zainicjowanie kilku zmiennych * połączenie z bazą * umieszczenie w bazie nowego wiersza * pobranie danych z bazy * wyświetlenie danych na stronie * wykorzystanie formularzy Kod: mysql CREATE TABLE `tabela_testowa` ( `nazwa_kolumny` VARCHAR( 20 ) NOT NULL ) W powyższym przykładzie stworzona została nowa tabela o nazwie "tabela_testowa" z kolumną o nazwie "nazwa_kolumny" typu VARCHAR, długości 20 znaków… Poniżej zawartość przykładowego pliku index.php do zbierania, umieszczania i wyświetlania informacji. Kod: php <?php // informacje na temat bazy $host = ‘localhost’; // nazwa lub numer IP hosta $user = ‘username’; // nazwa użytkownika $password = ‘password’; // hasło do bazy $dbName = ‘databasename’; // nazwa bazy danych // te dane zależne są od Twojej bazy i muszą zostać podane // przykładowo może to wyglądać w następujący sposób $host = ‘0.0.0.0′; $user = ‘janek’; $password = ‘jakies_haslo’; $dbName = ‘moja_baza’; // połączenie i wybór bazy danych $polacz = mysql_connect($host, $user, $password) or die(mysql_error()); $db = mysql_select_db($dbName, $polacz) or die(mysql_error()); ?> Polecienie mysql_connect() z argumentami zapisanymi w zmiennych $host, $user, $password. Przypisujemy do zmiennej $polacz. W przypadku braku połączenia wyświetlony zostanie błąd. Do zmiennej $db przypisujemy funkcję mysql_select_db(), która wybiera naszą bazę i wykonuje połączenie zapisane w zmiennej $połacz. Gdy połączenie jest nieudane polecenie die(mysql_error()) wyrzuca błąd. Kod: php <?php // wprowadzanie nowego wpisu po wciśnięciu przycisku submit if (isset($_POST[‘jakies_pole’]) && trim($_POST[‘jakies_pole’]) != ”) { $jakies_pole = $_POST[‘jakies_pole’]; // wstawianie wartości pobranej metodą POST do tabeli w naszej bazie $sql = "INSERT into tabela_testowa (nazwa_kolumny) VALUES (’$jakies_pole’)"; $rezultat = mysql_query($sql, $polacz) or die(mysql_error()); } // koniec pobierania wartości pola o nazwie "jakies_pole" ?> Ten kawałek sprawdza czy pobrana została metodą "POST" wartość pola o nazwie "jakies_pole" i czy wartość ta po zastosowaniu filtru "trim" jest różna od niczego. Jeżeli oba powyższe warunki są spełnione do zmiennej $jakies_pole przypisujemy wartość pola o nazwie "jakies_pole". Nie do końca rozumiesz co znaczy wartość pola o nazwie "jakies_pole" - taka wartość kryje się w formularzu w polu <input name="jakies_pole" />. Formularz jednak przeanalizujemy w dalszej części kodu. Do zmiennej $sql przypisujemy treść polecenia mysql. Po naszemu brzmi to tak: umieść w tabeli "tabela_testowa" w kolumnie "nazwa_kolumny" wartości: wartość odebrana od zmiennej $jakies_pole. Natępnie do zmiennej $rezultat przypisywana jest wartość zapytania mysql_query(). Funkcja mysql_query() jako argumenty pobiera zmienną $sql i $polacz. Jęsli połączenie się nie uda następuje błąd. Kod: php <?php // pobierabie wartości z tabeli "tabela_testowa" $sql = "SELECT nazwa_kolumny FROM tabela_testowa"; $rezultat = mysql_query($sql, $polacz) or die(mysql_error()); // wyświetlanie rezultatu na ekranie while ($lista = mysql_fetch_array($rezultat)) { echo $lista[‘nazwa_kolumny’]. "<br />"; } // koniec while ?> Najpierw do zmiennej $sql przypisywane jest zapytanie mysql: wybierz wartości z kolumny "nazwa_kolumny" z tabeli "tabela_testowa". Następnie do zmiennej $rezultat przypisywana jest wartość zapytania mysql_query(). Funkcja mysql_query() jako argumenty pobiera zmienną $sql i $polacz lub wyrzuca błąd w przypadku nieudanego połączenia. Następnie pętla while "mówi" - dopóki zmienna tablicowa $lista będzie wypełniana wartościami z kolumny "nazwa_kolumny" wyświetlaj na ekranie poszczególne wartości tej kolumny. Kod: php <?php // wyświetlenie formularza do wprowadzania danych echo <<<FORMULARZ <br /> Dodaj wpis: <br /> <form action = "index.php" method = "post"> <input type = "text" name = "jakies_pole" maxlength="20" size = "10"> <input type = "submit" value = "Dodaj wpis"> </form> FORMULARZ; ?> To formularz z polem o nazwie "jakies_pole" i przyciskiem submit którego kliknięcie powoduje przeładowanie pliku index.php i wykonanie wszystkich instrukcji zapisanych w tym pliku. Mimo, że formularz znajduje się na końcu kodu, to właśnie od niego zaczyna się cała akcja. Po wciśnięciu przycisku submit następuje przeładowanie pliku index.php. Pole o nazwie "jakies_pole" przechowuje wówczas wartość, która równa jest temu co w to pole wpisaliśmy przed wysłaniem formularza. Żeby odebrać tę wartość przeładowany plik index.php pobiera metodą POST wartość pola "jakies_pole". Przypisuje tę wartość do zmiennej. Wartość zmiennej umieszcza poleceniem INSERT INTO w bazie. Następnie zapytanie SELECT pobiera tą wartość do zmiennej. Mając tę zmienną poleciem echo możemy ją wyświetlić. W powyższym przykładzie w jednym pliku umieszczony został cały cykl od wpisania wartości w formularz do wyświetlenia ich z powrotem na ekranie. W praktyce polecenia rozdzielane są na wiele plików. W jednych zbieramy informacje z formularzy (np. formularze zamówień) i umieszczamy je w bazie. W innych wykorzystując te dane prezentujemy je w postaci np. tabeli zamówień. Zrozumienie i opanowanie sztuki wykorzystywania baz danych i formularzy daje bardzo wiele możliwości. Większość, jeżeli nie wszystkie nowoczesne strony internetowe opieają się na takich mechanizmach. Poniżej zamieszczam cały kod do wykorzystania na stronie. Kod: mysql CREATE TABLE `tabela_testowa` ( `nazwa_kolumny` VARCHAR( 20 ) NOT NULL ) Kod: php <?php // informacje na temat bazy $host = ‘localhost’; $user = ‘username’; $password = ‘password’; $dbName = ‘databasename’; // polaczenie i wybór bazy danych $polacz = mysql_connect($host, $user, $password) or die(mysql_error()); $db = mysql_select_db($dbName, $polacz) or die(mysql_error()); // wprowadzanie do bazy nowego wpisu po wciśnięciu przycisku submit if (isset($_POST[‘jakies_pole’]) && trim($_POST[‘jakies_pole’]) != ”) { $jakies_pole = $_POST[‘jakies_pole’]; $sql = "INSERT into tabela_testowa (nazwa_kolumny) VALUES (’$jakies_pole’)"; $rezultat = mysql_query($sql, $polacz) or die(mysql_error()); } // pobierabie wartości z tabeli "tabela_testowa" $sql = "SELECT nazwa_kolumny FROM tabela_testowa"; $rezultat = mysql_query($sql, $polacz) or die(mysql_error()); while ($lista = mysql_fetch_array($rezultat)) { echo $lista[‘nazwa_kolumny’]. "<br />"; } // formularz echo <<<FORMULARZ <br /> Dodaj wpis: <br /> <form action = "index.php" method = "post"> <input type = "text" name = "jakies_pole" maxlength="20" size = "10"> <input type = "submit" value = "Dodaj wpis"> </form> FORMULARZ; ?> A tutaj przykład jak zrobić prosty formularz. Po angielsku ale skapujesz: Edytowane 13 sierpnia 2018 przez MasterYoghourt
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.