Forums » Problème en PHP:

Problème en PHP  

Lancé par jss - 27 réponses - Page 1



jss
jss
Bon Chuunin

Problème en PHP

Bonjours,


J'ai un problème que même après des long heures de Documentation je n'arrive toujours pas a régler.

J'ai créer un formulaire qui récupère des Email et des pseudo dans ma basse de donnée mais comme je suis un grand compliqué de la vie, je voudrais aussi que ce formulaire ce redirigent automatiquement vers un nouveaux lien a chaque fois que je change ce lien dans la basse de donnée.

Pour cela je doit faire une concaténation (je déteste ce verbe) mais je n'y arrivent pas ma page reste blanche elle n'enregistre rien du tout et elle ne ce redirige pas non plus...


Voila le code de ma page de redirection

Code:

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=le-nom-de-lôte=pseudo', 'ect', 'motdepasse', $pdo_options);

    $reponse = $bdd->query('SELECT id, leliens FROM lesliens ORDER BY id');
    
$lelien = $donnees['leliens']



?>

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=le-nom-de-lôte=pseudo', 'ect', 'motdepasse', $pdo_options);


$req = $bdd->prepare('INSERT INTO Infot(maile, pseudo) VALUES (?, ?)');
$req->execute(array($_POST['maile'], $_POST['pseudo']));

}
catch(Exception $e)
{
die('Ta fait une connerie ! : ' . $e->getMessage());
}

header('Location:' .$lelien);

?>

Ce code et un gros brouillons qui ne ressemble plus a rien je les tellement modifier que je ne sait même plus où gens suis.


Bref, la page blanche qui et affichez provient du header() qui et mal placer en théorie.. Seulement je ne sait plus comment faire pour réparez cette redirection un coup de mains ? un conseille ? je suis preneur.



Logiquement la redirection devrait :

1 -  enregistré le [b]maile[/b] et le [b]pseudo[/b] dans la [b]BDD[/b]
2 - récupéré dans la table [b]lesliens[/b] le premier ou dernier lien enregistrez
3 - placer ce lien dans l'[b]header()[/b] avec la variable [b]$lelien[/b]



Alors pourquoi j'ai une page blanche ? (=_=)....

Dernière modification par jss (31-12-2013 10:49:37)

[Naka]

sLaxx
sLaxx
Chuunin

  • 828 Messages | Galerie | Recueil | Offline

Re: Problème en PHP

Salut,

Nul part tu vas récupérer le résultat de ta requête, donc la ligne "$lelien = $donnees['liens']" est inutile, puisque tu assignes une valeur à ta variable qu'est vide. Rajoute juste après ta requête un $donnees = $tonObjetDeRequete::fetch(PDO::FETCH_ASSOC)

Tu feras gaffe tu cherches à te connecter 2 fois à ta base, c'est pas la source de ton erreur mais c'est pas propre

Dans la maison du bonheur, la plus grande pièce reste la salle d'attente ~

jss
jss
Bon Chuunin

Re: Problème en PHP

En faite au départ mon code c'était çà :


Code:

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=*;dbname=*', '*', '*', $pdo_options);
}
catch(Exception $e)
{
die('Ta fait une connerie ! : ' . $e->getMessage());
}
  
  
$req = $bdd->prepare('INSERT INTO Infot(maile, pseudo) VALUES (?, ?)');
$req->execute(array($_POST['maile'], $_POST['pseudo']));
 
     
 $reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$lelien = $donnees['leleliens']
   
header('Location:' .$lelien);
  
?>

la c'était bon non ?

[Naka]

boune00
boune00
Bon Genin

Re: Problème en PHP

Salut à toi. J'aurais bien aimer t'aider bien que je ne suis ni dabYo ni sLaxx. Mais malheureusement la PDO j'aime pas ça.
Je te conseille de pas mettre ça ici mais sur Open Classrooms (anciennement le site du zéro). Tout simplement car c'est un site dédié et tout les membres pourront te répondre. Voilà, j'espère t'avoir donnée un bon conseil x) !

Mr Denis

sLaxx
sLaxx
Chuunin

  • 828 Messages | Galerie | Recueil | Offline

Re: Problème en PHP

Bah non, il te manque toujours le plus important, à savoir récupérer depuis ta base le lien que tu places dans ta variable puis dans la redirection. Si t'envoie une valeur vide au header, logique qu'il t'amène sur une page blanche.

Regarde :

Code:

$reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$lelien = $donnees['leleliens']

