Création de table dans laragon [Résolu]

Signaler
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
-
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
-
Bonjour,

En faite, le code pour créer une table est le suivant, mais je ne sais pas comment la créer dans heidisql, dans laragon.

Mon code:

CREATE TABLE tchat (
id int(255) NOT NULL,
id_pseudo int(255) NOT NULL,
message text COLLATE utf8mb4_unicode_ci NOT NULL,
date_message datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


un autre...
CREATE TABLE user (
id int(255) NOT NULL,
pseudo varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
sex int(1) NOT NULL,
birthday date NOT NULL,
mail varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
password text COLLATE utf8mb4_unicode_ci NOT NULL,
register datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


Merci!
Jwandle

7 réponses

Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
3 277
Bonjour,

Avant tout, il faut déjà créer une Base de données.

Une fois laragon lancé, tu fais un clic droit dans la liste à gauche, et tu choisis créer une nouvelle base de données.

Une fois la bdd créée, tu cliques dessus pour la selectionner.

Puis, tu cliques sur l' onglet "requete"
tu colles ton code dedans... puis tu cliques sur le bouton exécuter ( ou la touche F9 de ton clavier)

Sinon, tu peux aussi tout simplement utiliser ta souri pour créer tes tables en passant par l'interface graphique.
Dans la bdd, tu fais un clic-droit, tu choisis créer... tu choisis table... et tu ajoutes tes champs.
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4
Salut!
Merci pour ta réponse!J'ai pu créer ma base de données, mais je trouve que c'est vachement plus galère que phpmyadmin, mais je n'arrive pas à l'installer dans laragon :'(
je l'ai extrait dans laragon/etc/apps mais quand je vais sur https://localhost/phpmyadmin 403 forbiden You don't have permission to access /phpmyadmin on this server.
C'est super énervant...
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4
A non, c'est bon, j'ai réussi, j'ai bien compris...
Merci beaucoup pour ta réponse!

Mais un nouveau petit problème, je sais pas si sa vient de mon code ou de la table...
connexion.php
<?php 
$con = mysqli_connect('localhost', 'root', '', 'userform');
?>

controllerUserData.php
<?php 
session_start();
require "connection.php";
$email = "";
$name = "";
$errors = array();

//if user click signup button
if(isset($_POST['signup'])){
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$cpassword = mysqli_real_escape_string($con, $_POST['cpassword']);
if($password !== $cpassword){
$errors['password'] = "Confirm password not matched!";
}
$email_check = "SELECT * FROM usertable WHERE email = '$email'";
$res = mysqli_query($con, $email_check);
if(mysqli_num_rows($res) > 0) {

$errors['email'] = "Email that you have entered is already exist!";
}
if(count($errors) === 0){
$encpass = password_hash($password, PASSWORD_BCRYPT);
$code = rand(999999, 111111);
$status = "notverified";
$insert_data = "INSERT INTO usertable (name, email, password, code, status)
values('$name', '$email', '$encpass', '$code', '$status')";
$data_check = mysqli_query($con, $insert_data);
if($data_check){
$subject = "Email Verification Code";
$message = "Your verification code is $code";
$sender = "From: pro.leotuto@gmail.com";
if(mail($email, $subject, $message, $sender)){
$info = "We've sent a verification code to your email - $email";
$_SESSION['info'] = $info;
header('location: user-otp.php');
exit();
}else{
$errors['otp-error'] = "Failed while sending code!";
}
}else{
$errors['db-error'] = "Failed while inserting data into database!";
}
}

}
//if user click verification code submit button
if(isset($_POST['check'])){
$_SESSION['info'] = "";
$otp_code = mysqli_real_escape_string($con, $_POST['otp']);
$check_code = "SELECT * FROM usertable WHERE code = $otp_code";
$code_res = mysqli_query($con, $check_code);
if(mysqli_num_rows($code_res) > 0){
$fetch_data = mysqli_fetch_assoc($code_res);
$fetch_code = $fetch_data['code'];
$email = $fetch_data['email'];
$code = 0;
$status = 'verified';
$update_otp = "UPDATE usertable SET code = $code, status = '$status' WHERE code = $fetch_code";
$update_res = mysqli_query($con, $update_otp);
if($update_res){
$_SESSION['name'] = $name;
$_SESSION['email'] = $email;
header('location: home.php');
exit();
}else{
$errors['otp-error'] = "Failed while updating code!";
}
}else{
$errors['otp-error'] = "You've entered incorrect code!";
}
}

//if user click login button
if(isset($_POST['login'])){
$email = mysqli_real_escape_string($con, $_POST['email']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$check_email = "SELECT * FROM usertable WHERE email = '$email'";
$res = mysqli_query($con, $check_email);
if(mysqli_num_rows($res) > 0)
{
$fetch = mysqli_fetch_assoc($res);
$fetch_pass = $fetch['password'];
if(password_verify($password, $fetch_pass)){
$_SESSION['email'] = $email;
$status = $fetch['status'];
if($status == 'verified'){
$_SESSION['email'] = $email;
header('location: home.php');
}else{
$info = "It's look like you haven't still verify your email - $email";
$_SESSION['info'] = $info;
header('location: user-otp.php');
}
}else{
$errors['email'] = "Incorrect email or password!";
}
}else{
$errors['email'] = "It's look like you're not a yet member! Click on the bottom link to signup.";
}
}
?>

home.php
<?php require_once "controllerUserData.php"; ?>
<?php
$email = $_SESSION['email'];
if($email == false){
header('Location: login-user.php');
}
$fetch_data = "SELECT * FROM usertable WHERE email = '$email'";
$run_query = mysqli_query($con, $fetch_data);
$fetch_info = mysqli_fetch_assoc($run_query);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><?php echo $fetch_info['name'] ?> | Home</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<style>
@import url('https://fonts.googleapis.com/css?family=Poppins:400,500,600,700&display=swap');
nav{
padding-left: 100px!important;
padding-right: 100px!important;
background: #6665ee;
font-family: 'Poppins', sans-serif;
}
nav a.navbar-brand{
color: #fff;
font-size: 30px!important;
font-weight: 500;
}
button a{
color: #6665ee;
font-weight: 500;
}
button a:hover{
text-decoration: none;
}
h1{
position: absolute;
top: 50%;
left: 50%;
width: 100%;
text-align: center;
transform: translate(-50%, -50%);
font-size: 50px;
font-weight: 600;
}
<body style="background-color: blue;">
</style>
</head>
<body>
<nav class="navbar">
<a class="navbar-brand" href="#">Brand name</a>
<button type="button" class="btn btn-light"><a href="logout-user.php">Logout</a></button>
</nav>
<h1>
Welcome <?php echo $fetch_info['name'] ?></h1>
</body>
</html>

login-user.php
<?php require_once "controllerUserData.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login Form</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 offset-md-4 form login-form">
<form action="login-user.php" method="POST" autocomplete="">
<h2 class="text-center">
Login Form</h2>
<p class="text-center">
Login with your email and password.</p>
<?php
if(count($errors) > 0){
?>
<div class="alert alert-danger text-center">
<?php
foreach($errors as $showerror){
echo $showerror;
}
?>
</div>
<?php
}
?>
<div class="form-group">
<input class="form-control" type="email" name="email" placeholder="Email Address" required value="<?php echo $email ?>">
</div>
<div class="form-group">
<input class="form-control" type="password" name="password" placeholder="Password" required>
</div>
<div class="form-group">
<input class="form-control button" type="submit" name="login" value="Login">
</div>
<div class="link login-link text-center">
Not yet a member? <a href="signup-user.php">Signup now</a></div>
</form>
</div>
</div>
</div>
</body>
</html>

logout-user.php
<?php
session_start();
session_unset();
session_destroy();
header('location: login-user.php');
?>

user-otp.php
<?php require_once "controllerUserData.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Code Verification</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 offset-md-4 form">
<form action="user-otp.php" method="POST" autocomplete="off">
<h2 class="text-center">
Code Verification</h2>
<?php
if(isset($_SESSION['info'])){
?>
<div class="alert alert-success text-center">
<?php echo $_SESSION['info']; ?>
</div>
<?php
}
?>
<?php
if(count($errors) > 0){
?>
<div class="alert alert-danger text-center">
<?php
foreach($errors as $showerror){
echo $showerror;
}
?>
</div>
<?php
}
?>
<div class="form-group">
<input class="form-control" type="number" name="otp" placeholder="Enter verification code" required>
</div>
<div class="form-group">
<input class="form-control button" type="submit" name="check" value="Submit">
</div>
</form>
</div>
</div>
</div>
</body>
</html>

signup-user.php
<?php require_once "controllerUserData.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Signup Form</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 offset-md-4 form">
<form action="signup-user.php" method="POST" autocomplete="">
<h2 class="text-center">
Signup Form</h2>
<p class="text-center">
It's quick and easy.</p>
<?php
if(count($errors) == 1){
?>
<div class="alert alert-danger text-center">
<?php
foreach($errors as $showerror){
echo $showerror;
}
?>
</div>
<?php
}elseif(count($errors) > 1){
?>
<div class="alert alert-danger">
<?php
foreach($errors as $showerror){
?>
<li><?php echo $showerror; ?></li>
<?php
}
?>
</div>
<?php
}
?>
<div class="form-group">
<input class="form-control" type="text" name="name" placeholder="Full Name" required value="<?php echo $name ?>">
</div>
<div class="form-group">
<input class="form-control" type="email" name="email" placeholder="Email Address" required value="<?php echo $email ?>">
</div>
<div class="form-group">
<input class="form-control" type="password" name="password" placeholder="Password" required>
</div>
<div class="form-group">
<input class="form-control" type="password" name="cpassword" placeholder="Confirm password" required>
</div>
<div class="form-group">
<input class="form-control button" type="submit" name="signup" value="Signup">
</div>
<div class="link login-link text-center">
Already a member? <a href="login-user.php">Login here</a></div>
</form>
</div>
</div>
</div>
</body>
</html>



Merci!
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
3 277
Tu dis que tu as une erreur........... mais...... laquelle ??

De plus, active l'affichage des erreurs PHP au début de ton code... histoire d'avoir un peu d'infos en cas de soucis.
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Et mets en place de la gestion d'erreur sur ton mysqli.
Voir : mysqli error
https://www.w3schools.com/php/func_mysqli_error.asp

Pour finir, pour poster tes prochains codes... merci d'utiliser correctement les balises de code ( en y indiquant le langage PHP histoire que l'on ait la coloration syntaxique et la numérotation des lignes.
Explications à lire ENTIEREMENT disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4
Salut!Merci beaucoup pour la réponse!
C'est bon, j'ai fait ce que tu m'as proposé!

voici les erreurs:
http://localhost/login-user.php
voilà l'erreur:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\laragon\www\controllerUserData.php on line 81

http://localhost/signup-user.php
l'autre erreur sur le fichier signup-user.php
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\laragon\www\controllerUserData.php on line
Et J'ai lu le truc des balise entre <code php> Merci!


Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
3 277
Si tu ne nous montres pas ton code modifié... Difficile de te répondre...
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4
Salut!
Merci pour ta réponse!
En faite, pas capitos ou mettre ce code là:
<?php
$mysqli = new mysqli("localhost","my_user","my_password","my_db");

if ($mysqli -> connect_errno) {
  echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
  exit();
}

// Perform a query, check for error
if (!$mysqli -> query("INSERT INTO Persons (FirstName) VALUES ('Glenn')")) {
  echo("Error description: " . $mysqli -> error);
}

$mysqli -> close();
?>

Ou dans quel fichiers...
Merci!
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
3 277
alors déjà tu ne mets pas ce code là tel quel dans le tien ce n'est qu'un exemple qui t'explique comment écrire correctement ton code et détecter les éventuelles erreurs...
Ensuite il faut te baser sur l'exemple qui concerne l'écriture procédurale et non pas la forme objet tel que tu l'as fait..
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4
Salut!
Merci de ta réponse!
Mais est-ce sur que le problème vient de là?
Ou une erreur de bolean par ex {?

Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
3 277 >
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021

Autre question, pourquoi veux-tu retirer ce chant de date ??

Et puis bon, on a toujours pas vu ton code modifié... Difficile dans ces conditions de savoir ce que tu essayes de faire....
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4 >
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021

Salut!
En faite, ce que j'essaye de faire c'est de mettre ce code pour créer une table 'usertable'
sauf que ca me met un message d'erreur.
CREATE TABLE usertable (
id INT(11) AUTO_INCREMENT,
NAME 'varchar' (255);
email varchar (255);
password varchar (255);
code mediumint (50);
status TEXT;
)

Mais problème, erreur:
/* Erreur SQL (1064) : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 */
/* Lignes affectées : 0 Lignes trouvées : 0 Avertissements : 0 Durée pour 0 de 6 requêtes : 0,000 s */
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
3 277 >
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020

tu as mis des points virgules à la place des virgules ...
https://www.mysqltutorial.org/mysql-create-table/#:~:text=First%2C%20you%20specify%20the%20name,already%20exists%20in%20the%20database.

Mais bon ... j'insiste..... pourquoi vouloir t'obstiner à le faire en ligne de commandes... alors que c'est si simple de faire un clic droit dans laragon... ??
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4 >
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021

euh... Parce que je sais pas comment faire :'(...
En faite, je vais dans heidisql, create table dans ma database 'userform' dans l'onglet 'requête'.
Je vois pas comment faire autrement avec les "varchar,status text, mediumint int autoincrement etc...
Messages postés
31459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2021
3 277 >
Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020

Messages postés
52
Date d'inscription
samedi 22 août 2020
Statut
Membre
Dernière intervention
15 octobre 2020
4
Salut!
En faite, je suis trop naze...
J'AVAIS OUBLIE DE CREER LA TABLE usertable...