2012-10-09 2 views
-3

Je suis en train de passer un paramètre à une fonction PHP Mais rien ne se passe, je veux dire le code ne passe pas le paramètre dans index.php à newPHPClass.php et est-il possible d'appeler une fonction dans l'action de forme? voici mon code.Essayer de passer un paramètre, ne fonctionne pas :(

index.php

<?php include '../con_db/connect.php'; ?> 
    <?php include '../class/newPHPClass.php'; ?> 

<form action="index.php" method="post"> 
     <label>Username:</label><input type="text" name="username"/><br/> 
     <label>Password:</label><input type="text" name="password"/><br/> 
     <input type="submit" value="Submit" name="submit"/> 
    </form> 

    <?php 
    if (isset($_POST['submit'])) { 
     $username = $_POST['username']; 
     $password = $_POST['password']; 
     $check = new newPHPClass(); 
     $check->checkLogin($username, $password); 
     } 
    ?> 

et la classe

include '../con_db/connect.php'; 

class newPHPClass { 

    public function checkLogin($username, $password) { 
     $select = mysql_query('SELECT * FROM users WHERE username = "' . $username . '" AND password = "' . $password . '"'); 
     if (count($select) > 0) { 
      echo "true"; 
      return true; 
     } else { 
      echo "false"; 
      return false; 
     } 
    } 
+1

-1 Quel est le problème? – sachleen

Répondre

1

votre syntaxe INSERT est incorrecte,

$select = mysql_query("INSERT FROM users (username, password) 
          VALUES ('$username', '$password')"); 

vous demande actuelle est vulnérable SQL Injection, s'il vous plaît prendre le temps de lire l'article ci-dessous,

Best way to prevent SQL injection in PHP?

MISE À JOUR 1

$sql = "SELECT COUNT(*) totalCount 
     FROM users 
     WHERE username = '$username' AND password = '$password'"); 
$result = mysql_query($sql, $link) or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
if($row["totalCount"] > 0) 
{ 
    echo "true"; 
    return true; 
} 
else 
{ 
    echo "false"; 
    return false; 
} 
+0

Désolé, mon mauvais. Il va vérifier si l'utilisateur et le mot de passe existent dans la base de données – Catherine

+0

@Catherine voir ma réponse mise à jour –

+0

merci beaucoup pour votre aide.C'est ce que je cherche.Merci encore – Catherine

0

La syntaxe de la classe est comp mal foutu. Tout d'abord pourquoi appelez-vous INSERT pour vérifier un identifiant. Deuxièmement, c'est INSERT INTO même si c'était un INSERT dont vous aviez besoin ici, ce qui n'est pas le cas. Ne jamais vérifier> 0 sur les connexions, vous ne voulez JAMAIS qu'une ligne retournée. De plus, mettre la requête à l'intérieur de "au lieu de" signifie qu'elle peut lire les variables sans concaténer la requête comme vous l'avez fait

+0

désolé, que devrait être SELECT * pas INSERT.J'ai bu trop de café hehe. – Catherine

Questions connexes