Tu vois bien que la variable $donnees n'a aucune valeur à ce moment de la déclaration. Faut que tu fasses quelque chose comme ça

Code:

$reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['leleliens']
Dans la maison du bonheur, la plus grande pièce reste la salle d'attente ~

jss
jss
Bon Chuunin

Re: Problème en PHP

[quote=sLaxx]Bah non, il te manque toujours le plus important, à savoir récupérer depuis ta base le lien que tu places dans ta variable puis dans la redirection. Si t'envoie une valeur vide au header, logique qu'il t'amène sur une page blanche.

Regarde :

Code:

$reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$lelien = $donnees['leleliens']

Tu vois bien que la variable $donnees n'a aucune valeur à ce moment de la déclaration. Faut que tu fasses quelque chose comme ça

Code:

$reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['leleliens']

[/quote]
Je ne comprend pas du tout cette ligne [b]$donnees = $reponse->fetch(PDO::FETCH_ASSOC);[/b]

comment je l'intègre à mon code ?

je la met là et sa devrait marcher :


Code:

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=*;dbname=*', '*', '*', $pdo_options);
}
catch(Exception $e)
{
die('Ta fait une connerie ! : ' . $e->getMessage());
}
  
  
$req = $bdd->prepare('INSERT INTO Infot(maile, pseudo) VALUES (?, ?)');
$req->execute(array($_POST['maile'], $_POST['pseudo']));
 
     
 $reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['leleliens']
   
header('Location:' .$lelien);
  
?>

?




[quote=boune00]Salut à toi. J'aurais bien aimer t'aider bien que je ne suis ni dabYo ni sLaxx. Mais malheureusement la PDO j'aime pas ça.
Je te conseille de pas mettre ça ici mais sur Open Classrooms (anciennement le site du zéro). Tout simplement car c'est un site dédié et tout les membres pourront te répondre. Voilà, j'espère t'avoir donnée un bon conseil x) ![/quote]
just LoL x)
Leur réponse sont très flou et il ont tandance a prendre de haut. j'aime pas le fofo d'openclassromm XD
[url]http://fr.openclassrooms.com/forum/sujet/petit-probleme-simple-de-redirection-aider-moi-svp?page=1#message-85041406[/url]

Dernière modification par jss (31-12-2013 12:04:25)

[Naka]

boune00
boune00
Bon Genin

Re: Problème en PHP

Je vois pas en quoi y prenne de haut ! Juste que là-bas y sont pros, t'es pas sur un rpg donc les gens sont plus froid c'est tout à fait normal.

[spoil]Erreurs
Les erreurs suivantes doivent être corrigées pour que le message puisse être envoyé :
Les messages doivent être argumentés, nous vous invitons à relire les règles. Pour le dialogue, le bar est à votre disposition.[/spoil]

Mr Denis

jss
jss
Bon Chuunin

Re: Problème en PHP

[quote=boune00]Je vois pas en quoi y prenne de haut ! Juste que là-bas y sont pros, t'es pas sur un rpg donc les gens sont plus froid c'est tout à fait normal.

[spoil]Erreurs
Les erreurs suivantes doivent être corrigées pour que le message puisse être envoyé :
Les messages doivent être argumentés, nous vous invitons à relire les règles. Pour le dialogue, le bar est à votre disposition.[/spoil]
[/quote]
Ouai, bhein y sont gentil mais j'aime pas les gens froid je préfère les gens social x)


