Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

petkowwwsa avatar petkowwwsa 4 Точки

[PHP] register form

Здравейте на всички и Весела Коледа!

Искам да Ви попитам едно въпросче и ще съм много благодарен на всеки, който отдели от времето си да помогне.

Бих казал, че съм начинаещ с PHP и реших да си направя онлайн магазин, като в момента мъча LOGIN и REGISTER формите.
Опитвам се да използвам и база данни, където да съхранявам информация за регистрираните потребители.

Случаят ми е следния:
Имам 1 файл functions.php и в него се опитвам да сложа всички функци, които ще използвам по другите страници.
Създал съм функция register() и нейният код е:

function register() {
	global $dbConnection;

	if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_POST['regBtn'])) {
		$query = "INSERT INTO `registered_users` (`username`,`email`,`password`) VALUES (:username,:email,:password)";
		$stmt = $dbConnection->prepare($query);

		$password = hash('sha256', $_POST['password']);
		$username = $_POST['username'];

		$stmt->bindParam(':username', $username);
		$stmt->bindParam(':email', $_POST['email']);
		$stmt->bindParam(':password', $password);

		if (count($username) >= 3) {
			$stmt->execute();
		}
	}
}

След това имам файла - register.php, в който си държа html Кода на регистър формата:

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

<div  class="admin-panel">
  <h1 class="header"> Admin Panel - Register</h1>
  <div class="imgcontainer">
    <img src="../assets/img/avatar.png" alt="Avatar" class="avatar">
  </div>

	<?php if(!empty($message)): ?>
		<p><?= $message; ?></p>
	<?php endif; ?>

  <div class="container">
  <div class="texts"><span class="first-text">Register</span> <div>or <a href="login.php" class="second-text">login here</a></div></div>
    <form id="reg-form" method="POST">
		<input type="text" placeholder="USERNAME" name="username" required="required" />
		<input type="email" placeholder="EMAIL" name="email" required="required" />
    	<input type="password" placeholder="PASSWORD" name="password" required="required" />
    	<input type="submit" name="regBtn" value="Register" />
	</form>
	</div>
</div>
</body>
</html>

В горе посоченият файл съм записал следния код, но не се получава да ми запази данните в базата данни:

<?php
	require '../database.php';
	require '../functions.php';

	$message = '';

	if (register()) {
		$message = 'Successfully created a new user';
	}

	if (isset($_POST['username']) && count($_POST['username']) < 3 ) {
		$message = 'Username have to be atleast 3 symbols';
	}


?>

Можете ли да ми кажете дали функцията е правилна и ако не, какво трябва да се подобри и как трябва да подхождам с функциите и също така какво трябва да се разпише във файла register.php

Тагове:
0
PHP Web Development Basics 26/12/2016 16:07:05
krasimir.i.petrov avatar krasimir.i.petrov 11 Точки

Я пробвай така:

function register() {
	global $dbConnection;

	if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_POST['regBtn'])) {
		$query = "INSERT INTO `registered_users` (`username`,`email`,`password`) VALUES (?,?,?)";
		$stmt = $dbConnection->prepare($query);

		$password = hash('sha256', $_POST['password']);
		$username = $_POST['username'];
                $email = $_POST['email'];
             


		

		if (count($username) >= 3) {
			 $stmt->execute(
            [
                $username,
                $email,
                $password
            ]
        );
		}
	}
}

 

0
26/12/2016 17:00:21
RoYaL avatar RoYaL Trainer 6849 Точки

count($username); вероятно винаги връща 1. count() се ползва за масиви. Може би трябва да потърсиш коя функция е за стрингове.

P.S.: По-важното обаче е да се научиш да дебъгваш.

 

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.