Przekazywanie danych z formularza PHP do tabeli MySQL

0

Witam. Przeszukałem ogromną ilość for, w których był poruszany ten temat. Siedzę nad tym już dobre 5 godzin. Jestem początkujący.
Otóż mam formularz rejestracyjny, z którego dane chcę przenieść do tabeli w bazie MySQL. Tabela jest utworzona, a więc mam 3 pliki, oto ich zawartość:

connection.php

<?php
function connection() { 
        // host 
        $mysql_host = "localhost"; 
        // user
        $mysql_user = "*******"; 
        // hasło 
        $mysql_pass = "**********"; 
        // nazwa bazy 
        $mysql_db = "**************"; 
        // nawiązujemy połączenie z serwerem MySQL 
        @mysql_connect($mysql_host, $mysql_user, $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.'); 
} 

?>

Z bazą łączy się, tu nie ma problemu.

dodaj.php

<?php
require("connection.php");
connection();

$id = $_POST['ID'];
$nick = $_POST['Nick'];
$imie = $_POST['Imie'];
$nazwisko = $_POST['Nazwisko'];
$email = $_POST['Email'];
$haslo = $_POST['Haslo'];
$telefon = $_POST['Telefon'];

$zapytanie = "INSERT INTO `lista` VALUES ('".$id."',".$nick."','".$imie."','".$nazwisko."','".$email."','".$haslo."','".$telefon."')";
mysql_query($zapytanie);
?>

Oraz plik z formularzem:

<!DOCTYPE html>
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6 lt8"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7 lt8"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8 lt8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="pl" class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="UTF-8" />

        <title>REJESTRACJA - *******.pl</title>
        <link rel="shortcut icon" href="../favicon.ico">
        <link rel="stylesheet" type="text/css" href="css/demo.css" />
        <link rel="stylesheet" type="text/css" href="css/style2.css" />
		<link rel="stylesheet" type="text/css" href="css/animate-custom.css" />
    </head>
    <body>
        <div class="container">
            <!-- Codrops top bar -->
            <header>
                <h1>Zarejestruj sie w serwisie **********.pl juz TERAZ!</span></h1>
					 <center><iframe width="420" height="315" src="//www.youtube.com/embed/**********" frameborder="0" allowfullscreen></iframe></center>
			  
            </header>
            <section>
                <div id="container_demo" >
                    <a class="hiddenanchor" id="toregister"></a>
                    <a class="hiddenanchor" id="tologin"></a>
                    <div id="wrapper">
                        <div id="rejestracja" class="animate form">
                            <form method="POST" action="dodaj.php">
                                <h1> REJESTRACJA </h1>
                                <p>
                                    <label for="Nick" class="uname" data-icon="u">Nazwa użytkownika *</label>
                                    <input name="Nick" required="required" type="text" placeholder="jestemzwyciezca007" />
                                </p>
										  <p>	
                                    <label for="Imie" class="imie" data-icon="u">Imię *</label>
                                    <input name="Imie" required="required" type="text" placeholder="Jan" />
                                </p>
										    <p>		
                                    <label for="Nazwisko" class="nazwisko" data-icon="u">Nazwisko *</label>
                                    <input name="Nazwisko" required="required" type="text" placeholder="Kowalski" />
                                </p>
                                <p>
                                    <label for="Email" class="youmail" data-icon="e" > Twój e-mail *</label>
                                    <input name="Email" required="required" type="email" placeholder="[email protected]"/>
                                </p>
                                <p>
                                    <label for="Haslo" class="youpasswd" data-icon="p"> Twoje hasło *</label>
                                    <input name="Haslo" required="required" type="password" placeholder="np. X8df!90EO"/>
                                </p>
                                <p>
                                    <label for="Telefon" class="phone" data-icon="p"> Twój numer telefonu *</label>
                                    <input name="Telefon" required="required" type="text" placeholder="np. 696 664 119"/>
                                </p>	
                                <p class="signin button">
									<input type="submit" value="Zarejestruj mnie"/>
								</p>
                                <p class="change_link">
									Masz już konto?
									<a href="mm-login.php" class="to_register"> Zaloguj się! </a>
								</p>
                            </form>
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </body>
</html>

Czy ktoś byłby w stanie mi pomóc? Byłbym bardzo wdzięczny!
Konkretnie to nie ma żadnego błędu, wszystko wygląda na to, że dane zostały zapisane, aczkolwiek tabela nadal pusta.

dodanie znaczników <code class="php"> oraz <code class="html"> - fp

0

Zrób sobie echo $zapytanie i sprawdź jak to zapytanie wygląda, spróbuj wykonać je w konsoli mysql lub PHPMyAdmin'ie. Podejrzewam, że z ID będzie coś nie tak - nie podałeś jak wygląda tabela SQL.

0

Po zrobieniu echo: http://scr.hu/1u0f/hzfkg

Jak to zrobić w phpMyAdmin? Przepraszam za takie banalne pytania (dla znających temat), ale ja z SQL jestem poczatkujący.

EDIT:
Tak, miałes rację. To ID wszystko psuło. Usunąłem go z pliku dodaj.php i jest w porzadku. Teraz moje kolejne pytanie: Jak dodać ID do bazy, tak, aby znów nie było problemów?

usunięcie cytowania całego poprzedniego posta - fp

0

Z tego co ja tu widzę w zapytaniu brakuje apostrofa przy nicku (otwierającego). ID prawdopodobnie jest autoinkrementowany, ale trudno cokolwiek powiedzieć jeśli nie widzimy struktury tabeli. Co to jest autoinkrementacja klucza głównego tabeli to sobie możesz odszukać w internecie.

0

Wszystko już zrobiłem sam :)