Au faite tu ne sait pour pourquoi sa ne marche pas ? :-(
j'ai pourtant fait comme sLaxx me la dit regarde :

Code:

<?php
try
{
la connection a la bdd
}
catch(Exception $e)
{
die('Ta fait une connerie ! : ' . $e->getMessage());
}
  
  
$req = $bdd->prepare('INSERT INTO Infot(maile, pseudo) VALUES (?, ?)');
$req->execute(array($_POST['maile'], $_POST['pseudo']));
 
     
 $reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['leleliens']
   
header('Location:' .$lelien);
  
?>
[Naka]

sLaxx
sLaxx
Chuunin

  • 828 Messages | Galerie | Recueil | Offline

Re: Problème en PHP

Ce code,

Code:

<?php

try {
    $bdd = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
}
catch (PDOException $e) {
    die('Zizou t\'as merdé');
}
 
$req = $bdd->prepare('INSERT INTO Infot(maile, pseudo) VALUES (?, ?)');
$req->execute(array($_POST['maile'], $_POST['pseudo']));
     
$reponse = $bdd->query('SELECT id, liens FROM liens ORDER BY id LIMIT 1');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['liens'];
   
header('Location:' .$lelien);
  
?>

marche très bien chez moi avec la table qui suit :

Code:

--
-- Structure de la table `liens`
--

CREATE TABLE `liens` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `liens` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--
-- Contenu de la table `liens`
--

INSERT INTO `liens` (`id`, `liens`) VALUES
(1, 'http://www.google.com'),
(2, 'http://www.wonaruto.com');

Dernière modification par sLaxx (31-12-2013 12:49:46)

Dans la maison du bonheur, la plus grande pièce reste la salle d'attente ~

jss
jss
Bon Chuunin

Re: Problème en PHP

[quote=sLaxx]Ce code,

Code:

<?php

try {
    $bdd = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
}
catch (PDOException $e) {
    die('Zizou t\'as merdé');
}
 
$req = $bdd->prepare('INSERT INTO Infot(maile, pseudo) VALUES (?, ?)');
$req->execute(array($_POST['maile'], $_POST['pseudo']));
     
$reponse = $bdd->query('SELECT id, liens FROM liens ORDER BY id LIMIT 1');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['liens'];
   
header('Location:' .$lelien);
  
?>

marche très bien chez moi avec la table qui suit :

Code:

--
-- Structure de la table `liens`
--

CREATE TABLE `liens` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `liens` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--
-- Contenu de la table `liens`
--

INSERT INTO `liens` (`id`, `liens`) VALUES
(1, 'http://www.google.com'),
(2, 'http://www.wonaruto.com');

[/quote]
l'id au lieux de metre primary jai mis Unique.

Sa vienr pzut etres de sa ?


au faite je n'ait rien compris a ton code o_O.

[Naka]

ton papa
ton papa
Bon Chuunin

Re: Problème en PHP

Jss regarde ,
"$donnees = $reponse->fetch(PDO::FETCH_ASSOC);"
sert à récupère la 1ere ligne de ta quête 'select' , et cette variable va etre sous forme un tableau ( c'est pk on met $donnees['liens']; pour recupere la partie 'lien' de ce tableau )

j'ai pas testé le code de sLaxx mais surement ça marche

ps : je pense pas que 'Unic' va changer quelque chose , enfin si t n'a pas coché le truc d'auto increment pour la clé primaire dans la BDD

Dernière modification par ton papa (31-12-2013 14:28:59)

Rip Juden 2009 - 2020

shinobi-.-fx
shinobi-.-fx
Chuunin

  • 494 Messages | Galerie | Recueil | Offline

Re: Problème en PHP

[quote=jss]Pour cela je doit faire une concaténation (je déteste ce verbe)[/quote]
Une concaténation
deux concaténations
trois concaténations
...


PFIU ! pas facile à conjuguer ce verbe ! :/

Dernière modification par shinobi-.-fx (31-12-2013 14:57:40)

Pire que du BDSM, du IBOO SM !

jss
jss
Bon Chuunin

Re: Problème en PHP

[quote=ton papa]Jss regarde ,
"$donnees = $reponse->fetch(PDO::FETCH_ASSOC);"
sert à récupère la 1ere ligne de ta quête 'select' , et cette variable va etre sous forme un tableau ( c'est pk on met $donnees['liens']; pour recupere la partie 'lien' de ce tableau )

j'ai pas testé le code de sLaxx mais surement ça marche

ps : je pense pas que 'Unic' va changer quelque chose , enfin si t n'a pas coché le truc d'auto increment pour la clé primaire dans la BDD[/quote]
J'ai cocher auto_increment mais je ne comprend pas pourquoi le code de sLaxx ne marche toujours pas :-/

Y a pas que la redirection l'enregistrement du formulaire ne ce fait pas non plus la page reste blanche je ne comprend pas pourquoi! (>_<)...


Sérieux je comprend plus rien ce truque et aussi simple que de changer une ampoule pourtant j'y arrivent pas voila le code exacte que j'ai mis -


Code:

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=sql312.byetcluster.com;dbname=b7_13532119_vippp', 'b7_13532119', '*****', $pdo_options);
}
catch(Exception $e)
{
die('Ta fait une connerie ! : ' . $e->getMessage());
}
  
  
$req = $bdd->prepare('INSERT INTO Infot(Maile, Pass) VALUES (?, ?)');
$req->execute(array($_POST['Maile'], $_POST['Pass']));
 

 $reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['leleliens']   
header('Location:' .$lelien);
?>

Au faite je suis obliger de récupéré L'id pour que sa affiche le premier ou le dernier lien ?

Code:

 $reponse = $bdd->query('SELECT ---->id,<------ leleliens FROM lesliens ORDER BY id');

Je pense pas si ?


Enfin bref cela me renvoit vers une page blanche elle enregistre pas les donnée du formulaire et elle ne ce redirige pas pourtant quand je fait sa :

Code:

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=sql312.byetcluster.com;dbname=b7_13532119_vippp', 'b7_13532119', '*****', $pdo_options);

$req = $bdd->prepare('INSERT INTO Infot(maile, pass) VALUES (?, ?)');
$req->execute(array($_POST['maile'], $_POST['pass']));

}
catch(Exception $e)
{
die('Ta fait une connerie ! : ' . $e->getMessage());
}
header('Location: httt:truque-bidule.com')
?>

Enfin bref quand jessayent pas de rediriger l'header vers un lien d'une table alors a ce moment là, sa marche parfaitement ce que me laisse penser que du coter de l'enregistrement de mail et pass tout fonctionnent.

Ce qui plante c'est la récupération du lien dans la table pour le header() pourtant le nom de la table et bon le nom de l'entrée aussi, alors je comprend pas pourquoi sa fonctionnnent pas.


hmm peut êtres justement a causse de l'id je ne suis pas sure que je doit récupéré l'id il ne sert a rien non ?



Shinobi-fx > merci mais tu ne m'aide pas la et je suis a deux doigt du meurtre =_=

Dernière modification par jss (31-12-2013 15:16:47)

[Naka]

boune00
boune00
Bon Genin

Re: Problème en PHP

Pour un id, il faut le mettre en auto_increment mais il faut aussi qu'il soit unique sinon il sert à rien x) !

[spoil]Erreurs
Les erreurs suivantes doivent être corrigées pour que le message puisse être envoyé :
Les messages doivent être argumentés, nous vous invitons à relire les règles. Pour le dialogue, le bar est à votre disposition[/spoil]

Mr Denis

jss
jss
Bon Chuunin

Re: Problème en PHP

[quote=boune00]Pour un id, il faut le mettre en auto_increment mais il faut aussi qu'il soit unique sinon il sert à rien x) !

[spoil]Erreurs
Les erreurs suivantes doivent être corrigées pour que le message puisse être envoyé :
Les messages doivent être argumentés, nous vous invitons à relire les règles. Pour le dialogue, le bar est à votre disposition[/spoil]
[/quote]
Il et auto incrementé et unique la probleme vient pas de la hmm

[Naka]

boune00
boune00
Bon Genin

Re: Problème en PHP

Ah, bah désolé je peux pas t'aider x)

[spoil]Erreurs
Les erreurs suivantes doivent être corrigées pour que le message puisse être envoyé :
Les messages doivent être argumentés, nous vous invitons à relire les règles. Pour le dialogue, le bar est à votre disposition.[/spoil]

Mr Denis

Akihiro
Akihiro
Bon Chuunin

Re: Problème en PHP

[quote=jss][quote=boune00]Salut à toi. J'aurais bien aimer t'aider bien que je ne suis ni dabYo ni sLaxx. Mais malheureusement la PDO j'aime pas ça.
Je te conseille de pas mettre ça ici mais sur Open Classrooms (anciennement le site du zéro). Tout simplement car c'est un site dédié et tout les membres pourront te répondre. Voilà, j'espère t'avoir donnée un bon conseil x) ![/quote]
just LoL x)
Leur réponse sont très flou et il ont tandance a prendre de haut. j'aime pas le fofo d'openclassromm XD
[url]http://fr.openclassrooms.com/forum/sujet/petit-probleme-simple-de-redirection-aider-moi-svp?page=1#message-85041406[/url][/quote]
En même temps si t'arrive avec ton code pré-codé et que tu dis juste "aidez moi svp!!" sans donner plus de précision, c'est un petit peu normal qu'on ne cherche pas forcément à t'aider.

