Это мой код:PHP Если заявления не работает
if ($username == "" || $pass == "" || $emailad==""|| $fname=="")
{
$msg = "Not all fields were entered";
}else
{
if(uniqueUser($username,$emailad))
{
$msg="The username or email already exists";
}else
{
insertIntoDB($fname,$emailad,$username,$pass);
$msg="The user has been inserted";
}
}
echo $msg;
это будет использоваться для ввода нового пользователя в мой дб. Однако моя проблема заключается в том, что если я добавлю в нее не существующего пользователя, программа сообщит мне, что имя пользователя уже существует, но оно будет вставлять новую учетную запись, если ее нет в базе данных. Поэтому программа работает нормально с точки зрения вставки в зависимости от того, существует ли пользователь в базе данных или нет. Проблема заключается в отображении сообщений для меня, потому что я никогда не узнаю, находится ли пользователь в базе данных или нет, так как независимо от того, как я переписываю этот фрагмент кода, не существующая вставка пользователя приведет к отображению неправильного сообщения. Это связано с тем, что код запускает операторы if, вставляет нового пользователя ... и снова запускает отображение сообщения, которое оно уже существует. Может ли кто-нибудь объяснить, почему это происходит?
Уникальная функция пользователя:
function uniqueUser($usern,$eml)
{
$query = "SELECT S.username,S.email FROM tbl_user S WHERE S.username='$usern' OR S.email='$eml'";
return mysql_num_rows(queryMysql($query));
}
почему этот код вызывается дважды тогда? –
Ваш скрипт вызывается дважды - иногда это происходит из-за перезаписи URL, выполняемой веб-сервером. Проверьте свои веб-журналы, чтобы узнать, есть ли у вас два запроса для каждого ожидаемого. –
Не могли бы вы сделать что-то не так с функцией 'uniqueUser'? – hndr