SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

система за гласуване + & -

nullsoft

Active member
Колеги пиша едно скриптче което има гласуване като харесва ми и не ми харесва

гласуването го правя с AJAX само искам да попитам по опитните програмисти как биха направили това на мое място.

PHP:
<form action="" name="vote" method="post" onsubmit="xmlhttpPost('../vote.php', 'commentform', 'MyResult', '<img src=\'pleasewait.gif\'>'); return false;">
					<input type="hidden" name="gid"  value="11" class="cominput" />
					<input type="hidden" name="up"  value="up" class="cominput" />
					<input type="submit" name="submit" value="" id="voteup" />
					</form>

Така де гласуването го правя с проста форма, но се питам дали има по удачен и лесен начин.

и още едно въпросче след гласуване пробвах да сетна cookie, но ми пищеше header already set......

как бихте оправили това с мулти вотето.


ЕДИТ: ето и снимка за бутоните :)
 

Прикачени файлове

  • 1278409480673.png
    1278409480673.png
    3.5 KB · Преглеждания: 0
Последно редактирано:
Re: система за гласуване + & -

При положение, че ползваш ajax нямаш нужда от цяла post форма, нужен ти е единствено елемент със onclick евент.

Относно "хедър алреди сент", това ознавача, че има пратено съдържание, преди сетването на кукито от дадената страница.

Страниците достигащи за обработка от браузера пристигат в 2 части, първата е хедърите с информация как да бъде рендерирана страницата, втората е самото съдържание, като не може след като е пратено съдържанието да се сендват хедър данни по този начин.

Можеш да сетнеш кукито с джава скрипт, но при php-то винаги трябва да го сетваш преди изпращане на съдържанието.
 
Re: система за гласуване + & -

При положение, че ползваш ajax нямаш нужда от цяла post форма, нужен ти е единствено елемент със onclick евент.

Ако ползвам a href onclick тогава ще трябва да ползвам GET вместо POST или греша ??

Това с бисквитките ще пробвам да ги сетна с javascript.
 
Re: система за гласуване + & -

Ако ползвам a href onclick тогава ще трябва да ползвам GET вместо POST или греша ??
Ти така или иначе не пращаш нищо по POST, формата не се изпълнява заради ретърн фалзе-то накрая на онсубмит евънт-а.

Ако се изпълняваше, щеше да ти рефрешне страницата и смисъла на ajax-a най-малкото се губи.

Пращаш си параметрите по гет, като ползваш пътя до обработващия скрипт извикан от ajax-a и си спестяваш солидно количество главоболия, както и код. :)

Това с бисквитките ще пробвам да ги сетна с javascript.
Имай в предвид обаче, че бисквитката ще е достъпна за конкретната страница през php-то чак след рефреш. *

*В случай, че разчиташ на това чрез нея да определяш някакво съдържание на текущата страница, възможност да се гласува повторно и т.н. :)
 
Re: система за гласуване + & -

Имай в предвид обаче, че бисквитката ще е достъпна за конкретната страница през php-то чак след рефреш. *

*В случай, че разчиташ на това чрез нея да определяш някакво съдържание на текущата страница, възможност да се гласува повторно и т.н. :)
Не съм съвсем съгласен с това:


1. Гласуване - зпращаш ajax заявка
2. Заявкатат и връща true/false
3. Сетваш бисквитка

4. Нов опит за гласуване - тук вече браузера праща заедно с ajax-а и бисквитката.

Не е нужен рефреш между 3 и 4.

Може да се гласува повторно, но първо трябва да се изтрие бисквитката.
 
Re: система за гласуване + & -

Не съм съвсем съгласен с това:
Прочети пак какво съм написал, бавно... :)

Достъпна е за php-то след презареждане на страницата.

Edit: А вече той как ще си упражни контрола над повторното гласуване,
има защита и от страната на клиента и от сървъра и хиляда варианти, като най-добрия е комбинацията, а ти си дал единия. :)
 
Последно редактирано:
Re: система за гласуване + & -

Viktor Shapilov каза:
Прочети пак какво съм написал, бавно... :)

Достъпна е за php-то след презареждане на страницата.

Така де, точно с това не съм съгласен - не е нужен рефреш за да се прати бисквитката към сървъра - през ajax (при който НЕ се прави refresh) бисквитката пак ще е достъпна.

Имам някакво странно чувство, че говорим за едно и също нещо...
 
Последно редактирано:
Re: система за гласуване + & -

Така де, точно с това не съм съгласен - не е нужен рефреш за да се прати бисквитката към сървъра - през ajax (при който НЕ се прави refresh) бисквитката пак ще е достъпна.

Имам някакво странно чувство, че говорим за едно и също нещо...
Естествено, умишлено се самоцитирах по-горе.

Формата за гласуване, се генерира от php-то, за да се забрани повторното гласуване от страна на клиента трябва забраната да стане с джава скрипт, тъй като php-то за да прочете кукито и да не изкарва вотинг формата изисква рефреш.

Като най-лесният вариант да стане това е като джава скрипта проверява дали има сетнато куки и съответно дали да позволява нови вотвания, тъй като страницата е вече заредена от сървъра ( php-то ) и изисква рефреш за да е възможно с php-то да се ограничи дали да позволява вотване или не.

Надявам се този път да ме разбра, какво имам в предвид.
 

Горе