Enregistrer dans une base de données

Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 16 mai 2011 à 17:06
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 - 17 mai 2011 à 10:49
Salut !
Pouvez-vous m'aider à exécuter ce script svp ?
Je n'arrives pas à enregistrer dans ma base de donnée alors que lorsque je clique sur le bouton envoyer, il me donne une confirmation de l'envoie.

Voici mon code dans le body

<form name="generateur" method="post" onSubmit="return(VerifForm(this))">
/>
/>
/>

</form>


Et mon code au dessus du head :
<?php
include("bdd.php");
if (Auth::isAdmin() == false)
  die("Vous n'êtes pas l'administrateur !");


$err = false;
$msg = "";
if ($_SERVER['REQUEST_METHOD'] != 'GET')
  {
    if (isset($_POST['username']) == false || empty($_POST['username']) || !preg_match("#^[a-z0-9]+$#i", $_POST['username']))
      {
$err = true;
$msg = "Veuillez renseigner un nom d'utilisateur alphanumérique";
      }
    else if (isset($_POST['password']) == false || strlen($_POST['password']) < 8)
      {
$err = true;
$msg = "Veuillez renseigner un mot de passe de 8 caractères minimum";
      }
    else if (!isset($_POST['mail']) || !check_mail($_POST['mail']))
      {
$err = true;
$msg = "Veuillez renseigner un mail correct";
      }
    else
      {
$tab['username'] = MySql::sqlescape($_POST['username']);
$tab['password'] = MySql::sqlescape($_POST['password']);
$tab['mail'] = MySql::sqlescape($_POST['mail']);

if (MySql::getConnection()->insertupdate("users", $tab))
  {
    $err = false;
    $msg = 'Le compte du client a été ajouté avec succès.';
    $usermail = "Bonjour,
".
      "Votre compte  a bien ete créé
".
      "Nom d'utilisateur : ".htmlentities($tab['username'])."
".
      "Mot de passe : ".htmlentities($tab['password'])."

".
      "A bientot  !
";
    $admmail = "Bonjour,
".
      "Un nouveau compte  a été créé
".
      "Nom d'utilisateur : ".htmlentities($tab['username'])."
".
      "Mot de passe : ".htmlentities($tab['password'])."

".
      "A bientot  !
";
    Mail::mail2adm("Nouveau compte ", $admmail);
    Mail::mail2usr(MySql::getConnection()->insert_id(), "Votre compte ", $usermail);
    @mkdir("up".MySql::getConnection()->insert_id());
  } else {
  $msg = 'Impossible d\'ajouter l\'utilisateur';
  $err = true;
}
      }
  }
?>


Merci de m'aider..
PS: Je suis novice en PHP, ce code est un copié/collé d'un script d'ami :$

----------
OS : Windows XP SP3 et Vista 32
Platforme : VB 6.0 + SP6
Ok VB6.0 c'est pas net !

4 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
16 mai 2011 à 20:59
bonsoir
il faudrait plutôt poster la requête !
pour comprendre ...
et include("bdd.php");
voir la class
parce que là ...
a++

Bonne programmation !
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
16 mai 2011 à 21:16
Peut tu m'aider d'avantage stp ?
Poster la requête INSERT INTO ? où ? Comment ?
et include("bdd.php"); à un problème ?
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
16 mai 2011 à 23:13
Je penses savoir où se trouves les requêtes :

Je ne vois vraiment pas où se trouve l'enregistrement dans la base utilisateurs...

<?php
// Configuration

define(DB_HOST, "xxxxx");
define(DB_NAME, "xxxxx");
define(DB_USER, "xxxxx");
define(DB_PASSWORD, "xxxxx");
define(PATH, "");
define(RESPONSE_MAIL, "xxxxx@gmail.com");
// API

date_default_timezone_set("Etc/GMT+0");

function check_mail($mail) 		{$regex = "#^[\w]([\w]+[-_.]{0,1})*@([\w][\w-.]*[\w])+\.[a-zA-Z]+$#"; if (preg_match($regex, $mail)) return true; else return false;}
function modif_date($date) 		{$tab explode("/", $date); $res $tab[2]."-".$tab[1]."-".$tab[0]; return $res;}
function display_date($date) 	{$tab = explode("-", $date); return $tab[2]."/".$tab[1]."/".$tab[0];}

class Auth
{
public static function isAdmin() {session_start();
if (isset($_SESSION['admin']) && $_SESSION['admin'] == true) return true; else return false;}

public static function isClient() {session_start();
if (isset($_SESSION['logged']) && $_SESSION['logged'] == true) return true; else return false;}

public static function login($username, $password) 	{
$sql = MySql::getConnection();
$res $sql->query("SELECT id, is_admin FROM utilisateurs where username '".MySql::sqlescape($username)."' and password = '".MySql::sqlescape($password)."'");
if (!$sql->num_rows()) return false;}

public static function usernameExist($username)		{
$sql = MySql::getConnection();
$res $sql->query("SELECT id FROM utilisateurs WHERE username '".MySql::sqlescape($username)."'");
if (!$sql->num_rows()) return false; else return true;}
}

class Files	{public static function delFile($id){$path Files::FilePath($id); @unlink($path); MySql::getConnection()->query("DELETE FROM files WHERE id '".intval($id)."'");}

  public static function canDwl($id)
  {
    if (Auth::isAdmin())
      return true;
    $res MySql::getConnection()->query("SELECT id_user FROM files WHERE id '".intval($id)."'")->result();
    session_start();
    if ($res == $_SESSION['id'])
      return true;
    return false;
  }

  public static function verif_file($tabfile)
  {
    if ($tabfile['type'] != 'application/octet-stream')
      return false;
    $data = file_get_contents($tabfile['tmp_name'], false, NULL, 4, 15);
    if (!$data)
      return false;
    if ($data != "Standard Jet DB")
      return false;
    return true;
  }

}

class MySql {
  private $link;
  private $query;
  private static $db;

  public static function getConnection() {
    if (MySql::$db == null)
      MySql::$db = New MySql();
    return MySql::$db;
  }

  public function __construct()
  {
    if (MySql::$db !== null)
      return MySql::$db;
    if ($this->link !== null)
      return ($this->link);
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if (!$link) {
      die('Impossible de se connecter a la Base de données);
    }
    if (mysql_select_db(DB_NAME, $link) === false)
      die('la BDD n\'existe pas');
    $this->link = $link;
    return ($this);
  }

  public static function sqlescape($var)
  {
    MySql::getConnection();
    return (mysql_real_escape_string($var));
  }
  
  public function query($query) {

    if ($this->link == null)
      return false;
    $qu = @mysql_query($query, $this->link);
    $this->query = $qu;

    return ($this);
  }

  public function fetch() {
    $r = array();
    if ($this->query !== false && $this->num_rows() > 0) {
      while ($l = mysql_fetch_array($this->query, MYSQL_ASSOC)) {
$r[] = $l;
      }
    }
    return ($r);
  }

  public function beginTransact()
  {
    if (!$this->query("SET AUTOCOMMIT = 0; START TRANSACTION"))
      return false;
    return $this;
  }

  public function lasterror()
  {
    return mysql_error();
  }

  public function stopTransact()
  {
    if (!$this->query("SET AUTOCOMMIT = 1"))
      return false;
    return $this;
  }

  public function commit()
  {
    if (!$this->query("COMMIT"))
      return false;
    return $this;
  }

  public function insertupdate($table, $array)
  {
    if (!is_array($array))
      return (false);
    $tmp = array_values($array);
    if (is_array($tmp[0]))
      {
$i = 0;
foreach ($tmp as $t)
  {
    $res[$i] = insertupdate((is_array($table) ? $table[$i] : $table), $t);
    $i++;
  }
return ($res);
      }
    if (array_key_exists("id", $array) && $array['id'] != '')
      {
$sql = "UPDATE ".mysql_real_escape_string($table)." SET ";
$newtab = array();
foreach ($array as $key=>$val)
  {
    if ($key == "id")
      continue;
    array_push($newtab, mysql_real_escape_string($key)."='".mysql_real_escape_string($val)."'");
  }
$sql .= implode(" , ", $newtab)." WHERE id='".mysql_escape_string($array['id'])."'";
      }
    else
      $sql = "INSERT INTO ".mysql_real_escape_string($table).
"(".implode(", ", array_map('mysql_real_escape_string', array_keys($array))).")
VALUES('".implode("', '", array_map('mysql_real_escape_string', $array))."')";
    return ($this->query($sql));
  }

  public function result() {
    return (@mysql_result($this->query, 0));
  }

  public function num_rows() {
    return @mysql_num_rows($this->query);
  }

  public function affected_rows() {
    return @mysql_affected_rows($this->query);
  }

  public function insert_id() {
    return @mysql_insert_id();
  }

  public function close() {
    if ($this->link !== null)
      mysql_close($this->link);
    $this->link = null;
    MySql::$db = null;
  }

}

class Mail
{
  public static function mail2adm($subject, $msg)
  {
    $listadm MySql::getConnection()->query("SELECT mail FROM utilisateurs WHERE is_admin 1")->fetch();
    $headers = "From: ". RESPONSE_MAIL."\r\n" .
      'X-Mailer: PHP/' . phpversion() . "\r\n" .
      "MIME-Version: 1.0\r\n" .
      "Content-Type: text/html; charset=utf-8\r\n" .
      "Content-Transfer-Encoding: 8bit\r\n\r\n";
    foreach ($listadm as $admin)
      {
@mail($admin['mail'], $subject, $msg, $headers);
      }
  }

  public static function mail2usr($id, $subject, $msg)
  {
    $mail MySql::getConnection()->query("SELECT mail FROM utilisateurs WHERE id '".intval($id)."'")->result();
    $headers = "From: ". RESPONSE_MAIL."\r\n" .
      'X-Mailer: PHP/' . phpversion() . "\r\n" .
      "MIME-Version: 1.0\r\n" .
      "Content-Type: text/html; charset=utf-8\r\n" .
      "Content-Transfer-Encoding: 8bit\r\n\r\n";
    @mail($mail, $subject, $msg, $headers);
  }

}

// Triggers d'initialisation.

MySql::getConnection()->query("UPDATE users SET enabled 0 WHERE is_admin 0 AND fin_compte < NOW()");
?>
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
17 mai 2011 à 10:49
bonjour
j'ai testé comme ça
l'inscription fonctionne
a++

table bidon pour le test

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`mail` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;




0
Rejoignez-nous