Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужна помощь с формами
 
 автор: alebronn   (07.08.2009 в 11:16)   письмо автору
 
 

Помогите разобраться… Есть скрипт который записывает данные в базу, но реализовал я это так что при нажатии на кнопку открывается новое окно и пользователь уходит с основной страницы, как сделать чтоб он оставался на той же странице (1. обработка в одом файле или 2. возврат на предыдущую страницу)
Вот код:

index.php



<a href=
<?php
print "sq.php?mail=$email_user"."&hidestat=$hidestat"."&vip=$value";
?>
><img src="template/images/services/hide.gif" /></a>



sq.php



<?php
error_reporting
(0);
$vip $_GET['vip'];
if (
$vip == free)
{
$email_user $_GET['mail'];
$hidestat $_GET['hidestat'];
mysql_connect('localhost','login','password');
mysql_select_db(baza) or die(mysql_error());
$query "UPDATE LOW_PRIORITY job_user SET hideinfo = '$hidestat' WHERE email_user='$email_user'";
$result mysql_query($query);
}
else
{
echo 
"Вы должны приобрести VIP - статус!";
}
?> 

  Ответить  
 
 автор: Sergeich   (07.08.2009 в 13:02)   письмо автору
 
   для: alebronn   (07.08.2009 в 11:16)
 

На одной странице:
<?php
if (!empty($_GET['vip'])){
//Код обработки
}
else {
print 
"<a href=";
print 
"index.php?mail=$email_user"."&hidestat=$hidestat"."&vip=$value";
print 
"><img src=\"template/images/services/hide.gif\" /></a>";
}
?>

  Ответить  
 
 автор: alebronn   (07.08.2009 в 13:41)   письмо автору
 
   для: Sergeich   (07.08.2009 в 13:02)
 

Вот что получилось у меня: Почему то первое условие не обрабатывается... Кнопка (рисунок) выводится в адресной строке вижу "http://www.rabota/userpanel.php?mail=alebronn@gmail.ru&hidestat=1&vip=free" но в базе ничего не меняется.

<?php
if (!empty($_GET['vip'])){
$vip $_GET['vip'];
if (
$vip == 'free')
{
$email_user $_GET['mail'];
$hidestat $_GET['hidestat'];
mysql_connect('localhost','login','pass');
mysql_select_db(baza) or die(mysql_error());
$query "UPDATE LOW_PRIORITY job_user SET hideinfo = '$hidestat' WHERE email_user='$email_user'";
$result mysql_query($query);
if (
$hidestat == 1)
{
echo 
"Вся ваша контактная информация будет скрыта от пользователей";
}
else
{
echo 
"Вся ваша контактная информация будет показана пользователям";
}
}
else
{
echo 
"Вы должны приобрести VIP - статус!";
}
}
else {
print 
"<a href=";
print 
"http://www.rabota/userpanel.php?mail=$email_user"."&hidestat=$hidestat"."&vip=$value";
print 
"><img src=\"template/images/services/hide.gif\" /></a>";
}
?>

  Ответить  
 
 автор: Sergeich   (07.08.2009 в 14:04)   письмо автору
 
   для: alebronn   (07.08.2009 в 13:41)
 

А выводится ли одна из опций echo? Если да, то тогда проблема где-то в обработчике. По идее должно работать.

  Ответить  
 
 автор: alebronn   (07.08.2009 в 14:16)   письмо автору
 
   для: Sergeich   (07.08.2009 в 14:04)
 

Вверху до проверки второго условия поставил
echo "$vip" ;

вроде в браузере пишет free
но из нижних эхов выводит "Вы должны приобрести VIP - статус!"
То есть он почемуто это free не видит... Блин, я уже запарился.

  Ответить  
 
 автор: alebronn   (07.08.2009 в 14:18)   письмо автору
 
   для: alebronn   (07.08.2009 в 14:16)
 

Для упрощения видоизменил так, но всё равно не пашет:

