Problèmes Page Blanche après envoi formulaire

Eléphanteau du PHP | 21 Messages

21 janv. 2011, 13:52

Bonjour à tous,

Voilà je suis une petite formation pour créer un espace membre ..

J'ai crée donc une page de test pour pouvoir suivre cette formation, le formulaire est en place avec une vérification des champs jusqu'içi tout allait bien. Au moment de vérifier si les info sont déja dans la base de donnée l'ors de l'inscription, mon formulaire ne marche plus .. c'est a dire que même si aucuns champs ne sont rempli il m'envoie vers une page blanche au lieu de me donner mes erreurs comme au début !

voici le code de mon formulaire :

http://pastebin.com/3wdCSy66

C'est une fois avoir ajouté ce bout de code que ca ne fonctionne plus pour la vérification :

Code : Tout sélectionner

try{ $bdd = new PDO('mysql:host=localhost;dbname=def' , 'root', '') or die(print_r($bdd->errorInfo())); $bdd->exec('SET NAMES utf8'); } catch(Exeption $e){ die('Erreur:'.$e->getMessage()); } $req = $bdd->prepare('SELECT id from pts_membre WHERE login=:nom'); $req->execute(array('nom'=>$nom)); if($req->rowCount()>0) { $valide = false; $erreurid = 'Pseudo déjà utilisé'; } $req = $bdd->prepare('SELECT id from pts_membre WHERE email=:email'); $req->execute(array('email'=>$email)); if($req->rowCount()>0) { $valide = false; $erreurid = 'E-mail déjà utilisé'; }
Donc ca c'est dans les fonctions, et au dessus du formulaire j'ai ce code qui doit renvoyer l'erreur :

Code : Tout sélectionner

<? if(isset($erreurid)) echo '<div class="erreurid">' .$erreurid. '</div>' ;?>

Sinon avant ça les erreurs étaient bien affichées si j'avais un mail invalide, absent, ou un nom de moins de 3 caracteres...

Depuis ce bout de code qui est censé la présence des comptes ds la base de données, il n'indique plus aucunes erreurs même s'il y'en a et en plus il 'menvoie vers une page blanche...


Merci de votre aide, je ne peux continuer ma formation sans ca..

( pour ceux qui auraient remarqué le bandeau du haut a la facebook ... on s'en fou c'est une page de test hein :) c juste histoire d'apprendre a coder un espace membre... )

ViPHP
ViPHP | 3607 Messages

21 janv. 2011, 14:08

Il y a surement des erreurs dans le code qui ne sont pas affichées...

Il faut vérifier ta configuration d'erreurs dans ton php.ini, en modifiant les valeurs suivantes
-display_errors (afficher ou non les erreurs)
-error_reporting (niveau des errerus)

et éventuellement
-log_errors (logguer les erreurs?)
-error_log (chemin vers le fihcier de log /!\ il faut qu'apache ai les droits sur le fichier)

Eléphanteau du PHP | 21 Messages

21 janv. 2011, 14:15

Ok pour les erreurs, mais pk il me renvoit sur une page blanche sans ma structure ?

Je verrais aller verifier le php.ini et jreviens vers vous

Merci jojo

[EDIT] : je ne trouve pas ou et comment voir sur mon hébergement la config php :/ J'héberge chez 3ix .. je suis ds le panel mais je trouve rien grrrr ca me rend dingue

ViPHP
ViPHP | 3607 Messages

21 janv. 2011, 15:06

Bonjour,

Tu peux également regarder du côté des fonctions de gestion d'erreur directement dans ton code : http://php.net/manual/fr/errorfunc.configuration.php
avec error_reporting() et display_errors()

ViPHP
ViPHP | 2291 Messages

21 janv. 2011, 15:26

Et comme ceci ?
try{ 
      $bdd = new PDO('mysql:host=localhost;dbname=def' , 'root', '') or die(print_r($bdd->errorInfo()));
      $bdd->exec('SET NAMES utf8');
      }
   catch(Exeption $e){
      die('Erreur:'.$e->getMessage());
   }
   
   $req = $bdd->prepare('SELECT id from pts_membre WHERE login=:nom');
   $req->execute(array(':nom'=>$nom));
   if($req->rowCount()>0)
   {
      $valide = false;
      $erreurid = 'Pseudo déjà utilisé';
   }
   
   $req = $bdd->prepare('SELECT id from pts_membre WHERE email=:email');
   $req->execute(array(':email'=>$email));
   if($req->rowCount()>0)
   {
      $valide = false;
      $erreurid = 'E-mail déjà utilisé';
   }



ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 21 Messages

21 janv. 2011, 15:59

dunbar > même probleme, qd je clique même sans rien mettre dans mon formulaire j'ai une page blanche..


Voilà l'erreur que j'ai sinon

Code : Tout sélectionner

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user '***'@'localhost' (using password: YES)' in /home/teamcom/public_html/PTS/inscription.php:37 Stack trace: #0 /home/teamcom/public_html/PTS/inscription.php(37): PDO->__construct('mysql:host=loca...', '***', '****') #1 {main} thrown in /home/teamcom/public_html/PTS/inscription.php on line 37

Bon apparement ya un probleme d'auth sur la BDD.. mais pourtant c'est les bons logins :/

AHlala..

ViPHP
ViPHP | 3607 Messages

21 janv. 2011, 16:07

Donc le problème vient bien de la connexion au serveur SQL...
Il faut que tu demandes à ton hébergeur les identifiants exacts, et que tu vérifies avec lui le pourquoi du comment ;)

