Есть в базе таблица anketa в которой есть поле Nik. Почему не сверяет вводимый ник с данными в поле Nik и не выводит сообщение такой логин уже есть при обнаружении такой записи. Вот код: if (!empty($_POST["add"])) { $on_submit=true; if (empty($_POST["Nik"])) { echo '<center><p>Введите Ник</p></center>'; $error=true; } else { $Nik=$_POST["Nik"]; // Далее проверяем введенные пользователем данные $nick_q = mysql_query("Select Nik From anketa Where nick=".$Nik); // Проверка на существование в базе введенного ника if(mysql_affected_rows()!==0) // Если такой существует выводим : { echo '<center><p>Ник существует</p></center>'; }} if (empty($_POST["Password"])) { echo '<center><p>Введите пароль</p></center>'; $error=true; } else
возможно потому что sql хочет чтобы varchar был в кавычках. $nick_q = mysql_query("Select Nik From anketa Where nick='".$Nik."'");
нет не в этом дело! Я этот код отдельно написал всеравно пишет что ник существует хотя его в базе нет!! Вот код: <?php include "config.php"; //подключение к базе "chat" $Nik="ddhjjj"; // на самом деле такого ника НЕТ // Далее проверяем введенные пользователем данные $nick_q = mysql_query("Select Nik From anketa Where nick='".$Nik."'"); // Проверка на существование в базе введенного ника if(mysql_affected_rows()!==0) // Если такой существует выводим : { echo '<center><p>Ник существует</p></center>'; } else { echo '<center><p>Ник существует</p></center>'; } ?>
Опечатка в: else { echo '<center><p>Ник НЕ существует</p></center>'; } ?> но не повлеяло всеравно пишет существует (
Пробывал по другому методу тоже самое пишет в любом случае ник существует даже если его там нет (((( Вот код: <?php include "config.php"; $Nik="ddfc"; $sql = "SELECT Nik FROM anketa WHERE Nik='".$Nik."'"; $result = mysql_query($sql); if ($result !='') {print "Ник существует";} else{ print "Ник не существует"; } ?> Помогите найти ошибку плс
tommyangelo спс большое! Метот очень помог! Я тут тоже перекрутил и заработало правдо наверное это плохой тон и меня засмеют, но главное заработало )))) Вот код: <?php include "config.php"; $Nik="dd"; // любое другое имя даст ответ: Ник не существует $res = mysql_query ("SELECT Nik FROM anketa WHERE Nik='".$Nik."'"); $result = mysql_fetch_array($res); if (!$result) {print "Ник не существует";} else { print "Ник существует"; } ?>
Нормальный, особенно если выводить вместо else { print "Ник существует"; } else { print "Найденный ник - " . $result['Nik'] ; }
Это то да но мне это не нужно я же это для примера у меня else и дальше запист ника в БД. Я ток начинаю и у меня детский вопросик для чего нужен: mysql_query Кстати в tommyangelo примере если его добавить перед select не работает код! а в случае массива наоборот если убрать то работать не будет!
http://ua.php.net/manual/ru/function.mysql-query.php mysql_query - возвращает ссылку на результат выполнения запроса. И этот результат надо как-то обработать. Если запрос на выборку - используем mysql_fetch_array(), чтобы каждую строку результата преобразовать в массив, mysql_num_rows() чтобы узнать сколько строчек нам вернул запрос Если на вставку, то обрабатываем например mysql_affected_rows() - возвращает сколько строк было вставлено, обновлено или удалено. И т.д. Читаем мануалы, не ленимся)))
И еще нубский вопросик! Искал в инете не нашел нигде! Как в форме вывести на экран значение переменной $nick! Хочеться чтоб возлое поля с ником-справо писалось сообщение если ник не введен- Введите ник! <?php if (empty($_POST["Nik"])) { $nick='<center><p>Введите Ник</p></center>'; $error=true; } else ........... $t.= "<form method='post' action=''> <div class='centers'> <table align='center' width='683' border='1' cellpadding='5' cellspacing='5'> <tr> <td colspan='2' align='center'><strong> РЕГИСТРАЦИЯ </strong></td> </tr> <tr> <td colspan='2' align='center'><strong> При заполнении полей анкеты будьте внимательные. </strong></td> </tr> <tr> <td colspan='2' align='center'><strong> Обязательные поля отмечены * - звездочкой </strong></td> </tr> <tr> <td align='right'><span class='red'>*</span>Ник</td> <td align='left'><input name='Nik' type='text' value= '".htmlspecialchars($Nik,ENT_QUOTES)."' size='30' xlength='45'> </td> // В этой ячейке должно выводиться значение переменной $nick если не введен Ник </tr> ................ </table> </div> </form> "; echo ($t); ?> Заранее спасибо!!! Пробывал в кавычках echo $nick не помогает ((
а если так PHP: htmlspecialchars([b]$_POST['Nik'][/b],ENT_QUOTES) и вообще я считаю плохим тоном: 1. в html коде использовать одинарные кавычки 2. раз уж есть возможность оформить код, так почему бы это не сделать? Читать-то ведь гораздо удобнее.
Так без одинарных ковычек тут не обойтись!! Форма занесенная в переменную работать не будет! Форму то надо взять всю в ковычки двайные а если внутри не будет одинарных то форма не работает!Если конечно полностью не убрать переменную и форму написать вне пхп кода, но это уже все переделывать надо и это совсем другая история )
bkm А причем тут htmlspecialchars($_POST['Nik'],ENT_QUOTES) Если мне надо вывести переменную $nick='<center><p>Введите Ник</p></center>'; на экран после поля в форме <td align='left'><input name='Nik' type='text' value= '".htmlspecialchars($Nik,ENT_QUOTES)."' size='30' xlength='45'> СЮДА Ваш код у меня и так стоит в поле type='text' value= '".htmlspecialchars($Nik,ENT_QUOTES что б сохранялись данные если не правильно введены.
bkm дак и я про то что разные переменные в $Nik у меня введенное пользователем значение а в переменной $nick это то что мне надо вывесте на экран в случае ошибки!!! Именно $nick мне надо вывести в после поля в форме. Решил я это только когда убрал переменную вообще и пхп код писал уже там где необходимо. Хотелось бы 1 вариант до конца добить ) Вот измененный код: <?php include "../config.php"; $Nik=""; $Password=""; $first_name=""; $error=false; $Sex=""; $on_submit=false; $Sex_m=""; $Sex_j=""; $Sex_x=""; $mas_Sex=array ("m"=>"мужской","j"=>"женский","x"=>"не знаю"); $selected=" selected='selected' "; if (!empty($_POST["add"])) { $on_submit=true; if (empty($_POST["Nik"])) { $nonick= '<font style="color:red; font-size:12pt; font-family:Arial">Введите ник </font>'; $error=true; } else { $Nik= htmlspecialchars ($_POST["Nik"], ENT_QUOTES); $sql = "SELECT Nik FROM anketa WHERE Nik='".$Nik."'"; $result = mysql_query($sql); if (mysql_num_rows($result) > 0) { $truenick='<font style="color:red; font-size:12pt; font-family:Arial">Такой Ник уже существует</font>'; $error=true; } } if (empty($_POST["Password"])) { $nopass ='<font style="color:red; font-size:12pt; font-family:Arial">Введите пароль</font>'; $error=true; } else $Password=htmlspecialchars ($_POST["Password"], ENT_QUOTES); if (empty($_POST["first_name"])) { $noname = '<font style="color:red; font-size:12pt; font-family:Arial">Введите Имя</font>'; $error=true; } else $first_name=htmlspecialchars ($_POST["first_name"], ENT_QUOTES); if (empty($_POST["Sex"]) || $_POST["Sex"]=="none") { $nopol = '<font style="color:red; font-size:12pt; font-family:Arial">Введите пол</font>'; $error=true; } else { $Sex=$_POST["Sex"]; switch ($Sex) { case ("m"):$Sex_m=$selected;break; case ("j"):$Sex_j=$selected;break; case ("x"):$Sex_x=$selected;break; } } if ($Password !== $_POST['Last_pass']) { $nolastpass= '<font style="color:red; font-size:12pt; font-family:Arial">Пароли не совпадают!</font>'; $error=true; } $last_name = htmlspecialchars ($_POST['last_name'], ENT_QUOTES); $E_mail = htmlspecialchars ($_POST['E_mail'], ENT_QUOTES); $City = htmlspecialchars ($_POST['City'], ENT_QUOTES); $ICQ = htmlspecialchars ($_POST['ICQ'], ENT_QUOTES); $Home_page = htmlspecialchars ($_POST['Home_page'], ENT_QUOTES); $Age = htmlspecialchars ($_POST['Age'], ENT_QUOTES); } if ($on_submit && !$error) { $sql = 'INSERT INTO anketa(Nik, Password, first_name, last_name, E_mail, City, ICQ, Home_page, Sex, Age) VALUES("'.$Nik.'", "'.$Password.'", "'.$first_name.'", "'.$last_name.'", "'.$E_mail.'", "'.$City.'","'.$ICQ.'","'.$Home_page.'", "'.$mas_Sex[$Sex].'", "'.$Age.'")'; if(!mysql_query($sql)) { echo '<center><p>Ошибка при добавлении данных!</p></center>'; } } else { ?> <form method='post' action=''> <div class='centers'> <table align='center' width='683' border='1' cellpadding='5' cellspacing='5'> <tr> <td colspan='2' align='center'><strong> РЕГИСТРАЦИЯ </strong></td> </tr> <tr> <td colspan='2' align='center'><strong> При заполнении полей анкеты будьте внимательные. </strong></td> </tr> <tr> <td colspan='2' align='center'><strong> Обязательные поля отмечены * - звездочкой </strong></td> </tr> <tr> <td align='right'><span class='red'>*</span>Ник</td> <td align='left'><input name='Nik' type='text' value= '<? echo "$Nik"; ?>' size='30' maxlength='45'> <? echo "$nonick $truenick"; ?></td> </tr> <tr> <td align='right'><span class='red'>*</span>Пароль</td> <td><input name='Password' type='password' value='' size='20' maxlength='25'><? echo "$nopass"; ?></td> </tr> <tr> <td align='right'><span class='red'>*</span>Пароль(повтор)</td> <td><input name='Last_pass' type='password' value='' size='20' maxlength='25'><? echo "$nolastpass" ?> </td> </tr> <tr> <td align='right'><span class='red'>*</span>Имя</td> <td><input name='first_name' type='text' value='<? echo "$first_name"; ?>' size='20' maxlength='25'><? echo "$noname"; ?></td> </tr> <tr> <td align='right'>Фамилия</td> <td><input name='last_name' type='text' value='<? echo "$last_name"?>' size='20' maxlength='25'></td> </tr> <tr> <td align='right'>E-Mail</td> <td><input name='E_mail' type='text' value='<? echo "$E_mail"?>' size='20' maxlength='25'></td> </tr> <tr> <td align='right'>Показывать E-Mail</td> <td><input type='checkbox' name='see_E_mail' value=''> </td> </tr> <tr> <td align='right'>Город</td> <td><input name='City' type='text' value='<? echo "$City" ?>' size='20' maxlength='25'></td> </tr> <tr> <td align='right'>ICQ</td> <td><input name='ICQ' type='text' value='<? echo "$ICQ" ?>' size='20' maxlength='25'></td> </tr> <tr> <td align='right'>Домашняя страничка</td> <td><input name='Home_page' type='text' value='<? echo "$Home_page"?>' size='20' maxlength='25'></td> </tr> <tr> <td align='right'><span class='red'>*</span>Пол<? echo "$nopol"; ?></td> <td><select name='Sex'> <option value='none'>Не выбран</option> <option value='m' <? echo "$Sex_m"?>>Мужской</option> <option value='j'<? echo "$Sex_j"?>>Женский</option> <option value='x' <? echo "$Sex_x"?>>Не знаю</option> </td> </select> </tr> <tr> <td align='right'>Возраст</td> <td><input name='Age' type='text' value='<? echo "$Age"?>' size='3' maxlength='3'></td> </tr> <tr> <td align='right'>Цвет текста</td> <td bgcolor='orange' ><input type='radio' name='color' value='black' checked>Черный <input type='radio' name='color' value='red'><span class='red'>Красный </span><br/> <input type='radio' name='color' value='green'>Зеленый <input type='radio' name='color' value='blue'>Синий </td> </tr> <tr> <td align='right'><label><input type='submit' name='add' id='button' value='Создать' class='buts'></label></td> <td align='center'><label> <input type='reset' value='Сброс'> </label></td> </tr> </table> </div> </form> <?php } ?>