<?php
$vip 
$_GET['vip'];
echo 
"$vip"  ;
if (
$vip == "free")
{
$email_user $_GET['mail'];
$hidestat $_GET['hidestat'];
mysql_connect('localhost','login','pass');
mysql_select_db(baza) or die(mysql_error());

$query "UPDATE LOW_PRIORITY job_user SET hideinfo = '$hidestat' WHERE email_user='$email_user'";
$result mysql_query($query);

if (
$hidestat == 1)
{
echo 
"Вся ваша контактная информация будет скрыта от пользователей";

}
else
{
echo 
"Вся ваша контактная информация будет показана пользователям";

}
}
else
{
echo 
"Вы должны приобрести VIP - статус!";
}
?>
<?php
print "<a href=";
print 
"http://www.rabota/userpanel.php?mail=$email_user"."&hidestat=$hidestat"."&vip=$value";
print 
"><img src=\"template/images/services/hide.gif\" /></a>";

?>

  Ответить  
 
 автор: Sergeich   (07.08.2009 в 14:26)   письмо автору
 
   для: alebronn   (07.08.2009 в 13:41)
 

А так:
<?php
if (!empty($_GET['vip'])){
$vip $_GET['vip'];
if (
$vip == 'free')
{
$email_user $_GET['mail'];
$hidestat $_GET['hidestat'];
mysql_connect('localhost','login','pass');
mysql_select_db(baza) or die(mysql_error());
$query "UPDATE LOW_PRIORITY job_user SET hideinfo = '$hidestat' WHERE email_user='$email_user'";
$result mysql_query($query);
if (
$hidestat == 1)
{
echo 
"Вся ваша контактная информация будет скрыта от пользователей";
}
else
{
echo 
"Вся ваша контактная информация будет показана пользователям";
}
}
else
{
echo 
"Вы должны приобрести VIP - статус!";
}
}
else {
$value="free";
print 
"<a href=";
print 
"http://www.rabota/userpanel.php?mail=$email_user"."&hidestat=$hidestat"."&vip=$value";
print 
"><img src=\"template/images/services/hide.gif\" /></a>";
}
?> 

  Ответить  
 
 автор: alebronn   (07.08.2009 в 14:34)   письмо автору
 
   для: Sergeich   (07.08.2009 в 14:26)
 

Не хочет он этого обрабатывать:

