👨🏻💻 Не могу подключиться к базам данных
Я новичок в php, но очень хочу обучится. Создала обычную форму, но не могу подключиться к базам данных. При нажатии на кнопку, происходит подключение к файлу php, но в браузере ничего не отображается. Не могу найти ошибку.
файлы: index.php:
register.php:
db.php:
может быть что то необходимо подключить, потому что делаю с 0.
PHP задачи с собеседований
Я новичок в php, но очень хочу обучится. Создала обычную форму, но не могу подключиться к базам данных. При нажатии на кнопку, происходит подключение к файлу php, но в браузере ничего не отображается. Не могу найти ошибку.
файлы: index.php:
<!DOCTYPE html>
<html xml:lang="ru" lang="ru">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE-edge">
<meta name="viewport" content="width-device-width? initial- scale-1.0">
<title>CSS</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<header>
<section>
<form action="/php/register.php" method="post">
<label for="login">Логин</label><br>
<input type="txt" name="login" id="login"><br><br>
<label for="password">Пароль</label><br>
<input type="txt" name="password" id="password"><br><br>
<label for="email">E-mail</label><br>
<input type="txt" name="email" id="email"><br><br>
<button class="button-a">Зарегистрироваться</button>
</form>
</section>
</div>
</header>
</body>
</html>
register.php:
<?php
| require_once('db.php');
$login = $_POST['login'];
$password = $_POST['password'];
$email = $_POST['email'];
?>
db.php:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$bdname = "users";
$conn = mysqli_connect($servername, $username, $password, $bdname);
if (!$conn){
due("Сonnection file". myesquel_connect_error());
} elso {
echo "Успех";
}
?>
может быть что то необходимо подключить, потому что делаю с 0.
PHP задачи с собеседований
Как внутри <?if (!isset($_COOKIE[сюда])){?> вставить php echo
Подскажите, как внутри <?if (!isset($_COOKIE[сюда надо вставить])){?> вставить вот такой код: <?php echo $this->href_to('karma_vote', $profile['id']); ?> Такая конструкция нужна для того, чтобы в $_COOKIE[] на каждой странце был уникальный код, который в другом месте этой страницы выводится с помощью <?php echo $this->href_to('karma_vote', $profile['id']); ?>. Если вставлять как есть - страница не открывается, ошибка 500. Наверное, решение на уровне азов PHP, но я как раз решил постигать их опытным путем и пока не могу сам найти рабочий способ.
PHP задачи с собеседований
Подскажите, как внутри <?if (!isset($_COOKIE[сюда надо вставить])){?> вставить вот такой код: <?php echo $this->href_to('karma_vote', $profile['id']); ?> Такая конструкция нужна для того, чтобы в $_COOKIE[] на каждой странце был уникальный код, который в другом месте этой страницы выводится с помощью <?php echo $this->href_to('karma_vote', $profile['id']); ?>. Если вставлять как есть - страница не открывается, ошибка 500. Наверное, решение на уровне азов PHP, но я как раз решил постигать их опытным путем и пока не могу сам найти рабочий способ.
PHP задачи с собеседований
Как можно редактировать или удалять сообщения без указания их id на странице?
Есть чат на чистом PHP и Js. У каждого сообщения в атрибутах указан id сообщения из бд. По нему я редактирую или удаляю сообщения. На сервер отправляется id сообщения. На сервере убеждаюсь, что это владелец сообщения, и что-то с ним делаю. Как можно это сделать без указания id сообщения на странице?
PHP задачи с собеседований
Есть чат на чистом PHP и Js. У каждого сообщения в атрибутах указан id сообщения из бд. По нему я редактирую или удаляю сообщения. На сервер отправляется id сообщения. На сервере убеждаюсь, что это владелец сообщения, и что-то с ним делаю. Как можно это сделать без указания id сообщения на странице?
PHP задачи с собеседований
Не могу сделать два запроса одновременно в MySQL через php
Вот код
Наверное не срабатывает эта строка
Не могу создать таблицу linkName и вторым действием записать значение $nameLink. Что тут не так?
PHP задачи с собеседований
Вот код
if(isset($_POST['name'])) {
$nameLink = $_POST['name'];
}
$path = $_SERVER['DOCUMENT_ROOT'];
include_once $path . '/wp-config.php';
include_once $path . '/wp-load.php';
include_once $path . '/wp-includes/wp-db.php';
include_once $path . '/wp-includes/pluggable.php';
global $wpdb;
$serv = $wpdb->dbhost;
$user = $wpdb->dbuser;
$pass = $wpdb->dbpassword;
$name = $wpdb->dbname;
$conn = new mysqli($serv, $user, $pass, $name);
$sql = "CREATE TABLE linkName (link VARCHAR(30) NOT NULL)";
$sql .= "INSERT INTO linkName (link) VALUES (".$nameLink.")";
mysqli_close($conn);
Наверное не срабатывает эта строка
$sql .= "INSERT INTO linkName (link) VALUES (".$nameLink.")";
Не могу создать таблицу linkName и вторым действием записать значение $nameLink. Что тут не так?
PHP задачи с собеседований
Не работает библиотека phpWord
Нужно конвертировать файлы на php из формата docx в формат txt. Решил воспользоваться библиотекой phpWord. Написал я следующий код для конвертации:
Как я подозреваю проблема с самой библиотекой потому что после использования скрипт выдает следующую ошибку:
Не имею честно говоря и малейшего понимания как решить эту проблему, уже долгое время.
PHP задачи с собеседований
Нужно конвертировать файлы на php из формата docx в формат txt. Решил воспользоваться библиотекой phpWord. Написал я следующий код для конвертации:
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpWord\IOFactory;
$inputFile = $_FILES['filename']['tmp_name'];
$outputFile = 'D:\localhost\txt\meow.txt';
function convertDocxToTxt($docxFilePath, $txtFilePath) {
$phpWord = IOFactory::load($docxFilePath);
$txtContent = $phpWord->getFullText();
file_put_contents($txtFilePath, $txtContent);
}
if(move_uploaded_file($_FILES['filename']['tmp_name'], 'uploads/'.$_FILES['filename']['name'])){
echo "Файл скопирован на сервер";
echo "<br>";
echo "<br>";
echo $_FILES['filename']['tmp_name'];
convertDocxToTxt($inputFile, $outputFile);
echo "конвертация завершена";
} else {
echo "Повторите загрузку файла на сервер";
}
?>
Как я подозреваю проблема с самой библиотекой потому что после использования скрипт выдает следующую ошибку:
Fatal error: Uncaught Exception: Cannot find archive file. in D:\localhost\vendor\phpoffice\phpword\src\PhpWord\Shared\XMLReader.php:60 Stack trace: #0 D:\localhost\vendor\phpoffice\phpword\src\PhpWord\Reader\Word2007.php(150): PhpOffice\PhpWord\Shared\XMLReader->getDomFromZip('D:\\localhost\\up...', '_rels/.rels') #1 D:\localhost\vendor\phpoffice\phpword\src\PhpWord\Reader\Word2007.php(114): PhpOffice\PhpWord\Reader\Word2007->getRels('D:\\localhost\\up...', '_rels/.rels') #2 D:\localhost\vendor\phpoffice\phpword\src\PhpWord\Reader\Word2007.php(44): PhpOffice\PhpWord\Reader\Word2007->readRelationships('D:\\localhost\\up...') #3 D:\localhost\vendor\phpoffice\phpword\src\PhpWord\IOFactory.php(89): PhpOffice\PhpWord\Reader\Word2007->load('D:\\localhost\\up...') #4 D:\localhost\file2.php(10): PhpOffice\PhpWord\IOFactory::load('D:\\localhost\\up...') #5 D:\localhost\file2.php(20): convertDocxToTxt('D:\\localhost\\up...', 'D:\\localhost\\tx...') #6 {main} thrown in D:\localhost\vendor\phpoffice\phpword\src\PhpWord\Shared\XMLReader.php on line 60
Не имею честно говоря и малейшего понимания как решить эту проблему, уже долгое время.
PHP задачи с собеседований
Как подключиться из websocket к базе данных?
у меня есть код для работы с websocket, я пытаюсь записать сообщение пользователя в базу данных, но, когда пытаюсь подключиться к базе данных ($this->connectDB = new DB();), выдает ошибку подключения к websocket, сам websocket я запускаю, как параллельные процесс:
Код создания объекта подключение к БД:
код подключения к БД:
Не знаю, насколько понятен мой вопрос, но что-то тяжело сообразить, как правильно его сформулировать...
PHP задачи с собеседований
у меня есть код для работы с websocket, я пытаюсь записать сообщение пользователя в базу данных, но, когда пытаюсь подключиться к базе данных ($this->connectDB = new DB();), выдает ошибку подключения к websocket, сам websocket я запускаю, как параллельные процесс:
<?php
ini_set('display_errors', 1);
exec("php chat-server.php param=value > /dev/null 2>/dev/null &");
require_once 'app/Bootstrap.php';
?>
Код создания объекта подключение к БД:
<?php
namespace App\core;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use App\data\DB;
class Chat implements MessageComponentInterface
{
protected $clients;
public $connectDB;
public function __construct() {
$this->clients = new \SplObjectStorage;
$this->connectDB = new DB();
}
код подключения к БД:
<?php
namespace App\data;
use RedBeanPHP\R;
use RedBeanPHP\RedException;
try{
R::setup('sqlite:' . DATA . 'db.sqlite');
if(!R::testConnection()) {
throw new RedException('No connection');
}
}
catch(RedException $e){
exit(var_dump($e));
}
class DB {
Не знаю, насколько понятен мой вопрос, но что-то тяжело сообразить, как правильно его сформулировать...
PHP задачи с собеседований
Не могу обновить DateTime в MySQL с помощью PHP
При попытке обновить поле с форматом DateTime пишет:
А вот какое значение я пытаюсь передать:
2024-01-12T16:41
Вот код:
PHP задачи с собеседований
При попытке обновить поле с форматом DateTime пишет:
Fatal error: Uncaught Error: Object of class DateTime could not be converted to string in /var/www/MiniCRM/app/models/todo/tasks/ToDoTasksModel.php:137 Stack trace: #0 /var/www/MiniCRM/app/models/todo/tasks/ToDoTasksModel.php(137): PDOStatement->execute() #1 /var/www/MiniCRM/app/controllers/todo/tasks/ToDoTasksController.php(80): app\models\todo\tasks\ToDoTasksModel->edit() #2 [internal function]: app\controllers\todo\tasks\ToDoTasksController->editReg() #3 /var/www/MiniCRM/app/Router.php(59): call_user_func_array() #4 /var/www/MiniCRM/index.php(29): app\Router->run() #5 {main} thrown in /var/www/MiniCRM/app/models/todo/tasks/ToDoTasksModel.php on line 137
А вот какое значение я пытаюсь передать:
2024-01-12T16:41
Вот код:
$finish_date_value = $data['finish_date'];
$reminded_at_option = $data['reminded_at'];
$finish_date = new \DateTime($finish_date_value);
switch ($reminded_at_option) {
case '30_minutes':
$interval = new \DateInterval('PT30M');
break;
case '1_hour':
$interval = new \DateInterval('PT1H');
break;
case '2_hours':
$interval = new \DateInterval('PT2H');
break;
case '12_hours':
$interval = new \DateInterval('PT12H');
break;
case '24_hours':
$interval = new \DateInterval('P1D');
break;
case '7_days':
$interval = new \DateInterval('P7D');
break;
}
$prereminded_at = $finish_date->sub($interval);
$data['reminded_at'] = $prereminded_at->format('Y-m-d\TH:i');
$reminded_at = $data['reminded_at'];
$st = $this->db->prepare("UPDATE `todo_tasks` SET title = ?, description = ?, category = ?, status = ?, priority = ?, finish_date = ?, reminded_at = ? WHERE id = ?");
$st->execute([$title, $description, $category, $status, $priority, $finish_date, $reminded_at, $id]);
PHP задачи с собеседований
Как вывести данные из MySQL при помощи PHP?
Есть таблица news, в ней 5 полей id, text, title, author, date. Необходимо вывести на странице эти данные. У меня никак не получается это сделать: все время какие-либо ошибки. Пробовал использовать функцию mysql_fetch_assoc, но что-то, как ее применять, я не очень понял постоянно - одна и та же ошибка expects parameter 1 to be resource, boolean. Я, конечно, понимаю, что это значит, но вот как исправить - нет...
PHP задачи с собеседований
Есть таблица news, в ней 5 полей id, text, title, author, date. Необходимо вывести на странице эти данные. У меня никак не получается это сделать: все время какие-либо ошибки. Пробовал использовать функцию mysql_fetch_assoc, но что-то, как ее применять, я не очень понял постоянно - одна и та же ошибка expects parameter 1 to be resource, boolean. Я, конечно, понимаю, что это значит, но вот как исправить - нет...
$news = mysql_query("SELECT * FROM `news` ");
while ($row = mysql_fetch_assoc($news, MYSQL_ASSOC)) {
foreach ($row as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
}
PHP задачи с собеседований
Передача переменных в подключаемый файл
Доброго всем времени суток господа
Собственно не могу передать get переменную в подключаемый файл. Айфреймы в моем случае не катят. В гугле пишут, что 'должно работать'. Но в реальности ошибка
короче как бы он пытается найти не файл с переменной, а файл с таким адресом
Подскажите, как прописать GET параметры в подключаемый файл.
PHP задачи с собеседований
Доброго всем времени суток господа
include('./block.php'); // работает
include('./block.php?alfa=1&beta=2'); // не работает
Собственно не могу передать get переменную в подключаемый файл. Айфреймы в моем случае не катят. В гугле пишут, что 'должно работать'. Но в реальности ошибка
warning: include(./block.php?alfa=1&beta=2)
failed to open stream
короче как бы он пытается найти не файл с переменной, а файл с таким адресом
Подскажите, как прописать GET параметры в подключаемый файл.
PHP задачи с собеседований
Не поворачиваются картинки на мобильном устройстве с использованием php
Есть сайт с картинками, которые подгружаются из базы данных и отображаются на сайте в ряд. Необходимо реализовать функционал поворота данных картинок. Реализовал поворот при помощи данного кода:
Проблема в том, что на компьютере данный код отлично отрабатывает и картинки поворачиваются без проблем, а вот на мобильном устройстве картинки вообще не поворачиваются. Подскажите в чём может быть причина?
PHP задачи с собеседований
Есть сайт с картинками, которые подгружаются из базы данных и отображаются на сайте в ряд. Необходимо реализовать функционал поворота данных картинок. Реализовал поворот при помощи данного кода:
$image = imagecreatefromjpeg($path);
$rotate = imagerotate($image, $degree, 0);
imagejpeg($rotate, $path);
imagedestroy($image);
Проблема в том, что на компьютере данный код отлично отрабатывает и картинки поворачиваются без проблем, а вот на мобильном устройстве картинки вообще не поворачиваются. Подскажите в чём может быть причина?
PHP задачи с собеседований
xdebug не может соединиться с VSCode
Нужно настроить коннект xdebug с VScode. В xdebug конфиги такие (он не в docker):
в VSCode в launch.json
В логах ошибка - что не удалось соединится с клиентом, не могу понять почему, если они на одном хосте, что клиент что xdebug!
ERR: Could not connect to debugging client. Tried: 127.0.0.1:9000 (fallback through xdebug.client_host/xdebug.client_port).
PHP задачи с собеседований
Нужно настроить коннект xdebug с VScode. В xdebug конфиги такие (он не в docker):
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.start_with_request = yes
xdebug.discover_client_host = true
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9000
xdebug.idekey = vsc
xdebug.mode = debug
xdebug.trace_output_name = trace.%s.%u
xdebug.profiler_output_name = cachegrind.out.%R.%u
xdebug.output_dir = /tmp
xdebug.log = /var/log/xdebug.log
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 1
xdebug.output_dir = /var/www/.xdebug
xdebug.cli_color=1
в VSCode в launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "remote XDebug",
"type": "php",
"request": "launch",
"hostname": "127.0.0.1",
"port": 9000,
"pathMappings": {
"/var/www/crm.itscript.local": "${workspaceRoot}"
}
},
]
}
В логах ошибка - что не удалось соединится с клиентом, не могу понять почему, если они на одном хосте, что клиент что xdebug!
ERR: Could not connect to debugging client. Tried: 127.0.0.1:9000 (fallback through xdebug.client_host/xdebug.client_port).
PHP задачи с собеседований
Php спит перед загрузкой сайта
У меня есть код, вот его кусок:
И дело в том, что сайт загружается как раз 10 секунд, и к тому времени файл уже удаляется, как сделать так, чтобы sleep работал вовремя, а не перед загрузкой сайта? Заранее спасибо.
PHP задачи с собеседований
У меня есть код, вот его кусок:
echo "файл загружен успешно: $filename";
sleep(10);
unlink($filename);
И дело в том, что сайт загружается как раз 10 секунд, и к тому времени файл уже удаляется, как сделать так, чтобы sleep работал вовремя, а не перед загрузкой сайта? Заранее спасибо.
PHP задачи с собеседований
❓Вопрос от пользователя
Как изменить url для сброса пароля на laravel
При использовании базовой нотификации отправляется письмо для сброса со следующей ссылкой:
При использовании же кастомной нотификации, которую я создаю в папке app\Notifications, url преобразуется уже в динамический вид:
Вот как сделать так, чтобы при использовании моей нотификации, url был таким же,как и при использовании базовой нотификации.
Код ResetPassword (сама нотификация):
PHP задачи с собеседований
Как изменить url для сброса пароля на laravel
При использовании базовой нотификации отправляется письмо для сброса со следующей ссылкой:
http://127.0.0.1:8000/password/change?token=236359ccf050d6616c4e0405c29df7e9eeee11228e61899836afa5a2db347b876c92&email=admin%40gmail.com
При использовании же кастомной нотификации, которую я создаю в папке app\Notifications, url преобразуется уже в динамический вид:
http://127.0.0.1:8000/password/change/f9f100222f214f2a65fbb1ba46b516bfcc5ee2egca56111917d922cdc5758312.
Вот как сделать так, чтобы при использовании моей нотификации, url был таким же,как и при использовании базовой нотификации.
Код ResetPassword (сама нотификация):
<?php
namespace App\Notifications;
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;
class ResetPassword extends Notification
{
public $token;
public function __construct($token)
{
$this->token = $token;
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Сброс пароля')
->line('Вы получили это электронное письмо, потому что мы получили запрос на сброс пароля для вашей учетной записи.')
->action('Сбросить пароль', url('password/change', $this->token))
->line('Если вы не запрашивали сброс пароля, то, пожалуйста, проигнорируйте данное сообщение.')
->salutation('С уважением, Laravel');
}
}
PHP задачи с собеседований
❓Вопрос от пользователя
Всем привет, я новичок в докере и в laravel, хотел протестировать laravel octane, через sail,
у самого window использовал wsl2 ubuntu, создал проект установил sail, запустил докер контейнеры, позже установил laravel octane, но при запуске сервера каждый раз пишет "Server is already running" - при том что сам не запускал, переход на 127.0.0.0:8000 не даёт результатов, можете подсказать в чем дело?
пробывал и перезапускать docker, и пересоздавать проект, и ставить по многу раз octane.
PHP задачи с собеседований
Ошибка запуска laravel octane через sailВсем привет, я новичок в докере и в laravel, хотел протестировать laravel octane, через sail,
у самого window использовал wsl2 ubuntu, создал проект установил sail, запустил докер контейнеры, позже установил laravel octane, но при запуске сервера каждый раз пишет "Server is already running" - при том что сам не запускал, переход на 127.0.0.0:8000 не даёт результатов, можете подсказать в чем дело?
пробывал и перезапускать docker, и пересоздавать проект, и ставить по многу раз octane.
PHP задачи с собеседований