Увожаемы дамы и господа помогите разобраться - почему при записи в БД в начале номера телефона пропадает +.. в программе проверил телефон передается в php с + ... сам же код рабочий PHP: <?php $response = array(); require 'rb/rb-mysql.php'; // загрузка redbeanphp require 'db_connect.php';// загрузка параметров подключения require 'passwor_autorisation.php';//загрузка паролей авторизации if ($ssdatain == $_POST['passwor']){//проверка пороля авторизации $data = $_POST; //если данные заполнены if (isset($data['login'])&& isset($data['pass']) && isset($data['sservice'])&& isset($data['idapp'])&& isset($data['firstnameapp']) && isset($data['lastnameapp'])&& isset($data['telephonapp']) && isset($data['dateapp']) && isset($data['timeapp']) && isset($data['descriptionapp'])){ $errors = array(); // поиск ID сервиса $iduser = R::findOne('user', 'login= ? AND password = ? AND idservice = ? ' , array($data['login'],$data['pass'],$data['sservice'])); // если такой пользователь сервиса есть if ( $iduser ){ $idsr=R::findOne('user', 'idservice = ?', array($data['sservice']));//присваеваем поле таблицы для создания связи с ним $sidappin = $data['sservice'];//присваиваем id сервиса $sidapp = $data['idapp'];//присваиваем id клиента $sfirstnameapp = $data['firstnameapp'];//присваиваем имя клиента $slastnameapp = $data['lastnameapp'];//присваиваем фамилию клиента $stelephonapp = $data['telephonapp'];//присваиваем телефон клиента $sdateapp = $data['dateapp'];//присваиваем дату ожидания клиента $stimeapp = $data['timeapp'];//присваиваем время ожидания клиента $sdescriptionapp = $data['descriptionapp'];//присваиваем описание проблемы $iduserin=R::exec("SELECT id FROM user WHERE idservice='$sidappin'");//получаем id сервиса /* выполняем поиск идинаковых записей.. Это нужно для того, если в предыдущий раз запись данных бала корректной но ответ небыл получен.. */ $idone = R::findOne('client', 'idapp= ? AND firstnameapp = ? AND lastnameapp = ? AND user_id = ?' ,array($sidapp,$sfirstnameapp, $slastnameapp,$iduserin)); //если такая запись уже есть if($idone) { //то вернуть верный ответ. так же здесь можно обновить запись $response["success"] = $sidapp; echo json_encode($response); }else {// иначе создать запись /* если в базе данных нет таких таблиц, полей или связей они будут созданы автомотически внимательно следите за правельностью написания названий */ $client = R::Dispense('client');//если нет такой таблицы, то создать.. $client->idapp = $sidapp; $client->firstnameapp = $sfirstnameapp; $client->lastnameapp = $slastnameapp; $client->telephonapp = $stelephonapp; $client->dateapp = $sdateapp; $client->timeapp = $stimeapp; $client->workapp = ''; $client->statusapp = ''; $client->updateapp = '0'; $client->descriptionapp = $sdescriptionapp; $client->user = $idsr;//создаем связь с таблицей user поле idservice if ( $id = R::store( $client)){ // если новая запись в базе данных создана // возвращем ответ $response["success"] = $sidapp; echo json_encode($response); }else // если запись не создана { $response["success"] = "-1"; echo json_encode($response); } } }else //если такого пользователя нет { $response["success"] = "-2"; echo json_encode($response); } }else // если данные не получены { $response["success"] = "-3"; echo json_encode($response); } }else // если парольстраницы не совпал { $response["success"] =" 0"; echo json_encode($response); } ?>
@Владимирvvp, как выше написали, тип поля проверь. --- Добавлено --- А вообще если все значения приводить к формату +код_страны, то + избыточный.
пробовал varchar и техт.. просмаривал через showmessage то что отправляю в общем проверил в других полях... то же самое происходит, без разницы где находится + он просто изчезает все остальные знаки присутствуют... только + пропадает
Вопрос прочти. --- Добавлено --- я не знаю что за анонимная функция, которая находится вне документации php
PHP: <?php error_reporting ( E_ALL ); use Aero\Supports\Lerma; require 'autoload.php'; if ( filter_input ( INPUT_SERVER, 'REQUEST_METHOD' ) == 'POST' ) { $t = filter_input ( INPUT_POST, 'tel', FILTER_DEFAULT ); if ( !empty ( $t ) ) { Lerma :: prepare( 'INSERT INTO `test_77465`( `tel` ) VALUES ( ? )', [ $t ] ); } } echo Lerma :: query ( 'SELECT tel FROM test_77465 ORDER BY id DESC LIMIT 1' ) -> fetch( Lerma :: FETCH_COLUMN ); ?> <form action = "/77465/" method = "post"> <input type = "tel" name = "tel"> <input type = "submit"> </form> У меня все нормально - есть +
о общем сделал отдельную страницу для теста , я отправил запрос и получил ответ c тогоже $_POST['telephonapp']; в который отправлял там уже нет плюса.. странно а программа показывает, что передает запрос с плюсом .. головоломка и где теперь виновного искать (((...