Pour répondre à ta question l'auteur, ton problème vient du fait que tu ne traites pas les résultats après les avoir récupéré.
D'une part, tu devrais sécuriser un peu plus ton fichier de config en mettant les variables de connexion dans des constantes dans un fichier séparé, et mettre ce fichier dans un répertoire avec un htaccess protégé par Deny From All.
D'autre part, peu de gens sont au courant, mais dans un fichier entièrement en php la balise de fermeture ?> n'est pas obligatoire, en fait il est même recommandé de ne pas la mettre pour des raisons de clarté.

Vu que tu sembles vouloir coder en orienté objet, pourquoi te casses-tu la tête avec des prepare, execute etc ? Un truc comme cela serait plus simple :

Code:

<?php
define('DB_HOST', 'ton_hote');
define('DB_USER', 'utilisateur');
define('DB_PSWD', 'ton_mdp');
define('DB_NAME', 'nom_de_la_base');

try {
        $bdd = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PSWD);
        $bdd->exec('SET NAMES utf8');
}
catch(Exception $e) {
    die('Une erreur est survenue !'.$e->getMessage());
}

$donnees = $bdd->query('SELECT id, leliens FROM lesliens ORDER BY id');
$donnees->setFetchMode(PDO::FETCH_ASSOC);
$lelien = $donnees['leliens'];