if (!empty($_GET['vip'])){

  Ответить  
 
 автор: alebronn   (07.08.2009 в 14:42)   письмо автору
 
   для: alebronn   (07.08.2009 в 14:34)
 

А может вот в этом проблемма, дело в том что эта страница у меня вобщето в адресной строке выглядит вот так : http://www.rabota/userpanel.php?main=v
А адрес на кнопке выглядит http://www.rabota/userpanel.php?mail=alebronn@gmail.ru&hidestat=1&vip=free
И принажатии кнопки страница обнавляется не полностью, может ему нада гдето подставить это : ?main=v

  Ответить  
 
 автор: alebronn   (07.08.2009 в 14:47)   письмо автору
 
   для: alebronn   (07.08.2009 в 14:42)
 

Блин точно... Теперь когда книпотку подписал как :
http://www.rabota/userpanel.php?main=v&mail=$email_user"."&hidestat=$hidestat"."&vip=$value

То начало обрабатывать код в условии, но теперь ругается на
Notice: Use of undefined constant bank - assumed 'baza' in Z:\home\rabota\www\template\user\user_vacancy.html on line 173

  Ответить  
 
 автор: alebronn   (07.08.2009 в 15:02)   письмо автору
 
   для: alebronn   (07.08.2009 в 14:47)
 

Более менее разобрался, почти заработало, но при первом нажатии появляятся значение в $_GET['vip'] и соответственно при обновлении страницы это условие опять обрабатывается... То есть нада чтоб после изменения значения в базе данных $_GET['vip'] опять обнулилось. Как это сделать?

  Ответить  
 
 автор: Sergeich   (07.08.2009 в 15:03)   письмо автору
 
   для: alebronn   (07.08.2009 в 14:47)
 

Определитесь с кодом. Тот, что Вы выложили на форуме в моей "редакции" вполне рабочий. Тот, о котором Вы пишите никто не видел, соответственно, дать совет тоже нельзя, волшебников и ясновидящих, на сколько я знаю, здесь пока еще нет.

  Ответить  
 
 автор: alebronn   (07.08.2009 в 15:35)   письмо автору
 
   для: Sergeich   (07.08.2009 в 15:03)
 

Ну вот код приобрёл такой вид ( дело в том что первичный вид был нужен для передачи значений в другую страницу, а теперь он работает в одной и той же). Так вот вроде как поменял значение в базе, но в $_GET['vip'] теперь есть значение и после обновления страницы условие опять само выполняется


<?php
$result_d 
mysql_db_query ("baza""select hideinfo from job_user WHERE email_user='$email_user'");
while(
$row=mysql_fetch_array($result_d)) {
$hide $row["hideinfo"];


if (
$hide == 0)
{
$hidestat 1;
$hitetext TEMPLATE_ADD_TOOLS_BUTTON_HIDE_ON;
}
else
{
$hidestat 0;
$hitetext TEMPLATE_ADD_TOOLS_BUTTON_HIDE_OFF;
}
};
?>

<?php
if (!empty($_GET['vip'])){
$vip $_GET['vip'];
if (
$vip == 'free')
{
$email_user $_GET['mail'];
$hidestat $_GET['hidestat'];
$query "UPDATE LOW_PRIORITY job_user SET hideinfo = '$hidestat' WHERE email_user='$email_user'";
$result mysql_query($query);
if (
$hidestat == 1)
{
echo 
"Вся ваша контактная информация будет скрыта от пользователей";
}
else
{
echo 
"Вся ваша контактная информация будет показана пользователям";
}
}
else
{
echo 
"Вы должны приобрести VIP - статус!";
}
}

?>
<?php
print "<a href=";
print 
"http://www.rabota/userpanel.php?main=v&mail=$email_user"."&hidestat=$hidestat"."&vip=$value";
print 
"><img src=\"template/images/services/hide.gif\" /></a>";
?>

  Ответить  
 
 автор: Sergeich   (07.08.2009 в 15:51)   письмо автору
 
   для: alebronn   (07.08.2009 в 15:35)
 

Перед занесением в базу делать проверку на наличие аналогичной записи в базе.

  Ответить  
 
 автор: alebronn   (07.08.2009 в 16:03)   письмо автору
 
   для: Sergeich   (07.08.2009 в 15:51)
 

Так запись там по любому есть, то есть пользователь может хоть десять раз жмакать книпатку и данные в базе должны меняться. То есть нада както сделать чтоб книпатка "забывала" о том, что её перед этим жмакали.

  Ответить  
 
 автор: XoLoD   (07.08.2009 в 16:46)   письмо автору
 
   для: alebronn   (07.08.2009 в 16:03)
 

вот такую проверочку нужно сделать вверху скрипта
гдето сдесь нашол
подправите под свои нужды


<?php
//Проверка 
$rus = array("А","а","В","Е","е","К","М","Н","О","о","Р","р","С","с","Т","Х","х");  
// Массив латинских букв  
$eng = array("A","a","B","E","e","K","M","H","O","o","P","p","C","c","T","X","x");  
// Заменяем русские буквы латинскими  
$eng_nick str_replace($rus$eng$nick);   
// Заменяем латинские буквы русскими  
$rus_nick str_replace($eng$rus$nick);   
// Формируем SQL-запрос  
$query "SELECT * FROM fspt   
          WHERE nick LIKE '
$nick' OR  
                nick LIKE '
$eng_nick' OR  
                nick LIKE '
$rus_nick'";  
$ath mysql_query($query);  
  if(
$ath)  
  {  
    if(
mysql_num_rows($ath)>0)  
    {  
    echo 
"Ник \"$nick\" уже зарегистрирован.";  
    exit();  
    }  
  }
?>

  Ответить  
 
 автор: alebronn   (07.08.2009 в 17:02)   письмо автору
 
   для: XoLoD   (07.08.2009 в 16:46)
 

Извиняюсь, не понял как это можно использовать, чтото не вижу ничего похожего на то что мне нада.

Кстати если я перехожу на другую страницу и потом возвращаюсь опять на эту (с кнопкой) то всё работает нормально, то есть $_GET['vip'] стал пустым, и в базу данных заносится новое значение (только при нажатии кнопки) , но дальше при обновлении $_GET['vip'] уже со значением, и условие выполняется сразу.. Ну вот как значение в базе заставить меняться с каждым нажатием кнопки (рисунка)???? с 1 на 0 и наоборот...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования