Problème insertion bdd

Eléphant du PHP | 75 Messages

17 juil. 2014, 16:12

Salut à tous
Petit soucis, je n'ai aucune insertion en bdd comment ça se fait svp, merci pour votre aide
<?php
session_start();
if(!empty($_SESSION['membre']))
{
  header('Location: index.php');
}

if(!empty($_POST))
{
  extract($_POST);
  $valid = true;
  
  if(empty($city))
  {
    $valid = false;
    $erreurcity = 'Indiquez une ville';
  }
    
  if(empty($street))
  {
    $valid = false;
    $erreurstreet = 'Indiquez un nom de rue';
  }
  
   if(empty($postcode))
  {
    $valid = false;
    $erreurpostcode = 'Indiquez un code postal';
  }
  
  if(empty($phone))
  {
    $valid = false;
    $erreurphone = 'Indiquez un téléphone';
  }
  
  try{
  $bdd = new PDO('mysql:host=***********;dbname=***********','********','*****') or die(print_r($bdd->errorInfo()));
  $bdd->exec('SET NAMES utf8');
  }
  
  catch(Exeption $e){
  die('Erreur:'.$e->getMessage());
  }
  
    
$req = $bdd->prepare('INSERT INTO `orders` (`user_id`,`created`, `titre`, `phone`, `street`, `postcode`, `city`)

VALUES ( :user_id, NOW(), :titre, :phone, :street, :postcode, :city)');

$req->execute(array(
'user_id' => $_POST['membre'],
'titre'=>$_POST['titre'],
'phone'=>$_POST['phone'],
'street'=>$_POST['street'],
'postcode'=>$_POST['postcode'],
'city'=>$_POST['city']
));
    
}

?>


 
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Stripe Getting Started Form</title>

</head>
<body>

<form action="buy.php" method="POST" id="payment-form">




      <!-- Ville de la sortie -->
      <label>Ville *</label>
      <input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
      <div class="error"><?php if(isset($erreurscity['city'])) echo $erreurscity['city'];?></div>

	  <!-- Ville de la sortie -->
      <label>Rue</label>
      <input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
      <div class="error"><?php if(isset($erreursstreet['street'])) echo $erreursstreet['street'];?></div>
     
      <!-- Code postal de la sortie -->
      <label>Code postal *</label>
      <input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
      <div class="error"><?php if(isset($erreurspostcode['postcode'])) echo $erreurspostcode['postcode'];?></div>
      
      <label>Télephone</label>
      <input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
      <div class="error"><?php if(isset($erreursphone['phone'])) echo $erreursphone['phone'];?></div>
       
      <input name="membre" type="text" value="<?php echo $_SESSION['user']['id'] ?>" />


<button type="submit" class="submit-button">Submit Payment</button>

</form>

J'ai essayé ça mais le résultat est le même rien en bdd:
?php
$req = $bdd->prepare('INSERT INTO orders (user_id,titre,phone,street,postcode,city) VALUES ( :user_id, :titre, :phone, :street, :postcode, :city)');
    $req->execute(array(
      'user_id'=>$user_id,
	  'titre'=>$titre,
	  'phone'=>$phone,
	  'street'=>$street,
	  'postcode'=>$postcode,
	  'city'=>$city
    ));
	
	}

?>

Mammouth du PHP | 1339 Messages

17 juil. 2014, 18:26

La page s'appelle buy.php ? Sinon le probleme vient de la déjà ...

<
form action="buy.php" method="POST" id="payment-form">
Déjà j'ai l'erreur : Notice: Undefined index: titre in C:\Program Files\wamp\www\test.php on line 48

Donc pour moi il lui manque une variable dans la requete donc il la prend pas en compte...

Ca fait un moment que tu galeres avec ton paiement... Je commence a m'inquieter
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 75 Messages

17 juil. 2014, 20:42

Salut Elie,
Oui j'ai pas mal galère avec paypal surtout, j'ai basculé vers Stripe.
C'est bon mon formulaire marche maintenant,
J'ai bien mon insert en BDD ainsi que le paiement d'effectué.
Cependant :) .

Je souhaite rajouté 2 variable mais ces 2 dernières ne s'insère pas en BDD ( input photo et $_SESSION user_id )
Merci encore à tous ceux qui sont la pour m'aider.

La requete complete
<?php
 $req = $bdd->prepare('INSERT INTO orders (user_id,titre,phone,street,postcode,city) VALUES (:user_id,:titre,:photo,:phone,:street,:postcode,:city)');
    $req->execute(array(
	  'user_id'=>$user_id,
	  'titre'=>$titre,
	  'photo'=>$photo,
	  'phone'=>$phone,
	  'street'=>$street,
	  'postcode'=>$postcode,
	  'city'=>$city
    ));