Teraz zajmuję się kwestią logowania i ponownie mam problem.

Tutaj plik z formularzem logowania:

<!--META-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>LOGOWANIE - ********.pl</title>

<!--STYLESHEETS-->
<link href="css/style.css" rel="stylesheet" type="text/css" />

<!--SCRIPTS-->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<!--Slider-in icons-->
<script type="text/javascript">
$(document).ready(function() {
	$(".username").focus(function() {
		$(".user-icon").css("left","-48px");
	});
	$(".username").blur(function() {
		$(".user-icon").css("left","0px");
	});

	$(".password").focus(function() {
		$(".pass-icon").css("left","-48px");
	});
	$(".password").blur(function() {
		$(".pass-icon").css("left","0px");
	});
});
</script>

</head>
<body>

<!--WRAPPER-->
<div id="wrapper">

	<!--SLIDE-IN ICONS-->
    <div class="user-icon"></div>
    <div class="pass-icon"></div>
    <!--END SLIDE-IN ICONS-->

<!--LOGIN FORM-->
<form name="login-form" class="login-form" action="" method="post">

	<!--HEADER-->
    <div class="header">
    <!--TITLE--><h1>Logowanie</h1><!--END TITLE-->
    <!--DESCRIPTION--><span>Wpisz adres email i hasło, aby przejść do panelu użytkownika.</span><!--END DESCRIPTION-->
    </div>
    <!--END HEADER-->

	<!--CONTENT-->
    <div class="content">
	<!--USERNAME--><input name="login" type="text" class="input username" value="Nick" onfocus="this.value=''" /><!--END USERNAME-->
    <!--PASSWORD--><input name="password" type="password" class="input password" value="Hasło" onfocus="this.value=''" /><!--END PASSWORD-->
    </div>
    <!--END CONTENT-->

    <!--FOOTER-->
    <div class="footer">
    <!--LOGIN BUTTON--><input type="submit" name="submit" value="Login" class="button" /><!--END LOGIN BUTTON-->
    </div>
    <!--END FOOTER-->

</form>
<!--END LOGIN FORM-->

</div>
<!--END WRAPPER-->

<!--GRADIENT--><div class="gradient"></div><!--END GRADIENT-->

</body>
</html>

A tutaj skrypt logowania w PHP:

<?php
session_start();
$login = $_POST['login'];
$password = $_POST['password'];
require('connection.php');
$query = mysql_query("SELECT * FROM `lista` WHERE nick='$login'"); //wyszukuje w bazie konta o nazwie podanej przez formularz
$row = mysql_fetch_array($query);
if($row)
{//jesli login jest poprawny
if(md5($password) == $row['password']) //jesli haslo jest prawidlowe
{
$_SESSION['logowanie'] = $login;
header("Location: accessdenied.php");
}
else{
echo('Błędne hasło!'); //jesli haslo jest bledne
include('form.php');
}
}
else{ 
echo('Konto nie istnieje!'); //jesli konto nie istnieje
include('form.php');
}
mysql_close();
?>

Wydaję mi się, że wszystko jest w porządku, aczkolwiek po kliknięciu przycisku LOGIN, strona się przeładowuję, nic więcej. Będę wdzięczny za pomoc

dodanie znaczników <code class="html"> oraz <code class="php"> - fp

0

sprawdź czy plik accessdenied.php oraz form.php istnieje lub zamień tymczasowo tą linijkę header("Location: accessdenied.php");na coś innego np. jakieś echo. Upewnij się, że action w formularzu jest do odpowiedniego pliku.
Zobacz co wysyłane jest przez np. FireFox FireBug czy Opera DragonFly (narzędzie w przeglądarce). Do tego na swoim środowisku testowym włącz raportowanie wszystkich błędów będzie łatwiej dowiedzieć się co się dzieje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1