PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (13): В начало « ... 5 6 7 8 9 [10] 11 12 13 »
Найдено сообщений: 192
imedia
Отправлено: 05 Ноября, 2015 - 21:59:51 • Тема: как с помощью роутера без header перейти к экшену и передать параметр • Форум: Вопросы новичков
Ответов: 0 Просмотров: 75
Есть роутер
PHP:
скопировать код в буфер обмена
$router = new Router( GET_HTTP_HOST( ) ) ;
$router -> add ( 'home' , '/' , 'AppController:homeAction' ) ;
$route = new MatchedRoute( 'AppController:userAction' ) ;
list ( $class , $action ) = explode ( ':' , $route -> getController ( ) , 2
) ;
Вот эта строка
переводит к экшену определенного контроллера
Что здесь лишнее для того чтобы перейти к экшену и как передать 2 параметра не используя header и чего не хватает?
И можно ли не повторять в контроллере этот роутер а поднять его из индекса?
imedia
Отправлено: 05 Ноября, 2015 - 17:56:08 • Тема: Почему может не переходить по header • Форум: Вопросы новичков
Ответов: 1 Просмотров: 122
Выводит UserId а по хэдеру не переходит
PHP:
скопировать код в буфер обмена
function login( ) {
$username = $_POST [ 'username' ] ;
$password = $_POST [ 'password' ] ;
$passwordx = sha1 ( $password ) ; /* $query = $this->db->query("SELECT * FROM users WHERE username='$username' AND password='$passwordx'"); */
$name = array ( ':first' => $username , ':second' => $passwordx ) ; $query [ ] = parent:: get_obj_and ( '*' , 'users' , 'username' , 'password' , $name ) ;
$userID = $query [ 0 ] [ 'id' ] ;
$username = $query [ 0 ] [ 'username' ] ;
$data [ 'full_name' ] = $query [ 0 ] [ 'full_name' ] ;
$data [ 'pass' ] = $password ;
$data [ 'email' ] = $query [ 0 ] [ 'email' ] ;
$_SESSION [ 'useID' ] = $userID ;
$data [ 'title' ] = "User Profile" ;
$data [ 'user_name' ] = $username ;
print ( $userID ) ;
header ( 'http://leraloveyou.net/user/' . $userID ) ;
}
else {
$query_name = $this -> db -> query ( "SELECT * FROM users WHERE username='$username '" ) ;
if ( $query_name -> num_rows ( ) !== 1) {
$data [ 'error' ] [ 'username' ] = 'Login is incorrect' ;
}
$query_pass = $this -> db -> query ( "SELECT * FROM users WHERE password='$password '" ) ;
if ( $query_pass -> num_rows ( ) !== 1) {
$data [ 'error' ] [ 'pass' ] = 'Password is incorrect' ;
}
$data [ 'error' ] [ 'text' ] = 'The username or password not correct. Please, try again' ;
$data [ 'title' ] = "Index" ;
$path = '/tests/forge/' ;
$path_to_page = '/tests/forge/action' ;
$path_to_layout = '/tests/forge/layouts' ;
$this -> load -> view ( $path_to_layout . '/login_error_view' , $data ) ;
$this -> display_lib -> template_tests ( $path_to_page , $data , $path ) ;
}
}
imedia
Отправлено: 04 Ноября, 2015 - 22:37:30 • Тема: Ajax json не находит файл лежащий в корне • Форум: Вопросы новичков
Ответов: 20 Просмотров: 1038
SAD пишет: возможно, это должен быть не index метод, а другой
то же самое почему то к методу достучатся не могу, есть соображения?, я не даром htaccess привел в начале
imedia
Отправлено: 04 Ноября, 2015 - 21:39:14 • Тема: Ajax json не находит файл лежащий в корне • Форум: Вопросы новичков
Ответов: 20 Просмотров: 1038
SAD
да, прозевал, но теперь вопрос в другом
Могу ли я обратится к класу php аяксом
к примеру я хочу сделать так
CODE (
javascript ):
скопировать код в буфер обмена
var dat= 1 ;
$.ajax ( {
type : "POST" ,
dataType: "json" ,
url: "/scripts/get_lang.php/" ,
data: dat,
success: function ( data) {
alert ( data)
}
} )
get_lang.php
Так ответ 200 но объекта нет уже в success
imedia
Отправлено: 04 Ноября, 2015 - 19:34:57 • Тема: Ajax json не находит файл лежащий в корне • Форум: Вопросы новичков
Ответов: 20 Просмотров: 1038
Viper пишет: imedia
1. dataType: "json" означает что ожидается json-формат данных, но
2.
вернет вам строку, а не объект/массив json.
$.ajax в результате вам ничего не возвращает, т.к. для обработки ошибок вы не указали ни одного обработчика.
PS! Читайте матчасть, а не пишите отсебятину. И научитесь пользоваться консолью браузера!
да но даже если массив в json я получаю ту же ошибку
imedia
Отправлено: 04 Ноября, 2015 - 14:27:09 • Тема: Ajax json не находит файл лежащий в корне • Форум: Вопросы новичков
Ответов: 20 Просмотров: 1038
Добрый день у меня аякс не находит пхп файл думаю так, дело в том что у меня роутер установлен и все через индекс фурычит, может надо что то в htaccess менять
CODE (
javascript ):
скопировать код в буфер обмена
$.ajax ( {
type : "POST" ,
dataType: "json" ,
url: "/scripts/get_lang.php" ,
data: data,
success: function ( data) {
alert ( data)
}
} )
Файл в папке лежит
.htaccess
PHP:
скопировать код в буфер обмена
RewriteEngine on
RewriteCond % { REQUEST_FILENAME} !- d
RewriteCond % { REQUEST_FILENAME} !- f
RewriteRule ^ index. php [ L]
php_value display_errors 1
php_value display_startup_errors 1
imedia
Отправлено: 03 Ноября, 2015 - 12:53:39 • Тема: Возникает ошибка при выполнении update PDO • Форум: Вопросы новичков
Ответов: 2 Просмотров: 154
Возникает следующая ошибка
SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters#0 /var/www/clients/client1/web28/web/protected/Main.php(72): PDOStatement->execute(Array) #1 /var/www/clients/client1/web28/web/protected/models/User.php(59): Main->update_obj('users', 'activation_code', Array, Array, '0096deb29bf3199...') #2 /var/www/clients/client1/web28/web/protected/UsersController.php(82): User->confirm_registration('0096deb29bf3199...') #3 [internal function]: UsersController->activate('0096deb29bf3199...') #4 /var/www/clients/client1/web28/web/index.php(26): call_user_func_array(Array, Array) #5 {main}
Что здесь не так, вродебы все по мануалу
PHP:
скопировать код в буфер обмена
$table_name = 'users' ;
$obj_id = 'activation_code' ;
'activated' => 1
) ;
foreach ( $data as $key => $val ) {
$fields [ ] = $key ;
}
$obj = $activation_code ;
$result = parent:: update_obj ( $table_name , $obj_id , $fields , $data , $obj ) ;
function pdoSet
( $fields , & $values , $source = array ( ) ) { $set = '' ;
if ( ! $source ) $source = & $_POST ;
foreach ( $fields as $field ) {
if ( isset ( $source [ $field ] ) ) { $set .= "`" . str_replace ( "`" , "``" , $field ) . "`" . "=:$field , " ; $values [ $field ] = $source [ $field ] ;
}
}
}
function update_obj( $table_name , $obj_id , $fields , $data , $obj ) {
print ( 'update_obj' ) ;
$sql = "UPDATE " . $table_name . " SET " . $this -> pdoSet ( $fields , $values , $data ) . " WHERE " . $obj_id . " = ?" ;
$stm = $this -> conn ( ) -> prepare ( $sql ) ;
$stm -> execute ( array ( $obj ) ) ; }
imedia
Отправлено: 01 Ноября, 2015 - 19:31:39 • Тема: PDO не записывается в базу инфа • Форум: Вопросы новичков
Ответов: 2 Просмотров: 294
Почему не записывается в базу информация
? что не так вроде бы все по мануалу
PHP:
скопировать код в буфер обмена
function insert( $table_name , $fields , $data ) {
'username' => $username ,
'password' => sha1 ( $password ) , 'full_name' => $full_name ,
'email' => $email ,
'activation_code' => $activation_code ,
'created_at' => $created_date ,
'qnt_pass' => iconv_strlen( $password , 'UTF-8' ) ,
) ;
foreach ( $data as $key => $val ) {
$fields [ ] = $key ;
}
$sql = "INSERT INTO " . $table_name . " SET " . parent:: pdoSet ( $fields , $values , $data ) ;
$stm = parent:: conn ( ) -> prepare ( $sql ) ;
$stm -> execute ( $values ) ;
}
расширеный Main.php
PHP:
скопировать код в буфер обмена
function conn( ) { // подключение к БД
$dsn = "mysql:host=lop.com;dbname=c1lop" ;
$user = 'c1lop' ;
$pass = 'sun' ;
PDO:: ATTR_ERRMODE => PDO:: ERRMODE_EXCEPTION ,
PDO:: ATTR_DEFAULT_FETCH_MODE => PDO:: FETCH_ASSOC
) ;
$pdo = new PDO( $dsn , $user , $pass , $opt ) ;
}
function pdoSet
( $fields , & $values , $source = array ( ) ) { $set = '' ;
if ( ! $source ) $source = & $_POST ;
foreach ( $fields as $field ) {
if ( isset ( $source [ $field ] ) ) { $set .= "`" . str_replace ( "`" , "``" , $field ) . "`" . "=:$field , " ; $values [ $field ] = $source [ $field ] ;
}
}
}
Fatal error: Call to a member function prepare() on null in /var/www/clients/client1/web28/w eb/protected/models/User.php on line 16ь
(Добавление)
http://phpfaq[dot]ru/pdo#insert
Страниц (13): В начало « ... 5 6 7 8 9 [10] 11 12 13 »
Powered by ExBB FM 1.0 RC1. InvisionExBB