PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
gigs
Отправлено: 07 Мая, 2012 - 13:16:37
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012
Откуда: Киев
Помог: 0 раз(а)
что то ничего не происходит всеравно отсылает ссылки вида
www[dot]site[dot]com и
http://site[dot]com
вот файл формы
PHP:
скопировать код в буфер обмена
<?PHP
// Error reporting:
//id страницы
$pageID = ( isset ( $_GET [ 'id' ] ) ) ?
( int
) $_GET [ 'id' ] : 1 ; //по умолчанию первая страница имеет id=1
include "connect.php" ;
include "comment.class.php" ;
//Тут можно сделать свой запрос, взять контент сайта, заголовок, список для меню и т.п.
//Для примера просто выводим из массива.
//Далее работа с комментариями
$result = mysql_query ( "SELECT * FROM comments WHERE pageid='$pageID ' ORDER BY id ASC" ) ; $comments [ ] = new Comment( $row ) ;
}
header ( 'Content-Type: text/html; charset=utf-8' ) ; ?>
<!DOCTYPE html>
<html>
<head>
<title>Страница <?= $pageID ?> </title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<div id="main">
<div>
<?PHP
foreach ( $comments as $c ) {
echo $c -> markup ( ) ;
}
?>
</div>
<div id="addCommentContainer">
<p>Оставить комментарий</p>
<form id="addCommentForm" method="post" action="1.php">
<div>
<label for="name">Ваше имя</label>
<input type="text" name="name" id="name" />
<label for="email">Ваш Email</label>
<input type="text" name="email" id="email" />
<label for="body">Текс комментария</label>
<textarea name="body" id="body" cols="20" rows="5"></textarea>
<input type="hidden" name="page_id" value="<?= $pageID ?> " />
<input type="submit" id="submit" value="Отправить" />
</div>
</form>
</div>
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
а вот файл обработчик 1.php
(Добавление)
может это из за того что уменя два файла обработчика, первый у меня это comment.class.php, а второй я создал этот 1.php чтобы находило ссылки, может из за этого ?(Отредактировано автором: 07 Мая, 2012 - 13:27:51)
gigs
Отправлено: 07 Мая, 2012 - 13:47:23
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012
Откуда: Киев
Помог: 0 раз(а)
всеравно не работает, вот код другого файла обработки
comment.class.php
PHP:
скопировать код в буфер обмена
<?PHP
class Comment{
public function __construct( $row ) {
/*
/ The constructor
*/
$this -> data = $row ;
}
public function markup( ) {
/*
/ This method outputs the XHTML markup of the comment
*/
// Setting up an alias, so we don't have to write $this->data every time:
$d =& $this -> data ;
$link_open = '' ;
$link_close = '' ;
if ( $d [ 'url' ] ) {
// If the person has entered a URL when adding a comment,
// define opening and closing hyperlink tags
$link_open = '<a href="' . $d [ 'url' ] . '">' ;
$link_close = '</a>' ;
}
// Converting the time to a UNIX timestamp:
// Needed for the default gravatar image:
$url = 'http://' . dirname ( $_SERVER [ 'SERVER_NAME' ] . $_SERVER [ "REQUEST_URI" ] ) . '/img/default_avatar.gif' ;
return '
<div class="comment">
<div class="avatar">
' . $link_open . '
<!--img src="http://www.gravatar.com/avatar/' . md5 ( $d [ 'email' ] ) . '?size=50&default=' . urlencode ( $url ) . '" /--> ' . $link_close . '
</div>
<div class="name">' . $link_open . $d [ 'name' ] . $link_close . '</div>
<div class="date" title="Added at ' . date ( 'H:i \o\n d M Y' , $d [ 'dt' ] ) . '">' . date ( 'd M Y' , $d [ 'dt' ] ) . '</div> <p>' . $d [ 'body' ] . '</p>
</div>
' ;
}
public static function validate( & $arr ) {
/*
/ This method is used to validate the data sent via AJAX.
/
/ It return true/false depending on whether the data is valid, and populates
/ the $arr array passed as a paremter (notice the ampersand above) with
/ either the valid input data, or the error messages.
*/
// Using the filter_input function introduced in PHP 5.2.0
if ( ! ( $data [ 'email' ] = filter_input ( INPUT_POST
, 'email' , FILTER_VALIDATE_EMAIL
) ) ) { $errors [ 'email' ] = 'Please enter a valid Email.' ;
}
if ( ! ( $data [ 'url' ] = filter_input ( INPUT_POST
, 'url' , FILTER_VALIDATE_URL
) ) ) { // If the URL field was not populated with a valid URL,
// act as if no URL was entered at all:
$url = '' ;
}
// Using the filter with a custom callback function:
if ( ! ( $data [ 'body' ] = filter_input ( INPUT_POST
, 'body' , FILTER_CALLBACK
, array ( 'options' => 'Comment::validate_text' ) ) ) ) { $errors [ 'body' ] = 'Please enter a comment body.' ;
}
if ( ! ( $data [ 'name' ] = filter_input ( INPUT_POST
, 'name' , FILTER_CALLBACK
, array ( 'options' => 'Comment::validate_text' ) ) ) ) { $errors [ 'name' ] = 'Please enter a name.' ;
}
if ( ! ( $data [ 'pageid' ] = filter_input ( INPUT_POST
, 'page_id' , FILTER_VALIDATE_INT
) ) ) { $data [ 'pageid' ] = 0 ;
}
// If there are errors, copy the $errors array to $arr:
$arr = $errors ;
return false ;
}
// If the data is valid, sanitize all the data and copy it to $arr:
foreach ( $data as $k => $v ) {
}
// Ensure that the email is lower case:
return true ;
}
private static function validate_text( $str ) {
/*
/ This method is used internally as a FILTER_CALLBACK
*/
return false ;
// Encode all html special characters (<, >, ", & .. etc) and convert
// the new line characters to <br> tags:
// Remove the new line characters that are left
return $str ;
}
}
?>
в нем есть проверка email так она работает если неправильно введен email можно ли так само сделать и для проверки на ссылки? потомучто я делаю как вы пишите выше но ничего ни происходит, или можно ли эту проверку вставить в этот файл ?
Muxa
Отправлено: 07 Мая, 2012 - 13:50:38
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012
Откуда: Россия, Тверь
Помог: 5 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
// Error reporting:
//id страницы
$pageID = ( isset ( $_GET [ 'id' ] ) ) ?
( int
) $_GET [ 'id' ] : 1 ; //по умолчанию первая страница имеет id=1
/*include "connect.php";
include "comment.class.php";*/
//Тут можно сделать свой запрос, взять контент сайта, заголовок, список для меню и т.п.
//Для примера просто выводим из массива.
//Далее работа с комментариями
$result = mysql_query ( "SELECT * FROM comments WHERE pageid='$pageID ' ORDER BY id ASC" ) ; $comments [ ] = new Comment( $row ) ;
}
header ( 'Content-Type: text/html; charset=utf-8' ) ; ?>
<!DOCTYPE html>
<html>
<head>
<title>Страница <?= $pageID ?> </title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<div id="main">
<div>
<?PHP
foreach ( $comments as $c ) {
echo $c -> markup ( ) ;
}
?>
</div>
<div id="addCommentContainer">
<p>Оставить комментарий</p>
<form id="addCommentForm" method="post" action="">
<div>
<label for="name">Ваше имя</label>
<input type="text" name="name" id="name" />
<label for="email">Ваш Email</label>
<input type="text" name="email" id="email" />
<label for="body">Текс комментария</label>
<textarea name="body" id="body" cols="20" rows="5"></textarea>
<input type="hidden" name="page_id" value="<?= $pageID ?> " />
<input type="submit" name="btn" id="submit" value="Отправить" />
</div>
</form>
</div>
<?PHP
{
$text = $_POST [ 'body' ] ;
{
echo "Ссылки запрещены!" ;
}
else
{
//добавляешь коммент
}
}
?>
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
проверил, все работает, нормально..
(Добавление)
правда ссылки типа site.com он пропустит, только типа www[dot]site[dot]*
gigs
Отправлено: 07 Мая, 2012 - 14:06:12
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012
Откуда: Киев
Помог: 0 раз(а)
не понимаю у меня всеравно отсылает с ссылкой, у меня еще есть два файла, первый
submit.php
PHP:
скопировать код в буфер обмена
<?PHP
// Error reporting:
include "connect.php" ;
include "comment.class.php" ;
/*
/ This array is going to be populated with either
/ the data that was sent to the script, or the
/ error messages.
/*/
$validates = Comment:: validate ( $arr ) ;
if ( $validates ) {
/* Everything is OK, insert to database: */
mysql_query ( "INSERT INTO comments(name,url,email,body,pageid) VALUES (
'" . $arr [ 'name' ] . "',
'" . $arr [ 'url' ] . "',
'" . $arr [ 'email' ] . "',
'" . $arr [ 'body' ] . "',
'" . $arr [ 'pageid' ] . "'
)" ) ;
/*
/ The data in $arr is escaped for the mysql query,
/ but we need the unescaped variables, so we apply,
/ stripslashes to all the elements in the array:
/*/
$insertedComment = new Comment( $arr ) ;
/* Outputting the markup of the just-inserted comment: */
} else {
/* Outputtng the error messages */
}
?>
и второй script.js
CODE (
javascript ):
скопировать код в буфер обмена
$( document) .ready ( function ( ) {
/* The following code is executed once the DOM is loaded */
/* This flag will prevent multiple comment submits: */
var working = false ;
/* Listening for the submit event of the form: */
$( '#addCommentForm' ) .submit ( function ( e) {
e.preventDefault ( ) ;
if ( working) return false ;
working = true ;
$( '#submit' ) .val ( 'Working..' ) ;
$( 'span.error' ) .remove ( ) ;
/* Sending the form fileds to submit.php: */
$.post ( 'submit.php' , $( this ) .serialize ( ) , function ( msg) {
working = false ;
$( '#submit' ) .val ( 'Submit' ) ;
if ( msg.status ) {
/*
/ If the insert was successful, add the comment
/ below the last one on the page with a slideDown effect
/*/
$( msg.html ) .hide ( ) .insertBefore ( '#addCommentContainer' ) .slideDown ( ) ;
$( '#body' ) .val ( '' ) ;
}
else {
/*
/ If there were errors, loop through the
/ msg.errors object and display them on the page
/*/
$.each ( msg.errors , function ( k, v) {
$( 'label[for=' + k+ ']' ) .append ( '<span class="error">' + v+ '</span>' ) ;
} ) ;
}
} , 'json' ) ;
} ) ;
} ) ;
может в них еще что то надо менять ?
Muxa
Отправлено: 07 Мая, 2012 - 14:22:21
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012
Откуда: Россия, Тверь
Помог: 5 раз(а)
CODE (
htmlphp ):
скопировать код в буфер обмена
<? PHP
// Error reporting:
//id страницы
$pageID = ( isset ( $_GET [ 'id' ] ) ) ?( int) $_GET [ 'id' ] : 1 ; //по умолчанию первая страница имеет id=1
/*include "connect.php";
include "comment.class.php";*/
//Тут можно сделать свой запрос, взять контент сайта, заголовок, список для меню и т.п.
//Для примера просто выводим из массива.
//Далее работа с комментариями
$result = mysql_query ( "SELECT * FROM comments WHERE pageid='$pageID ' ORDER BY id ASC" ) ; $comments [ ] = new Comment( $row ) ;
}
header ( 'Content-Type: text/html; charset=utf-8' ) ; ?>
<!DOCTYPE html>
< html>
< head>
< title> Страница <?= $pageID ?> </ title>
< link rel= "stylesheet" type= "text/css" href= "styles.css" />
</ head>
< body>
< div id= "main" >
< div>
<? PHP
foreach ( $comments as $c ) {
echo $c -> markup ( ) ;
}
?>
</ div>
< div id= "addCommentContainer" >
< p> Оставить комментарий</ p>
< form id= "addCommentForm" method= "post" action= "" >
< div>
< label for = "name" > Ваше имя</ label>
< input type= "text" name= "name" id= "name" />
< label for = "email" > Ваш Email</ label>
< input type= "text" name= "email" id= "email" />
< label for = "body" > Текс комментария</ label>
< textarea name= "body" id= "body" cols= "20" rows= "5" ></ textarea>
< input type= "hidden" name= "page_id" value= "<?=$pageID ?> " />
< input type= "submit" name= "btn" id= "submit" value= "Отправить" />
</ div>
</ form>
</ div>
<? php
{
$page_id = $_POST [ 'page_id' ] ;
$name = $_POST [ 'name' ] ;
$email = $_POST [ 'email' ] ;
$text = $_POST [ 'body' ] ;
{
echo "Ссылки запрещены!" ;
}
elseif ( ! preg_match ( "|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}+$|i" , $email ) ) {
echo "Адрес электронной почты должен иметь вид yourmail@somehost.ru" ;
}
elseif ( ! $name ||! $email ||! $text )
{
echo "Вы заполнили не все поля!" ;
}
else
{
//добавляешь коммент
$ins = mysql_query ( "INSERT INTO comments(name,url,email,body,pageid) VALUES ('$name ','$url ','$email ','$body ','$page_id ')" ) ; if ( ! $ins )
{
echo "Произошла ошибка при обновлении данных: " . mysql_error ( ) ; }
else
{
echo "Ваш комментарий успешно добавлен" ;
}
}
}
?>
</ div>
< script type= "text/javascript" src= "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></ script>
< script type= "text/javascript" src= "script.js" ></ script>
</ body>
</ html>
(Добавление)
ну а если как у тебя то ничем не могу помочь, сорри
исправил здесь(Отредактировано автором: 07 Мая, 2012 - 14:37:52)
gigs
Отправлено: 07 Мая, 2012 - 14:33:18
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012
Откуда: Киев
Помог: 0 раз(а)
на 101 строке дримвивер находит ошибку
(Отредактировано автором: 07 Мая, 2012 - 14:33:45)
Muxa
Отправлено: 07 Мая, 2012 - 14:37:16
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012
Откуда: Россия, Тверь
Помог: 5 раз(а)
gigs пишет: на 101 строке дримвивер находит ошибку
перед закрытием php кода я пропустил одну фигурную скобку
PHP:
скопировать код в буфер обмена
else
{
//добавляешь коммент
$ins = mysql_query ( "INSERT INTO comments(name,url,email,body,pageid) VALUES ('$name ','$url ','$email ','$body ','$page_id ')" ) ; if ( ! $ins )
{
echo "Произошла ошибка при обновлении данных: " . mysql_error ( ) ; }
else
{
echo "Ваш комментарий успешно добавлен" ;
}
}
}
gigs
Отправлено: 07 Мая, 2012 - 14:41:39
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012
Откуда: Киев
Помог: 0 раз(а)
спасибо, но типерь выдает Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\mysite\demo\index.php on line 19 что делать ?
(Отредактировано автором: 07 Мая, 2012 - 14:42:06)
Muxa
Отправлено: 07 Мая, 2012 - 14:51:31
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012
Откуда: Россия, Тверь
Помог: 5 раз(а)
gigs пишет: спасибо, но типерь выдает Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\mysite\demo\index.php on line 19 что делать ?
попробуйте перезаписать запрос
и вообще, стоит проверить саму переменную перед запросом я думаю (Отредактировано автором: 07 Мая, 2012 - 14:52:35)
Muxa
Отправлено: 07 Мая, 2012 - 15:29:43
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Март 2012
Откуда: Россия, Тверь
Помог: 5 раз(а)
gigs пишет: ладно спасибо вам за помощь, скажите пожалуйста откуда вы все это знаете вы что работаете програмистом ?
и это тоже
хотя вообще просто с этим сталкивался когда то
(Добавление)
если будете изучать Php по любому столкнетесь с ошибками.. а когда поймете в чем дело - сможете и объяснить, все так учатся, имхо
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB