Rediriger vers la page X ou Y en fonction de la base de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Rediriger vers la page X ou Y en fonction de la base de données

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 20:24

oui c'est ce à quoi je pensais mais si ca marche toujours pas je vois vraiment pas désolé

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Greg Dubo » 04 mai 2016, 17:20

Je pense mal comprendre quelques points, désolé.

Une requête préparée avec "$usercontribution" plutôt ? ou bien avec "$userconnect" ?

J'avais aussi essayé ça sans succès :

Code : Tout sélectionner

$usercontribution = $bdd->prepare("SELECT COUNT(*) FROM contributions WHERE username = ? "); $usercontribution->execute(array($_SESSION['username'])); if($usercontribution > 0) { header("Location:contribute.php?id=".$_SESSION['id']."&username=".$_SESSION['username']); exit; } else { header("Location:contributions.php?id=".$_SESSION['id']."&username=".$_SESSION['username']); exit; }

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 16:54

Je pense que tu devrai utiliser
$userconnect = $bdd->prepare("SELECT ...");
$userconnect->execute(array(...));
plutot que query car il ne semble pas t'apporter le résultat de la requète
tu pourra ainsi fair un fetch pour en récupèrer le résultat.

Ne remet en place ta redirection que lorsque tu aura une valeur correct à mettre dans ta condition tu y verra plus clair

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Greg Dubo » 04 mai 2016, 16:48

Ceci résulte :

object(PDOStatement)#3 (1) { ["queryString"]=> string(74) "SELECT COUNT(*) AS count FROM contributions WHERE username = 'Jacques' " }

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 16:46

Code : Tout sélectionner

$usercontribution = $bdd->query("SELECT COUNT(*) AS count FROM contributions WHERE username = '{$_SESSION['username']}' "); var_dump($usercontribution); exit;
et avec ceci ?

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Greg Dubo » 04 mai 2016, 16:43

Code : Tout sélectionner

$usercontribution = $bdd->query("SELECT COUNT(*) FROM contributions WHERE username = '{$_SESSION['username']}' "); var_dump($usercontribution); exit;
J'obtiens ceci :

object(PDOStatement)#3 (1) { ["queryString"]=> string(65) "SELECT COUNT(*) FROM contributions WHERE username = 'Jacques' " }

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 16:40

ce n'est pas l'utilité du var_dump, c'est plutot pour voir le résultat de ta requète, ajoute un exit; juste aprés pour voir le retour de var_dump

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Greg Dubo » 04 mai 2016, 16:38

De la sorte ?

Code : Tout sélectionner

$usercontribution = $bdd->query("SELECT COUNT(*) FROM contributions WHERE username = '{$_SESSION['username']}' "); var_dump($usercontribution); if($usercontribution > 0)
L'utilisateur 'Jacques' est encore redirigé vers la mauvaise page.

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 16:28

essaye un var_dump($usercontribution); juste avant le if
et vois le résultat à mon avis tu ne teste pas la bonne valeur

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Greg Dubo » 04 mai 2016, 16:07

Hélas c'est pareil, Jacques est encore redirigé vers la page 2.

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 16:04

mais sans caractère d'échappement alors bien sur ;-)

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Greg Dubo » 04 mai 2016, 15:56

J'obtiens cette erreur :

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\'Jacques\'' at line 1' in /Applications/XAMPP/xamppfiles/htdocs/series/Svm/svm_home.php:26 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/series/Svm/svm_home.php(26): PDO->query('SELECT COUNT(*)...') #1 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/series/Svm/svm_home.php on line 26

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 15:51

et avec des simple quote ' à la place des double " ?

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Greg Dubo » 04 mai 2016, 15:47

Le 'username' s'affiche bien en faisant un echo "SELECT COUNT(*) FROM contributions
WHERE username = \"{$_SESSION['username']}\" ";

Resultat : SELECT COUNT(*) FROM contributions WHERE username = "Jacques"

Re: Rediriger vers la page X ou Y en fonction de la base de données

par Spols » 04 mai 2016, 15:40

affiche ta requète
echo "SELECT COUNT(*) FROM contributions
WHERE username = \"{$_SESSION['username']}\" ";
pour voir si elle est correct ou non
si elle ne l'est pas c'est que $_SESSION['username'] ne l'est pas donc $userinfo['username'] ne l'est pas non plus donc ta première requète ne retourne pas le bon username