Eléphanteau du PHP | 21 Messages

21 janv. 2011, 16:09

Pourtant j'ai un forum installé sur ce meme hébergeur, avec els meme logins la meme base de données..


[EDITTTTTTTTT]ALLELUYAHHH ca marche..j'utilisais la mauvaise base de données ... rha putain quelle quiche sérieux...

Depuis hier soir je me prend la tête :s


Enfin merci à vous ;) peace

ViPHP
ViPHP | 3607 Messages

21 janv. 2011, 16:13

Une autre idée, peut-être que PDO n'est pas complètement installé et que les drivers nécessaires ne sont pas présents?
Mais si tout va bien niveau configuration, le problème ne peut venir que de la connexion...
Il n'y pas un prefixe sur la base de donnée par exemple?
Il arrive sur les mutualisés que tu crées une base "test" et celle-ci s'appelle en fait "tonidentifiant_test"

Eléphanteau du PHP | 21 Messages

21 janv. 2011, 16:29

Exactement .. en fait javais repris les code que j'avais eu au début, mais après avoir retouché la bdd le support m'en avait renvoyé..

Enfin bref ca fonctionne pr le moment jvais pvr continuer ma forma ppr :)

Merci à vous à très bientôt lol

Eléphanteau du PHP | 21 Messages

22 janv. 2011, 00:06

Bon et bien me revoilà avec un problème très proche, sauf que le code ne m'affiche plus d'erreurs alors difficile de détecter d'ou vient le soucis !

Je vous explique, donc mon espace membre fonctionne assez correctement, inscription + envoi email validation sans probs.

Le hic c'est que..si je veux enregistrer un pseudo éxistant le site me dit bien que c'est déjà prit, mais dans la BDD il l'enregistre quand même.. Voilà le lien de mon code pr la partie inscription http://pastebin.com/ZEELueFg

Ensuite le second prob est pour la partie login je m'explique :

- si je met que le pseudo, jai bien une erreur qui me dit quil faut le pass, et inversement si je ne mets que le pass.

Par contre si je mets pseudo + pass qu'ils soient bons ou incorrects j'ai encore une page blanche apres avoir cliqué mon bouton connexion.. voici le code de la partie login : http://pastebin.com/rzf7k6Qn

Dommage que le php ne me retourne pas une erreur... j'ai beau chercher du coup..je sèche un peu :/

Merci encore pr votre future aide !

Eléphanteau du PHP | 21 Messages

22 janv. 2011, 13:01

Rebonjour !

Voilà un peu de progrès dans mon beug.. Donc maintenant je n'ai plus de page blanche si les logins sont faux mais belle et bien une erreur. Il me dit que j'appel une fonction sur un non-objet..

Voilà le code de ma page login.php http://pastebin.com/kWnKvBiN

Et mon erreur

Code : Tout sélectionner

Fatal error: Call to a member function closeCursor() on a non-object in /home/teamcom/public_html/PTS/login.php on line 60


J'dois pas être loin .. mais j'rate kkchose PLEASE HELP :p

Eléphanteau du PHP | 21 Messages

22 janv. 2011, 15:54

Personne SVP ?