2010-03-28 9 views
0

PHP/MySQL newbie question.Problèmes de base de données PHP/MySQL

J'ai une base de données que j'ai importée dans ma phpmyadmin locale. Cependant, il semble que je ne peux pas y accéder à partir de mon application PHP. La chaîne de connexion semble correcte et lorsque j'essaie d'authentifier les informations d'identification de l'utilisateur pour accéder aux informations de la base de données, aucun problème. Cependant authentifier tout le monde et sait quand je mets en faux identifiants. Cependant, il ne tirera aucune autre information de la base de données. Par exemple, une fois qu'un utilisateur se connecte, il devrait voir quelque chose comme "Hello username", ce genre de chose. À ce stade, je vois "Bonjour" sans le nom d'utilisateur. Des idées de ce que je pourrais manquer?

+7

Une chose qui vous manque est l'envoi du code en question dans votre question. Voyant le code met tout le monde sur la même page avec où vous êtes et comment vous pouvez résoudre une solution. –

+1

Oui, s'il vous plaît montrer du code. –

+0

J'essaie de poster du code mais OS ne le permet pas .. pourquoi est-ce? – queryne

Répondre

0

ok désolé pour tous les gars d'avant en arrière. voici le problème. J'ai une application php et une base de données mysql connectée (ou du moins je l'espère ...). il y a un formulaire dans l'en-tête de ma page pour les utilisateurs à se connecter. Je peux me connecter, mais je n'arrive pas à tirer des informations de la base de données. Si j'essaie de me connecter en utilisant des informations d'identification fausses, un message "connexion incorrecte" s'affiche. Cependant, lorsque je me connecte, il ne semble pas pouvoir extraire autre chose de la base de données que ces informations d'identification.

ok voici le code ...

CONNEXION BASE DE DONNÉES:

<?php 
session_start(); 

# FileName="Connection_php_mysql.htm" 
# Type="MYSQL" 
# HTTP="true" 
$hostname_test = "localhost"; 
$database_test = "girlpower"; 
$username_test = "root"; 
$password_test = "password"; 
$test = mysql_pconnect($hostname_test, $username_test, $password_test) or trigger_error(mysql_error(),E_USER_ERROR); 

mysql_select_db($database_test, $test); 
?> 

VOICI LE CODE DE CONNEXION:

<?php 
require_once("includes/db.php"); 

$userEmail = trim($_POST['userEmail']); 
$password = trim($_POST['password']); 
$userlogin = trim($_POST['userlogin']); 

//print_r($_POST); 

if ($userlogin != "" && $userEmail != "" && password != "" ) 
{ 
    $sql = sprintf("Select * from girlpower where email = '%s' and pwd = '%s'", $userEmail, $password); 

    //echo $sql; 

    $res = mysql_query($sql); 

    if(mysql_num_rows($res) == 0) 
    { 
     //TODO: 
     //redirect.. 

     header("Location: " . $_SERVER['HTTP_REFERER'] . "?fail=1"); 

    } 
    else 
    { 
     $row = mysql_fetch_assoc($res); 
     $_SESSION['recordId'] = $row['recordId']; 
     $_SESSION['firstName'] = $row['firstName']; 

     //echo "success..."; 
     header("Location: " . $_SERVER['HTTP_REFERER']); 

     //print_r($_SERVER); 

    } 

    //print($_SESSION); 

} 
else 
{ 
     header("Location: " . $_SERVER['HTTP_REFERER'] . "?fail=1"); 

} 

D'ICI CODE HEADER (CECI EST OÙ LA FORME VIVE):

<?php 

    $fail = false; 
    if($_GET['fail'] != "") 
    { 
     $fail = true; 
    } 


     if($_SESSION['recordId'] != "") 
    { 
     //get the 1st name 
     $firstName = $_SESSION['firstName']; 
    } 

     ?> 

<div id="header"> 
< SHOULD BE LINK "index.php"></a> 

<div id="ulogin"> 
    <fieldset id="userlogin"> 
     <?php if($firstName == ""){ ?> 
     <form name="loginForm" action="dologin.php" method="post" > 
    <label for="logemail">Members Login: &nbsp;Email</label> <input type="text" 
     name="userEmail" id="logemail" size="15" /> 
     <label for="logpwd">Password</label> <input type="password" name="password" 
       id="logpwd" size="15" /> 
       <input type="submit" name="userlogin" id="login" value="Login" /> 

       <?php if ($fail == true) {?> 
       <span class="error">Incorrect Login</span> 
       <?php }?> 

      </form> 
    </fieldset> 

      <?php 
     } 
    else{ 
    ?> 


<div id="welcome">Welcome <?= htmlentities($firstName) ?> | <SHOULD BE LINK ="seemsgs.php?receiver_id="<?= $_SESSION["recordId"]?> > See Messages</> |<SHOULD BE LINK ="member.php">Update Profile</> | <SHOULD BE LINK ="dologout.php">Logout</a> </div><?php }?> 
</div> 
+0

laissez-moi savoir si c'est lisible. n'a pas posté de code sur OS avant. – queryne

+0

C'est bon, mais vous devriez le modifier et l'ajouter à votre question, plutôt que de l'afficher ici (c'est la section 'réponse' de la page) –

0

Je remarque que vous utilisez l'utilisateur root En fonction de l'environnement d'hébergement que vous utilisez ce peut ou peut ne pas être un problème (bien que je ne suis pas sûr que cela a été ajouté simplement pour les affectations en poste ici.) - certains hôtes partagés vous forcent à affecter un utilisateur pour les bases de données dans MySQL. De l'apparence des choses, votre requête devrait s'exécuter et renvoyer un nombre de lignes au minimum. Avez-vous essayé print_r sur le tableau de résultats? Si oui, pouvez-vous poster la sortie?

Si vous obtenez des résultats avec succès de la base de données, je ne vois pas dans votre code posté un message conditionnel qui résume un message de réussite. Vous pouvez vérifier isset() par rapport aux clés superglobales $ _SESSION que vous affectez (recordID et firstName) et si vrai renvoyer un message de réussite si vous ne l'avez pas déjà fait. Juste une pensée aussi - J'ai remarqué que vous utilisez sprintf pour formater votre requête - il peut être un peu trop robuste pour ce que vous essayez d'accomplir, mais l'utilisation de PDO pour obtenir des requêtes sql paramétrées est une bonne façon pour faire ce travail là où c'est possible. Introduction to PHP 5 PDO

Questions connexes