?>
Les 2 champs qui pose problème
<form action="buy.php" method="POST" enctype="multipart/form-data" id="payment-form">
<!--reste du code -->
<input type="file" name="avatar" />
<input name="membre" type="text" value="<?php echo $_SESSION['user']['id'] ?>" />
Le traitement pour la photo
<?php
if(!empty($_FILES))
{
	$avatar = $_FILES['avatar'];
	$avatar_name = $avatar['name'];
	$ext = strtolower(substr(strrchr($avatar_name,'.'),1));
	$ext_aut = array('jpg','jpeg','png','gif');
	
	function check_extension($ext,$ext_aut)
	{
		if(in_array($ext,$ext_aut))
		{
			return true;
		}
	}
	
	$valid = (!check_extension($ext,$ext_aut)) ? false : true;
	$erreur = (!check_extension($ext,$ext_aut)) ? 'Veuillez charger une image' : '';
	
	if($valid)
	{
		$max_size = 2000000;
		if($avatar['size']>$max_size)
		{
			$valid = false;
			$erreur = 'Fichier trop gros';
		}
	}
	
	if($valid)
	{
		if($avatar['error']>0)
		{
			$valid = false;
			$erreur = 'Erreur lors du transfert';
		}
	}
	
	if($valid)
	{
		$path_to_image = 'images/fullsize/';
		$path_to_min = 'images/min/';
		
		$filename = sha1(uniqid($avatar_name));
		
		$source = $avatar['tmp_name'];
		$target = $path_to_image . $filename. '.'. $ext;
		
		move_uploaded_file($source,$target);
		
		if($ext == 'jpg' || $ext == 'jpeg') {$im = imagecreatefromjpeg($path_to_image.$filename.'.'.$ext);}
		if($ext == 'png') {$im = imagecreatefrompng($path_to_image.$filename.'.'.$ext);}
		if($ext == 'gif') { $im = imagecreatefromgif($path_to_image.$filename.'.'.$ext);}
		
		$ox = imagesx($im);
		$oy = imagesy($im);
		
		$nx = 150;
		$ny = floor($oy *($nx/$ox));
		
		$nm = imagecreatetruecolor($nx,$ny);
		
		imagecopyresized($nm, $im, 0,0,0,0, $nx,$ny,$ox,$oy);
		
		imagejpeg($nm, $path_to_min.$filename.'.'.$ext);
		
		$nom_image = $filename.'.'.$ext;
		
		$req = $bdd->prepare('INSERT INTO upload(nom) VALUES(:nom)');
		$req->execute(array('nom'=>$nom_image));
		$req->closeCursor();
		
		$success = 'Upload ok';
	}
}

?>
Modifié en dernier par cindy381 le 17 juil. 2014, 20:46, modifié 1 fois.

Mammouth du PHP | 504 Messages

17 juil. 2014, 20:46

Bonjour,

Je suis plus qu' inquiet Elie. ça fait 1 semaine qu'il ou elle galère sur ce paiement. La semaine dernière c'était paypal maintenant c'en est un autre et les post sont modifiés d'heure en heure. c'est trés diffile a suivre.

De plus, ça fait une semaine que je lui explique avec le même script contre vent et marée que:
form action="buy.php" method="POST" id="payment-form">
Les variables postés sont récupérables seulement sur la page buy.php
form action="" method="POST" id="payment-form">
Les variables postés sont récupérables sur la page en cours.

Mais ça ne rentre pas...

Je ne comprend pas comment on peut faire PDO, mysql, et système de paiement sans même savoir faire un formulaire simple html et récupérer les données ???? ça, ça me scie =D>

Mis a part copier coller des scripts trouvé à droite et à gauche et espérer que ça marche sinon... le plus stupéfiant dans cette démarche c'est le refus catégorique d'apprendre (je prends et je colle basta ).

Mammouth du PHP | 1339 Messages

17 juil. 2014, 21:00

Fait un print_r($_FILES); voir l'image est bien uploadé.
Met des petits echo un peu partout pour debugguer...

Essaye deja par toi meme et sinon ouvre un nouveau sujet :)
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 75 Messages

17 juil. 2014, 21:35

Merci pour le conseil Elie,
Damien-55 regarde bien, qui a corrigé le problème finalement toi ? nan c'est moi toute seule.
C'est sur que je fait des conneries mais il me semble que c'est écrit PHP débutant dans le chanel,
ce que je trouve triste par contre c'est que tu prend du temps pour poster ce genre de message sur ce bonne route quand même.

Elie, je reviens vers toi en cas.
Je vais tacher de trouver le problème

Eléphant du PHP | 75 Messages

17 juil. 2014, 23:27

C'est bon j'ai réussi à enregistrer en bdd les img

j'ai plus que ma variable created qui foire
$req = $bdd->prepare('INSERT INTO orders (titre,phone,created,,photo,street,postcode,city) VALUES (:titre,:phone,NOW(),photo,:street,:postcode,:city)');
    $req->execute(array(
	  'titre'=>$titre,
	  'phone'=>$phone,
	  'created'=>NOW(),
	  'photo'=>$photo_image,
	  'street'=>$street,
	  'postcode'=>$postcode,
	  'city'=>$city
    ));

Mammouth du PHP | 1339 Messages

18 juil. 2014, 08:50

Now() est réservé à MYSQL la tu la passe en PHP. Je sais pas si faut remplacer par time() ou par date('Y-m-d')
Bon sinon tu me fais un message privé et on se fait un TeamViewer