Problème requête mysqli
Résolu/Fermé
Tzmagnum
Messages postés
126
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
-
Modifié le 22 juin 2021 à 01:51
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 23 juin 2021 à 05:45
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 23 juin 2021 à 05:45
A voir également:
- Problème requête mysqli
- La requête graphql n’est pas autorisée facebook - Forum Facebook
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Requête sql pix - Forum Python
- Erreur de requete facebook rencontre - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de pomme mais pas de pomme de terre ? - Forum Minecraft
3 réponses
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
22 juin 2021 à 07:14
22 juin 2021 à 07:14
Bonjour
Fais un echo de ta variable $query puis serts toi de ce qui va s'afficher pour tester la requête directement dans ta bdd via phpmyadmin afin de t'assurer que la requête fonctionne .
Fais un echo de ta variable $query puis serts toi de ce qui va s'afficher pour tester la requête directement dans ta bdd via phpmyadmin afin de t'assurer que la requête fonctionne .
Tzmagnum
Messages postés
126
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
Modifié le 23 juin 2021 à 00:49
Modifié le 23 juin 2021 à 00:49
Voilà j'ai adapté en passant par 4 requètes et en mettant en echo query1 query2 query3 et query4
Cela me donne ça en affichage :
CREATE USER supraSupra@'%' IDENTIFIED BY test
GRANT USAGE ON * . * TO supraSupra@'%' IDENTIFIED BY test
CREATE DATABASE IF NOT EXISTS supraSupra DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci
GRANT ALL PRIVILEGES ON supraSupra . * TO supraSupra@'%'
Cela créer bien la table, mais pas l'utilisateur.
Merci d'avance de ton aide.
Voici le code adapté :
Cela me donne ça en affichage :
CREATE USER supraSupra@'%' IDENTIFIED BY test
GRANT USAGE ON * . * TO supraSupra@'%' IDENTIFIED BY test
CREATE DATABASE IF NOT EXISTS supraSupra DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci
GRANT ALL PRIVILEGES ON supraSupra . * TO supraSupra@'%'
Cela créer bien la table, mais pas l'utilisateur.
Merci d'avance de ton aide.
Voici le code adapté :
<?php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require('config.php'); $username="supraSupra"; $password="test"; $query1 = "CREATE USER $username@'%' IDENTIFIED BY $password"; $res1 = mysqli_query($conn, $query1); $query2 = "GRANT USAGE ON * . * TO $username@'%' IDENTIFIED BY $password"; $res2 = mysqli_query($conn, $query2); $query3 = "CREATE DATABASE IF NOT EXISTS $username DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci"; $res3 = mysqli_query($conn, $query3); $query4 = "GRANT ALL PRIVILEGES ON $username . * TO $username@'%'"; $res4 = mysqli_query($conn, $query4); ?> <?php echo $query1; ?><br /> <?php echo $query2; ?><br /> <?php echo $query3; ?><br /> <?php echo $query4; ?><br />
Tzmagnum
Messages postés
126
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
Modifié le 23 juin 2021 à 01:31
Modifié le 23 juin 2021 à 01:31
J'ai réussi, merci.
Il manquait juste les ' ' autour des variables des mots de passes et cela devait être passé requête par requête.
Pour les personnes intérressées, voici le code complet, parcontre je sais pas si on peut faire plus propre, j'ai bien entendu donné des exemples de username, password et nom de domaine pour des raisons de sécurité.
Et je n'arrive pas à passer mes variables dans mon shell (voir code plus bas).
Code page Php :
Code Shell de heb.sh : (se trouvant dans le même dossier)
Avez-vous des idées pour améliorer le code, passer les variables dans mon shell et le rendre plus propre svp ?
Merci d'avance
Il manquait juste les ' ' autour des variables des mots de passes et cela devait être passé requête par requête.
Pour les personnes intérressées, voici le code complet, parcontre je sais pas si on peut faire plus propre, j'ai bien entendu donné des exemples de username, password et nom de domaine pour des raisons de sécurité.
Et je n'arrive pas à passer mes variables dans mon shell (voir code plus bas).
Code page Php :
<?php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require('config.php'); $username="supraSupra"; $password="test"; $path = "/var/www/".$username; if (!is_dir($path)) { mkdir($path, 0777, true); } $vhost = $username.".conf"; $query_mysql_user = "CREATE USER $username@'%' IDENTIFIED BY '$password'"; $res_mysql_user = mysqli_query($conn, $query_mysql_user); $query_mysql_grant = "GRANT USAGE ON * . * TO $username@'%' IDENTIFIED BY '$password'"; $res_mysql_grant = mysqli_query($conn, $query_mysql_grant); $query_mysql_create_db = "CREATE DATABASE IF NOT EXISTS $username DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci"; $res_mysql_create_db = mysqli_query($conn, $query_mysql_create_db); $query_mysql_all_privilege = "GRANT ALL PRIVILEGES ON $username . * TO $username@'%'"; $res_mysql_all_privilege = mysqli_query($conn, $query_mysql_all_privilege); $query_ftp = "INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('$username', '1', '".hash('MD5', $password)."', '2001', '2001', '$path', '0', '0', '', '*', '0', '0')"; $res_ftp = mysqli_query($conn, $query_ftp); file_put_contents("/etc/apache2/sites-available/".$vhost, "<VirtualHost *:80>\r\n ServerName $username.test.be\r\n\r\n\r\nServerAdmin admin@test.be\r\n DocumentRoot $path\r\n\r\n\r\n ErrorLog /var/logs/apache2/error.log\r\n CustomLog /var/logs/apache2/access.log combined\r\n\r\n\r\n</VirtualHost>"); $output = exec("./heb.sh $vhost"); ?>
Code Shell de heb.sh : (se trouvant dans le même dossier)
#!/bin/bash sudo a2ensite $vhost sudo service apache2 reload
Avez-vous des idées pour améliorer le code, passer les variables dans mon shell et le rendre plus propre svp ?
Merci d'avance
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
23 juin 2021 à 05:45
23 juin 2021 à 05:45
Pour le script shell.. ce n'est pas ici qu'il faut Poser la question...
Mais bon.. voici de quoi y répondre
https://forums.commentcamarche.net/forum/affich-37619992-bash-les-arguments-parametres
Mais bon.. voici de quoi y répondre
https://forums.commentcamarche.net/forum/affich-37619992-bash-les-arguments-parametres
22 juin 2021 à 07:15
Il faudra certainement exécuter trois requetes distinctes dans le php.