Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

Promowane odpowiedzi

Vast    1

Witam, mam zrobiony formularz, zrobiłem pod niego kod php

<?php
try {
  $servername = "localhost";
  $username = "root";
  $password = "test";
  $dbname = "test";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("INSERT INTO form (wynajemmiasto, adreswynajmu, zwrotmiasto, adreszwrotu, dataodbioru, czasodbioru, datazwrotu, czaszwrotu)
VALUES (:wynajemmiasto, :adreswynajmu, :zwrotmiasto, :adreszwrotu, :dataodbioru, :czasodbioru, :datazwrotu, :czaszwrotu)");
$stmt->bindParam(':wynajemmiasto', $wynajemmiasto);
$stmt->bindParam(':adreswynajmu', $adreswynajmu);
$stmt->bindParam(':zwrotmiasto', $zwrotmiasto);
$stmt->bindParam(':adreszwrotu', $adreszwrotu);
$stmt->bindParam(':dataodbioru', $dataodbioru);
$stmt->bindParam(':czasodbioru', $czasodbioru);
$stmt->bindParam(':datazwrotu', $datazwrotu);
$stmt->bindParam(':czaszwrotu', $czaszwrotu);
$wynajemmiasto = $_POST['wynajemmiasto'];
$adreswynajmu = $_POST['adreswynajmu'];
$zwrotmiasto = $_POST['zwrotmiasto'];
$adreszwrotu = $_POST['adreszwrotu'];
$dataodbioru = $_POST['dataodbioru'];
$czasodbioru = $_POST['czasodbioru'];
$datazwrotu = $_POST['datazwrotu'];
$czaszwrotu = $_POST['czaszwrotu'];
$stmt->execute();
echo "dodane";
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "<script>
      window.location.href = '/index.php';
    </script>";
?>

Lecz po dłuższym namyśleniu chce zrobić to na pare etapów mianowicie -

 

Na stronie głównej jest formularz który po naciśnięciu przycisku więcej przerzuca nas do strony np. oferta.php i tam wybieramy jeszcze produkt przyciskiem i przenosi nas na ostatnią strone kupno.php gdzie jest formularz z danymi osobowymi i dopiero tam po nacisnieciu przycisku kupuje  zbiera dane z tych 3 stron (Czyli formularza z index.php, konkretny produkt z oferta.php a na samym końcu  formularza z kupno.php)

 

Nie proszę o całkowicie gotowy kod tylko jakieś wskazówki jak to najprościej zrobić.

Edytowane przez Vast

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Robiąc to na sesjach, musiałbym przerzucić te dane do sesji z 1 i 2 strony i potem wywołać je na tej ostatniej czyli 3 stronie i wtedy wszystko wrzucić do bazy danych czy w jaki sposób?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Czyli musiałbym biorąc np żywy przykład zrobić 

 

Aby dodać do sesji pole o name="wynajemmiasto" dobrze rozumiem?

<?php
session_start();
$_SESSION['wynajemmiasto'] = $wynajemmiasto;
?>

 

Czy jako:

<?php
session_start();
$_SESSION['wynajemmiasto'] = $_POST['wynajemmiasto'];
?>

 

A teraz jeśli miałbym już w sesji 1 i 2 strone, jak "wywołać" konkretne zmienne w sesji do strony?

Czy po prostu jak wywołam ten skrypt z początku postu to php automatycznie znajdzie te zmienne w sesji?

Edytowane przez Vast

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,533

Sesja, to zmienna globalna.

 

PHP: session_start - Manual

Niżej znajdziesz przykłady jak wykorzystać sesje w postaci tabeli.

<?php
// We get the instance
$data = Session::getInstance();
// Let's store datas in the session
$data->nickname = 'Someone';
$data->age = 18;
// Let's display datas
printf( '<p>My name is %s and I\'m %d years old.</p>' , $data->nickname , $data->age );
/*
    It will display:
    Array
    (
        [nickname] => Someone
        [age] => 18
    )
*/
printf( '<pre>%s</pre>' , print_r( $_SESSION , TRUE ));
// TRUE
var_dump( isset( $data->nickname ));
// We destroy the session
$data->destroy();
// FALSE
var_dump( isset( $data->nickname ));

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Dla testu dodałem 

 

<?php
      $wynajemmiasto=$_POST['wynajemmiasto'];
      $_SESSION["wynajemmiasto"]=$wynajemmiasto;
      ?>

i wyskoczył mi błąd 

Notice: Undefined index: wynajemmiasto in C:\xampp\htdocs\include\header.php on line 450

 

 

Może coś źle zrozumiałem zakładam, że zrobiłem jakąś totalną głupotę, ale w php orłem nie jestem a jakoś trzeba zacząć.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,533

Dodaj na sam początek pliku:

<?php
session_start();

 

Poza tym, musisz mieć dane wysłane metodą POST na daną stronę, żeby móc odwołać się do innej zmiennej globalnej:

<?php
$_POST[];

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Session_start już było więc to nie tego wina. 

 

<form action="oferta.php" method="post">

Post także jest

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1
  <form action="oferta.php" method="post">
            <div style="float:left;font-weight:bold;">
              <select id="miastowynajem" name="wynajemmiasto" class="miasto" style="width:100%;" onchange="showDiv(this)">
                <option>
                  Gdynia Kwiatowa 13
                </option>
                <option>
                  Gdansk Kwiatowa 13
                </option>
                <option>
                  Wejherowo Kwiatowa 13
                </option>
                <option>
                  Warszawa Kwiatowa 13
                </option>
                <option value="1">
                  Podstawienie pod adres
                </option>
              </select>
              <div id="hidden_div" style="display: none;float:right;">
                <input type="text" class="adres" name="adreswynajmu" placeholder="Podaj Adres (Miasto,Adres,Numer Domu)" />
              </div><br />
              <br />
              <p>
                Miejsce Zwrotu
              </p>
              <div style="float:left;">
                <select id="miastozwrot" name="zwrotmiasto" class="miasto2" style="width:100%" onchange="showDiv2(this)">
                  <option>
                    Gdynia Kwiatowa 13
                  </option>
                  <option>
                    Gdansk Kwiatowa 13
                  </option>
                  <option>
                    Wejherowo Kwiatowa 13
                  </option>
                  <option>
                    Warszawa Kwiatowa 13
                  </option>
                  <option value="1">
                    Własny Adres
                  </option>
                </select>
                <div id="hidden_div2" style="display: none;float:right;">
                   <input type="text" class="adres" name="adreszwrotu" placeholder="Podaj Adres (Miasto,Adres,Numer Domu)" />
                </div><br />
                <br />
                <div style="float:left">
                  <p>
                    Odbiór
                  </p><input type="date" name="dataodbioru" required="required" /> <select id="czas" name="czasodbioru" class="czas">
                    <option value="00:00">
                      00:00
                    </option>
                  </select>
                </div>
                <div style="float:left;margin-left:10px;">
                  <p>
                    Zwrot
                  </p><input type="date" name="datazwrotu" required="required" /> <select id="czas" name="czaszwrotu" class="czas">
                    <option value="00:00">
                      00:00
                    </option>
                  </select>
                </div>
              </div>
            </div>
          </div>
            </div><input type="submit" class="rrezerwacjabottom" value="Rezerwuje!" />
          </form>

Formularz jest włożony w nagłówek więc jest w header.php a na innych stronach osadziłem go include header.php

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,533

A zrób jeszcze taki myk. Ten błąd występuje na stronie oferta.php ?

To umieść w kodzie, na początku takie coś:

<?php
function debug($array = []) {
  printf('<pre>%s</pre>', print_r($array));
  die();
}
debug($_POST);

I napisz tu co dostajesz.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Rozumiem, że miałem wstawić to do header, jeśli źle to zrozumiałem to mój błąd.

 

kod teraz wyglądał tak (header.php) : 

<?php
function debug($array = []) {
  printf('<pre>%s</pre>', print_r($array));
  die();
}
debug($_POST);
$wynajemmiasto=$_POST['wynajemmiasto'];
$_SESSION["wynajemmiasto"]=$wynajemmiasto;
?>

 

Strona zrobiła się cała biała i widnieje tylko to:

Imgur: The most awesome images on the Internet

 

I w indexie i ofercie i wielu innych podstronach

 

Mogę podrzucić cały index etc. na pw. Trochę zajeła mi cała strona i wolałbym jej nie udostępniać.

Edytowane przez Vast

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,533

Podeślij pliki na PW. Muszę zobaczyć co tam nie gra. Na razie zwraca pustą tablicę POST, to oznacza, że nie przesyłasz w ogóle danych do tego pliku.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Dobra, nie wiem jakim cudem, ale coś pogrzebałem i rozwiązałem polowe problemu - Mianowicie kiedy wejdziemy na pustą stronę - index wyświetli ten błąd bo nie pobiera domyślych ustawień formularza czyli faktycznie jest puste, natomiast kiedy wyślemy formularz i odniesie nas na oferta.php (Tam dałem aby wyświetliło tą zmienną z sesji) faktycznie wyświetla to co miało. Teraz pytanie jak pozbyć się tego komunikatu albo, żeby pobierało domyślne ustawienia?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,533

Najpierw sprawdź czy istnieje taki klucz, a dopiero później przypisz jego wartość.

<?php
$wynajemmiasto = isset($_POST['wynajemmiasto'])? $_POST['wynajemmiasto'] : '';

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Kurde działa dla zainteresowanych:

<?php
$wynajemmiasto = isset($_POST['wynajemmiasto'])? $_POST['wynajemmiasto'] : '';
$_SESSION["wynajemmiasto"]=$wynajemmiasto; ?>

tak to w efekcie wygląda i działa 

 

Ostatnie chyba pytanie bo obecnie przy select wybiera w ten sposób: 

 

<option value="1">
                  Podstawienie pod adres
                </option>

I wyświetla 1 da rade zrobić aby pobierało tekst w środku a nie value="" ? Od razu mówię, że nie wchodzi w grę zmiana value na coś innego.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,533

Jeżeli tą zmienną: $wynajemmiasto wykorzystujesz jedynie tylko do przepisywania wartości, to jest ona zbędna.

 

23 minuty temu, Vast napisał:

I wyświetla 1 da rade zrobić aby pobierało tekst w środku a nie value="" ?

Raczej nie ma takiego rozwiązania - przynajmniej ja takiego nie znam.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Niedługo to się z tego jakiś artykuł zrobi pojawiły się na samym koncu problemy mianowicie - 

Po wykonaniu całej rezerwacji w tym formularzu przenosi nas do wyboru oferty, tam chciałem zrobić coś na zasadzie:

<form method="POST" name="oferta1">
          <a href="/../rezerwacja.php">
            <img src="img/oferta/car1.png" alt="">
            <div class="paseczek">
            <p>Oferta1</p>
            <b><i class="fa fa-car" aria-hidden="true"></i>&nbsp;5</b>
          </div>
          </a>
        </form>

Aby pobrać jakoś wartość jaką oferte kliknął dany klient (Pierwsze co przyszło mi do głowy), tutaj pojawia się problem 

 

Po kliknięciu na daną oferte przenosi nas do rezerwacja.php i tam wpisałem:

<?php
session_start();
include_once 'dbconnect.php';
?>
<html>
<head>
<title>123</title>
<?php include 'include/head.php' ?>
</head>
<body>
<?php include 'include/header.php' ?>
<?php 
 echo $_SESSION["oferta1"]; 
 echo $_SESSION["wynajemmiasto1"]; 
?>
<?php include 'include/footer.php' ?>
</body>
</html>

Dla sprawdzenia czy wyświetla się cokolwiek wpisałem jak widać te 2 echo. Jak zawsze wiatr w oczy i było pusto nie wiem czego to wina.

Edytowane przez Vast

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,533

No ale ten powyższy <form> nie ma żadnych pól formularza, więc jak chcesz przesłać nim cokolwiek?

Poza tym, pisałeś, że ogarniasz PHP, więc HTMLa i CSSa też powinieneś...

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Absolutnie nigdzie nie pisałem, że ogarniam php htmla czy css'a wręcz przeciwnie

"Może coś źle zrozumiałem zakładam, że zrobiłem jakąś totalną głupotę, ale w php orłem nie jestem a jakoś trzeba zacząć."

 

Form praktycznie nic do tego nie ma. Bo tak czy siak nie przesyła innych zmiennych do 3 strony a tylko do 2 (Mówie tutaj o formularzu z strony 1)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Vast    1

Pytanie chyba jeszcze dotyczy tematu bo także tutaj to opisałem mam pare ofert na jeden stronie (oferta.php)

Tutaj kod jednej z ofert 

        <li>
          <a href="/../rezerwacja.php">
            <img src="img/oferta/zdj.png" alt="">
            <div class="paseczek">
            <p>Oferta1</p>
            <b><i class="fa fa-car" aria-hidden="true"></i>&nbsp;5</b>
          </div>
          </a>
        </li>

Czy da radę pobrać <p>Oferta1</p> Mianowicie potrzebuje pobrać jakoś jaką ofertę wybrał użytkownik aby wrzucić ją do sesji. Poszperałem trochę i sam próbowałem to zrobić, ale totalnie nie mam pomysłu.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.


×