Bonjour à tous, avant tout sachez que je suis une truffe en php mais j'en ai malheureusement besoin pour me simplifier la vie. J'ai donc l'habitude de pomper à droite et à gauche des petits bouts de code que j'adapte jusqu'à ce que ça marche pour que ça corresponde à mes besoins.
Possédant 2 sites et plusieurs bases de données j'en ai marre de rentrer certaines données en passant par phpmyadmin. J'aimerai passer par un formulaire pour certaines taches simples. J'ai donc décidé de me lancer dans le formulaire à remplir. Je suis en PHP 7.2

J'ai créé pour me faire la main une nouvelle base avec seulement 5 champs :
1 image_id Primaire int(4) AUTO_INCREMENT
2 titre varchar(500) latin1_general_ci
3 description varchar(600) latin1_general_ci
4 nom_image varchar(50) latin1_general_ci
5 legende_image varchar(200) latin1_general_ci
6 en_savoir_plus varchar(500) latin1_general_ci

Puis dans une page php j'ai mis celà :

<form name="inscription" method="post" action="interface-image3.php">
Titre : <input type="varchar" name="titre"/> <br/>
Description : <input type="varchar" name="description"/> <br/>
nom_image : <input type="varchar" name="nom_image"/> <br/>
legende_image : <input type="varchar" name="legende_image"/><br/>
en_savoir_plus : <input type="varchar" name="en_savoir_plus"/><br/>
<input type="submit" name="valider" value="OK"/>
</form>

<?php
if (isset ($_POST['valider'])){
//On récupère les valeurs entrées par l'utilisateur :
$titre=$_POST['titre'];
$description=$_POST['description'];
$nom_image=$_POST['nom_image'];
$legende_image=$_POST['legende_image'];
$en_savoir_plus=$_POST['en_savoir_plus'];

//On se connecte

$connect = mysqli_connect('xxxxxxxxxxxx', 'xxxxxxx', 'xxxxxxxxxx', 'xxxxxxxxxx');
if (mysqli_error()) {
die('<p>La connexion au serveur MySQL a échoué: '.mysqli_error().'</p>');
} else {
echo '<p>Connexion au serveur MySQL établie avec succès.</p >';
}

//On prépare la commande sql d'insertion
$sql = 'INSERT INTO image_a-la-une(titre, description,nom_image, legende_image, en_savoir_plus) VALUES ("'.$titre.'","'.$description.'","'.$nom_image.'","'.$legende_image.'","'.$en_savoir_plus.'")';

/*on lance la commande (mysql_query) et au cas où,
on rédige un petit message d'erreur si la requête ne passe pas (or die)
(Message qui intègrera les causes d'erreur sql)*/
mysqli_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysqli_error());

// on ferme la connexion
mysqli_close();
}
?>

Smiley eek Et voila mon problème lorsque je rentre des données

Connexion au serveur MySQL établie avec succès.

Erreur SQL !INSERT INTO image_a-la-une(titre, description,nom_image, legende_image, en_savoir_plus) VALUES ("dsfsd","xgdfgb","regcbc","dht,;i;v","fnccnc")


Merci pour votre aide
Modifié par Pensae (26 Sep 2019 - 19:19)
Bonsoir,
En renomant la base imagealaune et en faisant les changements dans le formulaires j'ai la même erreur :
Erreur SQL !INSERT INTO imagealaune(titre, description,nom_image, legende_image, en_savoir_plus) VALUES ("dgdfgdfg","wqgfgg","gdgs","sdgdgfdg","dsgfdgfdgdf")

<h2>Entrez les données demandées :</h2>
<form name="inscription" method="post" action="interface-image3.php">
Titre : <input type="varchar" name="titre"/> <br/>
Description : <input type="varchar" name="description"/> <br/>
nom_image : <input type="varchar" name="nom_image"/> <br/>
legende_image : <input type="varchar" name="legende_image"/><br/>
en_savoir_plus : <input type="varchar" name="en_savoir_plus"/><br/>
<input type="submit" name="valider" value="OK"/>
</form>

<?php
if (isset ($_POST['valider'])){
//On récupère les valeurs entrées par l'utilisateur :
$titre=$_POST['titre'];
$description=$_POST['description'];
$nom_image=$_POST['nom_image'];
$legende_image=$_POST['legende_image'];
$en_savoir_plus=$_POST['en_savoir_plus'];

//On se connecte

$connect = mysqli_connect('xxxxxxxx', 'xxxxxx', 'xxxx', 'xxx');

if (mysqli_connect_errno()) {
die('<p>La connexion au serveur MySQL a échoué: '.mysqli_connect_error().'</p>');
} else {
echo '<p>Connexion au serveur MySQL établie avec succès.</p >';}

//On prépare la commande sql d'insertion
$sql = 'INSERT INTO imagealaune(titre, description,nom_image, legende_image, en_savoir_plus) VALUES ("'.$titre.'","'.$description.'","'.$nom_image.'","'.$legende_image.'","'.$en_savoir_plus.'")';

/*on lance la commande (mysql_query) et au cas où,
on rédige un petit message d'erreur si la requête ne passe pas (or die)
(Message qui intègrera les causes d'erreur sql)*/
mysqli_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysqli_error());

// on ferme la connexion
mysqli_close();
}
?>
Modifié par Pensae (26 Sep 2019 - 22:05)
Bon je pense que le problème vient du côté du serveur 1&1 :

Accès à la base de données uniquement via votre site Web / présence Web
Veuillez toujours vous connecter à votre base de données en passant par votre site Web / présence Web. Pour des raisons de sécurité, l'accès direct à la base de données, par exemple via votre ordinateur local (connexion ODBC externe), n'est pas possible.

Afin de protéger vos données, votre base de données MySQL se trouve sur un serveur dédié de base de données protégé par un pare-feu.