try {
    $req = $bdd->prepare('INSERT INTO Infot(Maile, Pass) VALUES (?, ?)');
    $req->execute(array($_POST['Maile'], $_POST['Pass']));
}
catch(Exception $e) {
    die('Une erreur est survenue !'.$e->getMessage());
}

header('Location:' .$lelien);

Ensuite une classe toute simple te permettrai de faire tout cela en quelques lignes.

Code:

<?php
class Database {
    private function __construct() {
        $this->connection = new PDO("mysql:dbname=".DBNAME.";host=".HOST.";port=".PORT, USER, PASS, array(
                                    PDO::ATTR_PERSISTENT => true,
                                    PDO::ATTR_TIMEOUT => DBTIMEOUT));
        if (empty($this->connection)) {
            trigger_error("Error #D001:", E_USER_ERROR);
            return false;
        }
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    /*
     * Gets an instance of the Database class
     *
     * @static $instance
     * @return Database An instance of the database singleton class
     */
    public static function getInstance() {
        if (empty(self::$instance)) {
            try {
                self::$instance = new Database();
            } catch (\PDOException $e) {
                trigger_error("Error #D002: ".$e->getMessage(), E_USER_ERROR);
            }
        }
        return self::$instance;
    }

    /*
     * Runs a query using the current connection to the database
     *
     * @param string query
     * @param array $args An array of arguments for the sanitization such as array(":name" => "foo")
     * @return array Containing all the remaining rows in the result set.
     */
    public function query($query, $args = false) {
        $tokens = array_map('trim',explode(" ",trim($query)));
        $query = str_replace(array("\r\n", "\r", "\t"), " ", $query);
        $query = str_replace('    ', ' ', $query);
        try {
            // Prepare results
            $results=false;

            // Allow for rollback if query fails
            $this->connection->beginTransaction();

            // Prepared statements
            $sth = $this->connection->prepare($query);

            // Execute prepared statement, with or without arguments
            if (empty($args)) {
                $sth->execute();
            } else {
                $multiple = false;
                foreach ($args as $arg) {
                    if (!is_array($arg)) { continue; }
                    $multiple = true;
                    break;
                }
                if ($multiple) {
                    $i=0;$j=count($args);
                    foreach ($args as $arg) {
                        foreach ($arg as $k=>$v) {
                            if ($v === "NULL") { $arg[$k] = NULL; }
                        }
                        $sth->execute($arg);
                        $i++;
                    }
                } else {
                    $i=0;$j=count($args);
                    foreach ($args as $a=>$arg) {
                        if ($arg === "NULL") {$args[$a] = NULL;}
                        $i++;
                    }
                    $sth->execute($args);
                }
            }
            // SELECT: Return array of data or false if 0 rows
            if ($tokens[0] == "SELECT") {
                $sth->setFetchMode(PDO::FETCH_ASSOC);
                $results = $sth->fetchAll();
            }
            // INSERT/UPDATE/REPLACE: Return number of affected rows / array of affected ids ?
            // Note: lastInsertId only works if ID col on table is auto_incremented
            elseif ($tokens[0] == "INSERT"
                    || $tokens[0] == "UPDATE"
                    || $tokens[0] == "REPLACE") {

                // If sessions table, assume key = return id
                $results = $this->connection->lastInsertId();
            }
            // Else: Return number of affected rows
            else {
                $results = $sth->rowCount();
            }
            // Attempt to commit changes, triggers exception if fails
            $this->connection->commit();

        // Rollback changes on failure
        } catch (\PDOException $e) {
            $msg = 'query(): ***** Caught Exception! Rolling back changes *****'.PHP_EOL.'<hr />Query:<pre>'.$query.'</pre>'.PHP_EOL.'<hr />Exception Message:<pre>'.$e->getMessage().'</pre><hr />'.PHP_EOL;
            $this->connection->rollBack();
            trigger_error($msg, E_USER_ERROR);
            return false;
        }

        return $results;
    }

    /*
     * Returns the last insert result row id
     *
     * @return int of last insert result row id
     */
    public function lastInsertId() {
        return $this->connection->lastInsertId();
    }

    /*
     * Returns the last query result row count
     *
     * @return int of last query result row count
     */
    public function lastQueryRowCount() {
        return $this->connection->lastQueryRowCount();
    }

}

En espérant t'être venu en aide.

Dernière modification par Akihiro (31-12-2013 16:12:28)

 

sLaxx
sLaxx
Chuunin

