création de table

x@v
Mammouth du PHP | 570 Messages

28 juil. 2008, 00:44

Bonjour,
j'essaie de créer une classe avec lesquel je vais créer une base puis une table, mais bizarrement une fois la base crée puis la classe créer, je n'arrive plus à rediriger, j'ai aucun message d'erreur ?
$var='<?php
require_once("message.class.php");
class Connection extends PDO 
{
	private $db = "'.$_POST['choixBase'].'"; 
	private $host = "'.$_POST['serveur'].'";
	private $user = "'.$_POST['utilisateur'].'";
	private $pwd = "'.$_POST['motPasse'].'";
	private $email="'.$_POST['eMail'].'";	
';
         $var.=file_get_contents('../class/config.txt');
         file_put_contents('../class/class.pdo.php', $var);
         header('../class/creationTable.php');
Merci

Mammouth du PHP | 804 Messages

28 juil. 2008, 10:20

Bonjour,
header("Location: ../class/creationTable.php");

ViPHP
ViPHP | 5924 Messages

28 juil. 2008, 14:32

Ca ne changera rien, c'est parfaitement valide avec des simples quotes.
Es-tu sûr d'afficher les erreurs ?

x@v
Mammouth du PHP | 570 Messages

28 juil. 2008, 17:03

je n'ai pas de message d'erreur, c'est peut être l'écriture du fichier qui déconne,

d'alleuirs dans la doc il parle de sortie binaire, c'est quoi la sortie binaire ?

j'ai changé mon script, l'insertion des tables fonctionne seulement si je le fait

sur une autre page d'ou le lien "etape 4" (en bas), mmême un header bête ne fonctionne pas

mais j'aimerai bien comprendre d'ou viennent ce genre de problèmes ?

Je n'ai bien sur aucun message d'erreur dans tous les cas.
         //////////////////////////////////////////
		 include('../class/class.pdo1.php');
         $connection=new Connection();
         $sql="CREATE DATABASE ".$_POST['choixBase'];
         echo $sql;
         $connection->select($sql);
         $message='Votre base à été créé avec succès...';
         header('../class/creationTable.php');
$var='<?php
require_once("message.class.php");
class Connection extends PDO 
{
	private $db = "'.$_POST['choixBase'].'"; 
	private $host = "'.$_POST['serveur'].'";
	private $user = "'.$_POST['utilisateur'].'";
	private $pwd = "'.$_POST['motPasse'].'";
	private $email="'.$_POST['eMail'].'";
	private $con;					// 
	private $select; 				// requette de séléction
	private $execute; 				// requette d\'execution
	private $result;				//
	private $dns;
      
    public function __construct () 
    {
        try 
        {
			$this->con = parent::__construct($this->getDns(), $this->user, $this->pwd);
		    // pour mysql on active le cache de requête
		    if($this->getAttribute(PDO::ATTR_DRIVER_NAME) == \'mysql\')
		    	$this->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
		    return $this->con;
        }
        catch(PDOException $e) {
			//On indique par email qu\'on n\'a plus de connection disponible
			error_log(date(\'D/m/y\').\' à \'.date(\'H:i:s\').\' : \'.$e->getMessage(), 1, \'[email protected]\');
			$message= new Message();
			$message->outPut(\'Erreur 500\', \'Serveur de BDD indisponible, nous nous excusons de la gêne occasionnée\');
		}
    }

	public function select($reqSelect)
	{
			$this->con = parent::beginTransaction();
			//$result= parent::query($reqSelect);
			$result = parent::prepare($reqSelect);
			$result->execute();
			$this->con = parent::commit();
			// ou
			// $this->con = parent::rollBack();
	  		return $result;
	}

	public function injection($sql)
	{
		try
		{
			$this->con = parent::beginTransaction();
			$result= parent::prepare($sql);
			$this->con = parent::commit();
	  		return $result;
		}
		catch (Exception $e)
		{
			error_log(date(\'D/m/y\').\' à \'.date("H:i:s").\' : \'.$e->getMessage(), 1, \'[email protected]\');
			$this->con =parent::rollBack();
			$message= new Message();
			$message->outPut(\'Erreur dans la requêtte\', \'Votre requête a été abandonné\');
		}
	}
	
	// renvoie un tableau que l\'on peux travailler avec count($result)...
	public function selectTableau($reqSelect)
	{
		$result = parent::prepare($reqSelect);
		$result->execute();
		/* Récupération de toutes les lignes d\'un jeu de résultats "équivalent à mysql_num_row() " */
		$resultat = $result->fetchAll();
		return $resultat;
	}

	// on change le type de base ici
	public function getDns()
	{
		return \'mysql:dbname=\'.$this->db.\';host=\'.$this->host;
	}
}
?>';

		//$var.=file_get_contents('../class/config.txt');
		file_put_contents('../class/class.pdo.php', $var);
		echo '
		<a href="creationTable.php">étape 4</a>';
         //////////////////////////////////////////

ViPHP
ViPHP | 5924 Messages

28 juil. 2008, 17:47

Je n'ai bien sur aucun message d'erreur dans tous les cas.
Oui mais sont-elles activées ? Notamment les NOTICE.

x@v
Mammouth du PHP | 570 Messages

29 juil. 2008, 15:58

j'ai la config de base de wamp !
Comment les active -t-ont ?

ViPHP
ViPHP | 5924 Messages

29 juil. 2008, 16:12

Tu mets error_reporting à E_ALL dans ton php.ini

Eléphant du PHP | 396 Messages

29 juil. 2008, 16:30

Ca ne changera rien, c'est parfaitement valide avec des simples quotes.
Es-tu sûr d'afficher les erreurs ?
Sauf qu'il a oublié "Location :" ;)

ViPHP
ViPHP | 5924 Messages

29 juil. 2008, 17:47

Ca ne changera rien, c'est parfaitement valide avec des simples quotes.
Es-tu sûr d'afficher les erreurs ?
Sauf qu'il a oublié "Location :" ;)
ah, … ouais… :)
Au temps pour moi :-/

x@v
Mammouth du PHP | 570 Messages

30 juil. 2008, 10:56

et moi...
sa fonctionne mais ne me plait pas trop, mais sa va le faire.
c'est surement que je dois serialiser et désarialiser ma classe, puisque je crée mes table sur une autre page et sa fonctionne.
Bientôt mon projet open souorce sera prêt ;)

Eléphant du PHP | 396 Messages

30 juil. 2008, 10:58

Juste pour être complet.
Comme le siginifie la doc :
<?php
header("Location: http://www.example.com/"); /* Redirection du navigateur */

/* Assurez-vous que la suite du code ne soit pas exécutée une fois la redirection effectuée. */
exit;
?>

x@v
Mammouth du PHP | 570 Messages

30 juil. 2008, 11:02

je suis dans test conditionnel, donc sa ne s'execute pas, mais merci pour ta précision.