За последние 24 часа нас посетили 17590 программистов и 1314 роботов. Сейчас ищут 1724 программиста ...

Изменение данных через форму

Тема в разделе "PHP для новичков", создана пользователем nammidd, 1 июн 2016.

  1. nammidd

    nammidd Новичок

    С нами с:
    1 июн 2016
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте, есть форма отправка данных
    Код (Text):
    1. if (isset($_POST["submit"])) {
    2.     $adress = $_POST["adress"];
    3.     $login = $_POST["login"];
    4.     $password = $_POST["password"];
    5.     $basename = $_POST["basename"];
    6. } {};
    7.  
    8. <form action="" method="post">
    9.     <label>Адрес хостинга</label>
    10.     <input name="adress" type="text"><br>
    11.     <label>Логин</label>
    12.     <input name="login" type="text"><br>
    13.     <label>Пароль</label>
    14.     <input name="password" type="text"><br>
    15.     <label>База</label>
    16.     <input name="basename" type="text"><br>
    17.     <input name="submit" type="submit"><br>
    18. </form>
    Как полученные данные вставить и заменить в файле подключения к бд connection.php на место вопросов?

    Код (Text):
    1. $adress = ???
    2. $login = ???
    3. $password = ???
    4. $basename = ???
    5.  
    6. $mysqli = new mysqli('$adress', '$login', '$password', '$basename');
    Мне в настройках нужна форма через которую бы менялись данные в файле подключения к базе данных.
     
  2. MaXyC_Web_Studio

    MaXyC_Web_Studio Активный пользователь

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    отдельный файл сделайте и записывайте в него данные с заполненными переменными. в след раз, когда он будет исполняться, он будет уже не просто текст, а "программой"
     
    nammidd нравится это.
  3. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    --- Добавлено ---
    Ответ на твой вопрос кроется в стандарте PSR-4 :D http://www.php-fig.org/psr/psr-4/
    Учись писать сразу правильно!

    Вот раз файл твой
    например
    form.php

    PHP:
    1. <form action="/App/obrabotka.php" method="post" >
    2.     <label> Адрес хостинга </label >
    3.  
    4.         <input name = "adress" type = "text" ><br >
    5.     <label > Логин</label >
    6.  
    7.         <input name = "login" type = "text" ><br >
    8.  
    9.     <label > Пароль</label >
    10.  
    11.         <input name = "password" type = "text" ><br >
    12.  
    13.     <label > База</label >
    14.  
    15.         <input name = "basename" type = "text" ><br >
    16.         <input name = "submit" type = "submit" ><br >
    17.  
    18. </form >
    Дальше создаёшь папку App
    Так и создаёшь два файла ConnectDb.php и Obrabotka.php внутри директории App
    Содержимое ConnectDb.php
    PHP:
    1. <?php
    2.     namespace App;
    3.  
    4.     use App;
    5.     //Вот твой файл подключения к БД
    6.     Class ConnectDB {
    7.         public function __construct ($host, $dbname, $user, $password) {
    8.             $params = new Config\Dbparams();
    9.             $dsn = "mysql:host={$host};dbname={$dbname}";
    10.             $db = new \PDO($dsn, $user, $password);
    11.             return $db;// Ты возвращаешь подключение к бд тут подставляя в дальнейшем свои параметры
    12.         }
    13.     }
    14. ?>
    теперь файл Obrabotka.php
    Дальше содержимое

    PHP:
    1. <?php
    2. Namespace App;
    3.  
    4. use App;
    5. Class Obrabotka {
    6.  
    7.     public static function Obrabotka () {
    8.         if (isset($_POST["submit"])) {
    9.             //Получаешь данные
    10.             $adress = $_POST["adress"];
    11.             $login = $_POST["login"];
    12.             $password = $_POST["password"];
    13.             $basename = $_POST["basename"];
    14.  
    15.             // Здесь и делай запись в базу дальше
    16.             //Точней здесь ты уже подключаешься в базу по своим параметрам  Как я понимаю.
    17.  
    18.                 $db = new \ConnectDB($adress, $basename ,$login, $password);
    19.                 $result = $db->quert(/*НУ И ЗАПРОС К БД!*/);
    20.                 $result = $result->fetch(); // Ну и тут получил ассоциативный массив
    21.                                             // если он тебе нужен конеш, или если ты что-то вносишь в базу то не нужен он тебе.
    22.                                             // А если выносишь то нужен.
    23.  
    24.  
    25.  
    26.         }
    27.     }
    28. }
    Так ну, а теперь чтобы это всё заработало, я выше кинул ссылку на стандарт PSR-4 Вперёд на изучение) Потратишь один день и с экономишь потом кучу времени . Так что вперёд ) А ещё не мешало бы подучить ООП ) И понять что такое единая точка входа, и архитектуру MVC. А ну и загугли про пространство имён ещё) в php.net В мануалах сам по ним учил, вполне доступно... Ну правда я ещё кучу всего перерыл когда пространства изучал и два битых дня изучал PSR-4 :D Как его подключать, сначала сделал свой автозагрузчик классов, но потом решил воспользоваться composer и про него почитай тоже полезный инструмент для разработки.
     
    #3 askanim, 2 июн 2016
    Последнее редактирование: 2 июн 2016
    nammidd нравится это.
  4. nammidd

    nammidd Новичок

    С нами с:
    1 июн 2016
    Сообщения:
    7
    Симпатии:
    0
    askanim


    Конечно спасибо вам большое за попытку мне помочь, я в программировании всего неделю, можете ставить фейспалм, но если честно я даже не пойму зачем это, как это использовать и правильно ли вы меня поняли что я хочу или нет, может быть мы об этом и узнаем, но наверное не раньше чем через год. А пока что по факту второй комментарий мне больше понравился, всё оказалось гораздо проще чем я пытался воссоздать.


    Код (Text):
    1. <?php
    2. if (isset($_POST["submit"])) {
    3.     $adress = $_POST["adress"];
    4.     $login = $_POST["login"];
    5.     $password = $_POST["password"];
    6.     $basename = $_POST["basename"];
    7.  
    8. $text = "<?php
    9. new mysqli('$adress', '$login', '$password', '$basename');
    10. ?>";
    11.  
    12. $handle = fopen('C:\OpenServer\domains\TEST\new.php', "w+");
    13. fwrite($handle,$text);
    14. fclose($handle);
    15. };
    16. ?>
    Разве что для идеала хотелось бы передать вот так,
    Код (Text):
    1. $mysqli = new mysqli('$adress', '$login', '$password', '$basename');
    т.е. $mysqli как текст, но он передаётся как переменная, а соответственно пустая.
     
    #4 nammidd, 2 июн 2016
    Последнее редактирование: 2 июн 2016
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Я тебя прошу, ПРИЗЫВАЮ. Учись сразу качественно писать иначе грозит вот такое.
    https://github.com/LaravelForKettle/bike_001/blob/master/wtf

    Вот посмотри понимаешь ты там что нибудь? ТЫ понимаешь чего хотел достичь сей автор, чудесного кода. Я лично с трудом разобрал смысл. Пиши сразу всё правильно, строй пусть свою, и велоспедную и карявую, но архитектуру, отделяй код html от php.
    --- Добавлено ---
    Загугли всё что я выше написал посмотри это интересно, я изучаю php 3 месяца. И сайтами занимаюсь всего год.
    Перед тем как брасаться в бой. Освой базу, основы. По делай потренеруйся, на лок сервере построй странички. По учись работать с БД. Посмотри что такое MVC первым делом и ед точка входа, дальше посмотри про стандарты PSR и потом почитай про composer. Вот тебе инструкция развития и апгрейда.
     
  6. nammidd

    nammidd Новичок

    С нами с:
    1 июн 2016
    Сообщения:
    7
    Симпатии:
    0
    Ещё раз спасибо за советы, буду изучать всё завтра, просто я в сайтостроении недели 2 а в php и того неделю.
     
  7. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Давай. Будут вопросы обращайся, тут на форуме всегда подсказывают) Так что не стесняйся) Рад помочь начинающему, сам только начал. Ну чуть больше твоего, месяца три на php а до этого просто на html и css, js не много баловался)
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @nammidd всё есть в книгах для начинающих, ты их читай и когда что-то не понятно, то задавай вопрос тут.
    По твоему вопросу, то просто добавь include 'connection.php'; внутрь if в конце.
    Но лучше как тебе советовали выше, сразу делать всё правильно или читать дальше.
     
  9. Natali94

    Natali94 Новичок

    С нами с:
    5 июн 2016
    Сообщения:
    5
    Симпатии:
    0
    Помогите пожалуйста. Пыталась сделать форму для изменения данных. При нажатии кнопки, открывается форма, где должны быть данные и я могу их изменить и при нажатии кнопки Изменить, они сохраняются в табличке и в БД. Не знаю правильно ли объяснила все.
    Выводит ошибку в Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in V:\home\localhost\www\redklienti.php on line 112. Никак не могу разобраться.
    PHP:
    1. <?
    2. mysql_connect("localhost","root","");
    3. mysql_select_db("подаривидео.рф");
    4. $nomer=$_GET['№'];
    5.  
    6.  
    7.  
    8. if (isset($_POST['edit'])){
    9. $fio=$_POST['fio'];
    10. $adres=$_POST['adres'];
    11. $telefon=$_POST['tel'];
    12. $mail=$_POST['mail'];
    13. $query="UPDATE `klient` SET `fio`='$fio',`adres`='$adres',`telefon`='$telefon',`mail`='$mail' WHERE `№`=$nomer";
    14. mysql_query($query);
    15. echo'<script language="JavaScript">  window.location.href = "k.php" </script>';
    16. }
    17. //формируем запрос к таблице с заказами
    18.  
    19.  
    20.  
    21.  
    22. $query="SELECT * FROM `klient` WHERE `№`=$nomer ";
    23. mysql_query($query);
    24. $result=mysql_query($query);
    25. $row=mysql_fetch_array($result);
    26.  
    27. ?>
     
    #9 Natali94, 6 июн 2016
    Последнее редактирование модератором: 6 июн 2016