• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nie wysyła się formularz

Object Storage Arubacloud
0 głosów
108 wizyt
pytanie zadane 28 marca 2019 w PHP przez eyeys Początkujący (260 p.)

Hej, siedzę nad tym dobę i nie potrafię znaleźć rozwiązania.

Po kliknięciu wysłania formularza nic mi się nie dzieje, przeładowuje się strona tylko.

Proszę o pomoc, podpowiedź, dlaczego to nie trafia do bazy. Inbox i users to są tabele. 

<?php

session_start();

require_once('config.php');
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="#" rel="stylesheet" title="Style" />
        <title>New PM</title>
    </head>
    <body>
        <div class="header">
                <a href="<?php echo $url_home; ?>"><img src="" alt="Members Area" /></a>
            </div>
<?php
if(isset($_SESSION['user']))
{
     $form = true;

if(isset($_POST['sendPm']))
{
   
$otitle = $_POST['title'];
$orecip = $_POST['recip'];
$omessage = $_POST['message'];;
    
if(isset($_POST['sendPm']))
{
            
            
                $sql = "select count(id) as recip, id as recipid, (select count(*) from inbox) as npm from users where nick='$orecip'"; 
                $result = $connection->query($sql);
                if(!$result) throw new Exception($connection->error);
               
                if($result->num_rows>0)
                {  
                    while ($row = mysqli_fetch_array($result)) 
                {
                        $recipid = $row['recipid'];
     
                        if($recipid!=$_SESSION['user'])
                        {
                            while ($row = mysqli_fetch_array($result)) 
                            {
                                $id = $result['npm']+1;
                                $userSession = $_SESSION['user'];
                                $resultRecipid = $result['recipid'];

                                    $sql = "insert into inbox (id, id2, title, user1, user2, message, timestamp, user1read, user2read)values('$id', 1, '$title', '$userSession', '$resultRecipid', '$message', time(), 'yes', 'no')"; 
                                    $resul2 = $connection->query($sql);
                                    if(!$result2) throw new Exception($connection->error);
                            
                                if($result2)
                                {
?>
<div class="message">The message has successfully been sent.<br />
<a href="list.php">List of my Personal messages</a></div>
<?php
                                        $form = false;
                                }
                                else
                                {
                                     
                                        $error = 'An error occurred while sending the message';
                                }
                            }
                        }
                        else
                        {
                               
                                $error = 'You cannot send a message to yourself.';
                        }
                }
        }
                else
                {
                        $error = 'The recipient does not exists.';
                }
        }
        else
                $error = 'A field is empty. Please fill of the fields.';
        }
}
elseif(isset($_GET['recip']))
        $orecip = $_GET['recip'];
}
if($form)
{
if(isset($error))
{
        echo '<div class="message">'.$error.'</div>';
}
?>
<div class="content">
        <h1>New Personal Message</h1>
    <form action="send.php" method="post">
                Please fill the following form to send a Personal message.<br />
        <label for="title">Title</label><input type="text" value="<?php echo htmlentities($otitle, ENT_QUOTES, 'UTF-8'); ?>" id="title" name="title" /><br />
        <label for="recip">Recipient<span class="small">(Username)</span></label><input type="text" value="<?php echo htmlentities($orecip, ENT_QUOTES, 'UTF-8'); ?>" id="recip" name="recip" /><br />
        <label for="message">Message</label><textarea cols="40" rows="5" id="message" name="message"><?php echo htmlentities($omessage, ENT_QUOTES, 'UTF-8'); ?></textarea><br />
        <input type="submit" value="Send" name="sendPm" />
    </form>
</div>
<?php
}
else
{
        echo '<div class="message">You must be logged to access this page.</div>';
}
?>
                <div class="foot"><a href="list.php">Go to my Personal messages</a> - <a href="#">XX</a></div>
        </body>
</html>

1 odpowiedź

+1 głos
odpowiedź 28 marca 2019 przez olekjs Gaduła (4,540 p.)
edycja 28 marca 2019 przez olekjs

Nie umiem zrozumieć działania tego kodu, ale mogę dać Ci radę. Sprawdzaj sobie, w którym miejscu kod Ci działa funkcją:

exit('działa');

Jeśli nie pokaże 'działa' to znaczy że kod nie dochodzi do tego momentu.

komentarz 28 marca 2019 przez eyeys Początkujący (260 p.)

dzięki za radę, faktycznie to coś dało i już chociaż jako tako insert wchodzi. Mam ten kod trochę przerobiony, może teraz będzie jaśniej? Bo pozostał mi niby jeden problem - 

mysqli_fetch_array() expects parameter 1 to be mysqli_result

https://pastebin.com/tzyLZvb6

Chodzi o 23 linijkę, zupełnie nie rozumiem czemu mi wyskakuje taki błąd. Chyba właśnie przez to nie wszystko insertuje mi w poprawny sposób.

 

komentarz 28 marca 2019 przez olekjs Gaduła (4,540 p.)

Coś jest źle z zapytaniem. Spróbuj zamienić to:

$sql = "select count(id) as recip, id as recipid, (select count(*) from pm_system) as npm from uzytkownicy where nick='$recip'";

na to: 

$sql = "select count(id) as recip, id as recipid, (select count(*) from pm_system) as npm from uzytkownicy where nick=$recip";

 

komentarz 28 marca 2019 przez eyeys Początkujący (260 p.)
edycja 28 marca 2019 przez eyeys
Kurczę, niechcący kliknęłam w flagę zamiast dymka, żeby odpowiedzieć, sorki.

Niestety, zmiana zapytania daje ten sam komunikat, ale jeśli to wina zapytania to pokombinuję z nim jeszcze. Pozdrawiam

 

Ale jednak pomimo warninga insert działa jak należy uff:)

Podobne pytania

0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 11 kwietnia 2018 w JavaScript przez Rash Użytkownik (620 p.)
0 głosów
0 odpowiedzi 140 wizyt
0 głosów
1 odpowiedź 118 wizyt
pytanie zadane 29 czerwca 2018 w PHP przez niezalogowany

92,576 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...