Неизвестная ошибка PHP в SQL INSERT INTO - PullRequest
0 голосов
/ 02 сентября 2011

У меня проблема с моей регистрацией.Посмотрите на мой код:

//player.php
<?php
session_start();
class Player
{
var $name;
function _construct($name)
{
    $this->$name = $name;
}
function CreatePlayer($name, $pass, $mail, $date, $type)
{
    if($_POST['submit'])
    {
        $link = mysql_connect("localhost","wewewe", "wewewe");
        if(!$con)
        {
            die( $return = mysql_error());
        }   
        mysql_select_db("wewewe", $con);
        mysql_query("INSERT INTO USERS (name, pass, mail, date, type) VALUES ('$name', '$pass', '$mail', '$date','$type')");
        mysql_close(link);
    }
    return $return;
}
function LoginPlayer($name, $pass)
{

    $link = mysql_connect("localhost","username", "pass");
    mysql_select_db("con", $con);
    $result = mysql_query("SELECT FROM USERS WHERE pass='$pass' AND name='$name'");
    $count = mysql_num_rows($result);
    if($count==1)
    {
        $_SESSION['name'] = $name;
        $_SESSION['logged'] = true;
    }
    mysql_close($link);
}
}
?>
//reg.php
<html>
<form action="log.php" method="post">
Meno: <input type="text" name="meno">
<br>
Heslo: <input type="text" name="heslo">
<br>
Mail: <input type="text" name="mail">
<br>
Date: <input type="text" name="date">
<br>
Type: <input type="text" name="type">
<br>
<input type="submit">
<br>
</form>
<?php

include 'player.php';
$name = $_POST['meno'];
$pass = $_POST['heslo'];
$mail = $_POST['mail'];
$date = $_POST['date'];
$type = $_POST['type'];
$obj = new Player($name);

$res = $obj->CreatePlayer($name, $pass, $mail, $date, $type);
if($res==true)
{
echo "jo!";
}
else
{
echo $res;
}
?>

Моя проблема в том, что если я напишу текст во все поля и нажму ок, моя страница перезапустится, но без сообщения об ошибке.И когда я посмотрю в базу данных, ничего нет.Зачем?Кто-нибудь может помочь мне?

РЕДАКТИРОВАТЬ:

 <?php
 session_start();
 class Player
 {
var $name;
function _construct($name)
{
    $this->$name = $name;
}
function CreatePlayer($name, $pass, $mail, $date, $type)
{
    if($_POST['submit'])
    {
        $con = mysql_connect("localhost","wewewe", "wewewe");
        if(!$con)
        {
            die( $return = mysql_error());
        }   
        mysql_select_db("wewewe", $con);
        $query = "INSERT INTO USERS (name, pass, mail, date, type) VALUES ('$name', '$pass', '$mail', '$date','$type')";

        $retrn = var_dump($query); // SHOWS YOU QUERY STRING

        mysql_query($query) or die(mysql_error()); // EXECUTES QUERY OR THROWS EXCEPTON (SHOWS ERROR TOO)
        mysql_close($con);
    }
    return $return;
}
function LoginPlayer($name, $pass)
{

    $link = mysql_connect("localhost","username", "pass");
    mysql_select_db("con", $con);
    $result = mysql_query("SELECT FROM USERS WHERE pass='$pass' AND name='$name'");
    $count = mysql_num_rows($result);
    if($count==1)
    {
        $_SESSION['name'] = $name;
        $_SESSION['logged'] = true;
    }
    mysql_close($link);
}
 }
 ?>

Ответы [ 3 ]

2 голосов
/ 02 сентября 2011

Я думаю, что это не происходит внутри if($_POST['submit'])

изменить

<input type="submit">

до

<input name="submit" type="submit" />
1 голос
/ 02 сентября 2011

<input type="submit"> изменить на <input type="submit" name="submit">

Для отладки SQL INSERTING:

mysql_select_db("wewewe", $con);
mysql_query("INSERT INTO USERS (name, pass, mail, date, type) VALUES ('$name', '$pass', '$mail', '$date','$type')");
mysql_close(link);

изменить на

mysql_select_db("wewewe", $con);
$query = "INSERT INTO USERS (name, pass, mail, date, type) VALUES ('$name', '$pass', '$mail', '$date','$type')";

var_dump($query); // SHOWS YOU QUERY STRING

mysql_query($query) or die(mysql_error()); // EXECUTES QUERY OR THROWS EXCEPTON (SHOWS ERROR TOO)
mysql_close(link);
0 голосов
/ 02 сентября 2011

Ваш запрос в функции LoginPlayer неверен.Вы можете просто исправить это так

$result = mysql_query("SELECT name FROM USERS WHERE pass='$pass' AND name='$name'");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...