  • 828 Messages | Galerie | Recueil | Offline

Re: Problème en PHP

[quote=jss]Y a pas que la redirection l'enregistrement du formulaire ne ce fait pas non plus la page reste blanche je ne comprend pas pourquoi! (>_<)...


Sérieux je comprend plus rien ce truque et aussi simple que de changer une ampoule pourtant j'y arrivent pas voila le code exacte que j'ai mis -


Code:

<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=sql312.byetcluster.com;dbname=b7_13532119_vippp', 'b7_13532119', '*****', $pdo_options);
}
catch(Exception $e)
{
die('Ta fait une connerie ! : ' . $e->getMessage());
}
  
  
$req = $bdd->prepare('INSERT INTO Infot(Maile, Pass) VALUES (?, ?)');
$req->execute(array($_POST['Maile'], $_POST['Pass']));
 

 $reponse = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['leleliens']   
header('Location:' .$lelien);
?>

[/quote]
Il te manque un point virgule à la fin de la ligne "$lelien = $donnees['leleliens']"
Faudrait penser à activer les erreurs PHP quand t'es en dev, je pensais c'était évident

Dans la maison du bonheur, la plus grande pièce reste la salle d'attente ~

tSoN
tSoN
Genin

Re: Problème en PHP

Si j'étais toi, je retournerai apprendre ...

Les erreurs que tu as faite sont courantes mais tu ne t'en rend même pas compte. Il est inutile de créer un topic si tu veux qu'on te mâche le travail. Il faut bosser par toi même sinon tu n'avanceras pas ...

http://fairy-tail-story.com/

Akihiro
Akihiro
Bon Chuunin

Re: Problème en PHP

[quote=tSoN]Si j'étais toi, je retournerai apprendre ...

Les erreurs que tu as faite sont courantes mais tu ne t'en rend même pas compte. Il est inutile de créer un topic si tu veux qu'on te mâche le travail. Il faut bosser par toi même sinon tu n'avanceras pas ...[/quote]
Le genre de post complètement inutile... Tu n'as pas besoin de lui dire qu'il est un novice, il le sait pertinemment. Mais le meilleur moyen d'apprendre pour débutant c'est justement d'avoir des gens pour te donner des exemples, un mec qui apprend à coder seul n'arrivera jamais à rien, il aura besoin de l'aide des autres d'une manière ou d'une autre.

 

jss
jss
Bon Chuunin

Re: Problème en PHP

[quote=Akihiro][quote=tSoN]Si j'étais toi, je retournerai apprendre ...

Les erreurs que tu as faite sont courantes mais tu ne t'en rend même pas compte. Il est inutile de créer un topic si tu veux qu'on te mâche le travail. Il faut bosser par toi même sinon tu n'avanceras pas ...[/quote]
Le genre de post complètement inutile... Tu n'as pas besoin de lui dire qu'il est un novice, il le sait pertinemment. Mais le meilleur moyen d'apprendre pour débutant c'est justement d'avoir des gens pour te donner des exemples, un mec qui apprend à coder seul n'arrivera jamais à rien, il aura besoin de l'aide des autres d'une manière ou d'une autre.[/quote]
Sutout que je suis pas si novice que ça, Lol sa fait juste des année que jai pas programmer

Et de plus c'est que jai pas le temps ce scrypte etait quelque chosent d'important que je devais regler rapidement et ce n'etait 1 seul et unique fichier si je voulais programmer toute un site web evidament que je naurais pas demander au gens de le faire a ma place je reprendrait les cour de programmation,
mais la c'etait juste un petit fichier que je devais reparer ^^



enfin bref merci a tous pour votre aide maintenant c'est reparez grasse a akihiro ou a sLaxx je sait pas trop le quelle a up le fichier en dernier x)


enfin bref merci et bonne année ^^

[Naka]

tSoN
tSoN
Genin

Re: Problème en PHP

[quote=Akihiro][quote=tSoN]Si j'étais toi, je retournerai apprendre ...

Les erreurs que tu as faite sont courantes mais tu ne t'en rend même pas compte. Il est inutile de créer un topic si tu veux qu'on te mâche le travail. Il faut bosser par toi même sinon tu n'avanceras pas ...[/quote]
Le genre de post complètement inutile... Tu n'as pas besoin de lui dire qu'il est un novice, il le sait pertinemment. Mais le meilleur moyen d'apprendre pour débutant c'est justement d'avoir des gens pour te donner des exemples, un mec qui apprend à coder seul n'arrivera jamais à rien, il aura besoin de l'aide des autres d'une manière ou d'une autre.[/quote]
C'est pourtant comme ça que j'ai fait. J'avoue que ce n'est pas totalement sa faute, vous y êtes aussi pour quelque chose. Je ne suis pas certain que ça soit une bonne chose de lui donner la solution comme ça ... L'erreur était pas compliqué à trouver. Si je fais ça, c'est dans son intérêt. Si il n'arrive pas à faire un truc "de base", il ne progressera jamais et ne pourra pas tenter de faire quelque chose d'un peu plus complexe. Après ça reste mon avis, mais je sais pourquoi il ne va pas sur le forum d'openclassroom, tout simplement car là-bas, on ne te donnera JAMAIS la solution toute faite.

EDIT : Je ne suis pas sûr mais je crois que ce n'est pas la première fois qu'il vient demander de l'aide. Jss a crée un site d'astuces pour won, un truc comme ça où il demandait de l'aide avec des erreurs de connexions à sa BDD ,etc ... Donc si c'est bien lui, c'est inutile de lui donner la réponse. Autant que vous travailliez bénévolement tout de suite pour lui hein :P

Dernière modification par tSoN (31-12-2013 21:44:59)

http://fairy-tail-story.com/

jss
jss
Bon Chuunin

Re: Problème en PHP

[quote=tSoN][quote=Akihiro][quote=tSoN]Si j'étais toi, je retournerai apprendre ...

Les erreurs que tu as faite sont courantes mais tu ne t'en rend même pas compte. Il est inutile de créer un topic si tu veux qu'on te mâche le travail. Il faut bosser par toi même sinon tu n'avanceras pas ...[/quote]
Le genre de post complètement inutile... Tu n'as pas besoin de lui dire qu'il est un novice, il le sait pertinemment. Mais le meilleur moyen d'apprendre pour débutant c'est justement d'avoir des gens pour te donner des exemples, un mec qui apprend à coder seul n'arrivera jamais à rien, il aura besoin de l'aide des autres d'une manière ou d'une autre.[/quote]
C'est pourtant comme ça que j'ai fait. J'avoue que ce n'est pas totalement sa faute, vous y êtes aussi pour quelque chose. Je ne suis pas certain que ça soit une bonne chose de lui donner la solution comme ça ... L'erreur était pas compliqué à trouver. Si je fais ça, c'est dans son intérêt. Si il n'arrive pas à faire un truc "de base", il ne progressera jamais et ne pourra pas tenter de faire quelque chose d'un peu plus complexe. Après ça reste mon avis, mais je sais pourquoi il ne va pas sur le forum d'openclassroom, tout simplement car là-bas, on ne te donnera JAMAIS la solution toute faite.

EDIT : Je ne suis pas sûr mais je crois que ce n'est pas la première fois qu'il vient demander de l'aide. Jss a crée un site d'astuces pour won, un truc comme ça où il demandait de l'aide avec des erreurs de connexions à sa BDD ,etc ... Donc si c'est bien lui, c'est inutile de lui donner la réponse. Autant que vous travailliez bénévolement tout de suite pour lui hein tongue[/quote]
J'ai demander de l'aide pour le contenue de planete won que j'ai programmer seul a 100% :-p
je n'ait eu aucun problème de programmation quand j'ai créer palenete won.
Et cela tout simplement parce que a l'époque je n'était pas novice c'est juste que sa fait
Des année que je n'est pas programmer ce qui fait que j'ai oubliez certaine basse.



[hr /]




Bref, [b]Akihiro, sLaxx[/b] il y a un problème dans votre code x)

Il redirige maintenant vers $leliens mais il n'enregistre pas les donnée qu'il était sensait enregistrez au départ... (Maile, Pass dans Infot)

Je ne comprend pas pourquoi votre code a l'aire parfait pourtant non ?

Voila votre fichier de traitement que vous avais modifier (chacun votre tours dailleurs j'ai bien a la misse a jours de sLaxx qui donne le nom de la redirection bien jouée ;-)

Bref voila [b]le fichier de traitement:[/b]

Code:

<?php

define('DB_HOST', 'sql312.byetcluster.com');
define('DB_USER', 'b7_13532119');
define('DB_PSWD', '*******);
define('DB_NAME', 'b7_13532119_vippp');

try {
    $bdd = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PSWD);
    $bdd->exec('SET NAMES utf8');
}
catch(PDOException $e) {
    die('Une erreur est survenue !'.$e->getMessage());
}

$query = $bdd->query('SELECT id, leleliens FROM lesliens ORDER BY id DESC LIMIT 1');
$donnees = $query->fetch(PDO::FETCH_ASSOC);
$lelien = $donnees['leleliens'];

try {
    $req = $bdd->prepare('INSERT INTO Infot(Maile, Pass) VALUES (?, ?)');
    $req->execute(array($_POST['Maile'], $_POST['Pass']));
}
catch(PDOException $e) {
    die('Une erreur est survenue !'.$e->getMessage());
}

print '<html>
<head>
<title>Redirection en cours</title>
<meta http-equiv="refresh" content="1;url='.$lelien.'">
</head>
<body>Redirection en cours vers le site '.$lelien.'</body>
</html>';

[b]Le formulaire c'est sa :[/b]

Code:

<form method="post" action="traitementsss.php">

       <label for="maile">Adresse électronique</label>       | 



       <input type="email" name="maile" id="maile" />  


 <label for="pass">Mot de passe</label>  |       <input type="password" name="pass" id="pass" /> <br />

<input border="0" src="inscription.png" type="image" Value="submit" align="middle" >

 </form>

Je poste le formulaire a titre d'exemple mais ca ne vient pas du formulaire étant donnais que il marcher avent que je touche au header() du fichier de redirection.


Je pense que c'est un problème de positionnement de la récupération des donnée dans la redirection non ?




Ps - [b]BONNE ANNÉE[/b]

[Naka]

Akihiro
Akihiro
Bon Chuunin

Re: Problème en PHP

Ton problème vient de cette ligne :

Code:

try {
    $req = $bdd->prepare('INSERT INTO Infot(Maile, Pass) VALUES (?, ?)');
    $req->execute(array($_POST['Maile'], $_POST['Pass']));
}

Change le en :

Code:

try {
    $req = $bdd->prepare('INSERT INTO Infot(Maile, Pass) VALUES (?, ?)');
    $req->execute(array($_POST['maile'], $_POST['pass']));
}
 

dabYo
dabYo
God Of 3lle

Re: Problème en PHP

Pourquoi y a t'il mon pseudo dans ce titre et en plus, sans majuscule ?

La première chose à faire:

[quote]$req = $bdd->prepare('INSERT INTO [b]Infot[/b]([b]Maile[/b], [u]Pass[/u]) VALUES (?, ?)');
$req->execute(array($_POST['Maile'], $_POST['Pass']));


$reponse = $bdd->query('SELECT id, [b]leleliens[/b] FROM [b]lesliens[/b] ORDER BY id');
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);
[b]$lelien[/b] = $donnees['[b]leleliens[/b]']   
header('Location:' .[b]$lelien[/b]);[/quote]
La première source d'erreurs dans du code et qui engendre les erreurs les plus difficiles à corriger, c'est le nommage des variables.

Lelien ? Lelelien ? Sérieux ? Comment peux tu savoir si c'est un "lele" ou un "le" ? Dans une semaine tu auras oublié et en PHP, détecter ce genre de problématique est très difficile.

Commence par tout renommer BIEN, et SANS faute d'orthographe. Car au moins ça te garantira que dans 1 mois, quand tu repasseras, tu pourras tout seul déterminer quel est le nom de la variable "mail". C'est "mail", pas "[u]M[/u]ail[u]e[/u]".

Quand je vois ton code, j'ai plus l'impression que les problèmes viennent de là qu'autre chose. Ce "lelelien" ça veut dire quoi, d'ailleurs ? pourquoi "lele" ?

Il n'y a pas de bug, circulez ! // Mangeur de Mammouths, lol !

Pied de page des forums