Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Błąd przy wykonywaniu funkcji w skrypcie hotelowym
Daffcio3615
post 12.06.2018, 14:19:41
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.09.2017

Ostrzeżenie: (0%)
-----


Witam. W poszukiwaniu ratunku na zaliczenie ( czyli szukania gotowca w necie na temat rezerwacji pokoju hotelowego ) natknąłem się na wideo, na którym autor pokazuje jak działa jego skrypt, który udostępnia otwarcie.

Podczas otwierania u mnie i próbie logowania wyskakuje takie coś ( a u niego normalnie działa ):



poniżej podaję link do pobrania tego skryptu

https://drive.google.com/file/d/16TZEEqyPsS...iew?usp=sharing

(baza danych musi się nazywać assignment )

Nie wiem co już z tym robić... szukałem wszędzie i nic... nawet przeszedłem z PHP 7 na PHP 5.6.21 a potem znów na 5.5.19
Pozdrawiam.
Go to the top of the page
+Quote Post
Neutral
post 12.06.2018, 14:39:09
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


Popatrz na przykład i pozmieniaj.

  1. $query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
  2. $result = $mysqli->query($query);
  3.  
  4. /* numeric array */
  5. $row = $result->fetch_array(MYSQLI_NUM);
  6. printf ("%s (%s)\n", $row[0], $row[1]);

http://php.net/manual/en/mysqli-result.fetch-array.php

Ten post edytował Neutral 12.06.2018, 14:39:30
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 14:47:13
Post #3





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




@Neutral i niby jakim cudem przejscie na mysqli ma poprawic blad bazy danych? Jesli polaczenie jest zle ustawione tudzien tabele nie istnieje to krok ten nie ma zadnego sensu. A to wlasnie wynika z komunikatu bledu....

@Daffcio3615 masz blad zapytania. Przed mysql_fetch_array() masz gdzies tam mysql_query. Wyswietl sobie blad jaki zwraca baza. No to chociaz powinieines umiec na to zalicznie...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SmokAnalog
post 12.06.2018, 14:56:23
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Taki błąd oznacza, że masz złą nazwę użytkownika/hasło do połączenia z bazą. mysql_connect zamiast połączenia zwrócił false. Inna sprawa, że w PHP 7 nie używa się już funkcji zaczynających się od mysql_.

Ten post edytował SmokAnalog 12.06.2018, 14:56:31
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 15:02:39
Post #5





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




@SmokAnalog a skadzesz te mysql_connect wytrzasnal tam? Przeciez blad sie pojawia przy tym zapytaniu

$login="select * from users where user_name='".$username."' and user_password ='".$password."'";
$result=mysql_query($login);

Jak juz mowilem jest to blad zapytania. Owszem, miedzy innymi moze to byc blad polaczenia jesli nie zostal wylapany wczesniej.

ps: generalnie nie wiem jakim cudem to dziala skoro do polaczenia autor uzywa PDO a potem do zapytania mysql_query....


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SmokAnalog
post 12.06.2018, 15:12:18
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ale pierwszy parametr to połączenie. Mówimy o funkcji mysql_fetch_assoc, a nie o mysqli. Kolega przekazuje tam boolean, czyli złe połączenie. Tak mi się wydaje.
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 15:13:36
Post #7





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




@Smoku idz sie wyspij bo gadasz takie glupoty....
Skoro sam mnie odsylasz do manuala to moze jednak sam tam zajrzyj
http://php.net/mysql_fetch_assoc
gdzie tam masz pierwszy parametr polaczenie??


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SmokAnalog
post 12.06.2018, 15:16:13
Post #8





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Rzeczywiście gadam głupoty biggrin.gif Pomyliło mi się z mysql_query, gdzie połączenie i tak jest nie pierwszym, a drugim parametrem. Gadam przez telefon i jednak multitasking nie zdaje egzaminu. Ale wstyd oneeyedsmiley02.png

Ten post edytował SmokAnalog 12.06.2018, 15:16:31
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 15:32:01
Post #9





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
Ale wstyd
No ba. Dodam ten temat do ulubionych i bede cie nim nekal srednio raz na tydzien do czasu az przelejesz na me konto £1000000 wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SmokAnalog
post 12.06.2018, 15:37:54
Post #10





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Miejże litość, pozwól negocjować. Niech to będzie chociaż w Euro ohno-smiley.gif
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 15:40:14
Post #11





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




I takie negocjacje lubie. Euro pasuje biggrin.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Daffcio3615
post 12.06.2018, 16:08:50
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.09.2017

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 12.06.2018, 15:47:13 ) *
@Daffcio3615 masz blad zapytania. Przed mysql_fetch_array() masz gdzies tam mysql_query. Wyswietl sobie blad jaki zwraca baza. No to chociaz powinieines umiec na to zalicznie...


Zmieniłem połączenie z PDO na mysql_connect ( tak wiem, stare...) błędów o dziwo nie wyrzuca... znaczy robię tak jak mnie uczono, że
echo "Connect error: " . mysql_error() . " sad.gif";
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 16:11:56
Post #13





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No ale dales to wyswietlanie po mysql_query() a przed mysql_fetch_array w okoliacach linii 216? Pokaz kod po zmianach.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Daffcio3615
post 12.06.2018, 16:18:04
Post #14





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.09.2017

Ostrzeżenie: (0%)
-----


Kod
<?php     session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<style type="text/css">
    #contenair{
        height: 100%;
        width: 100%;
        
    }
    #r{
        margin-top: 5%;
        margin-bottom: 50px;
        margin-right: 20px;
        float: right;
        height:95%;
        width:35%;
        background-color: #b7bcbd;
        
    }
    #l
    {
        margin-top: 5%;
        margin-bottom: 50px;
        margin-left:20px;
        float: left;
        
        width: 60%;
        background-color: #b7bcbd;
    
    }
    </style>
    
<script>
    
        function signup()
      {

          var alt="";
          var x=document.forms["signupform"]["firstname"].value;
          if (x==null || x=="")
            {
              alt +="First name must be filled out\n";
              
            
            }
         var y=document.forms["signupform"]["lastname"].value;
         if (y==null || y=="")
            {
              
              alt += "Last name must be filled out\n";
              
            }
            var x=document.forms["signupform"]["daytimephone"].value;
          if (x==null || x=="")
            {
              alt +="First name must be filled out\n";
              
            
            }
          var z=document.forms["signupform"]["email"].value;
          var atpos=z.indexOf("@");
          var dotpos=z.lastIndexOf(".");
              
           if (atpos<1 || dotpos<atpos+2 || dotpos+2>=z.length)
              {
             alt += "Not a valid e-mail address\n";
            
              }
        
          var v=document.forms["signupform"]["password1"].value;
        
          if (v==null || v=="")
            {
              alt += "password must be filled out\n";
                
            }
         var t=document.forms["signupform"]["password2"].value;
         if (t==null || t=="")
            {
              alt += "confirm password must be filled out\n";
                
            }
             if (v != t)
            {
              alt += "password  doesn't  match\n";
                
            }
          if((document.forms["signupform"]["usertype1"].checked==false)&& (document.forms["signupform"]["usertype2"].checked==false))
      
            {
               alt += "payment type  must be filled out\n";
                    
            }
  
        if (alt != "")
             {
               alert(alt);
              return false;
             }
             else {
                 form.Submit()
             }
}

     </script>
     <meta charset="UTF-8" />
</head>
<body>
<div id="contenair">
<?php
include_once('include/db_con.php');
if(isset($_POST['Submit']))
{
$fn=$_POST['firstname'];
$ln=$_POST['lastname'];
$phone=$_POST['daytimephone'];
$email=$_POST['email'];
$pass=$_POST['password1'];
$city=$_POST['city'];
$country=$_POST['country'];
$intr=$_POST['usertype'];

$s1="INSERT INTO users (first_name,last_name,day_phone,user_name,user_password,city,country,payment_
type)VALUES('".$fn."','".$ln."','".$phone."','".$email."','".$pass."','".$city."','".$country."','".$intr."')";
mysql_query($s1) or die (mysql_error($con));
}
?>
<div id="l" align="left">
<h2  align="center" style="color:red">Welcome to our Hotel </h2>
<h3 align="center"><u><i>Create A Account For New User....</i></u></h3>
<table>
<form method="POST" name="signupform" action="index.php" onSubmit="return signup();" >
         <tr>
        <td height="40">FirstName:</td>
        <td><input name="firstname" type="text" id="firstname" size="40" />
        
        </td>
    </tr>
    <tr>
        <td height="40">LastName:</td>
        <td><input name="lastname" type="text" id="lastname" size="40"  />
        
        </td>
    </tr>
    <tr>
        <td height="40">Phone:</td>
        <td><input name="daytimephone" type="text" id="daytimephone" size="40" class="phone" />
        
        </td>
    </tr>
    <tr>
        <td height="40">E-mail:</td>
        <td><input name="email" type="text" id="email" size="40"  />
        
        </td>
    </tr>
    
    <tr>
        <td height="40">Password:</td>
        <td><input name="password1" type="password" id="password1" size="40" />
        
        </td>
    </tr>
    <tr>
        <td height="40">Confirm Password:</td>
        <td><input name="password2" type="password" id="password2" size="40" />
        
        </td>
    </tr>
    <br>
    <tr>
        <td height="40">City/State</td>
        <td><input name="city" type="text" id="city" size="40"  />
        </td>
    </tr>
    <br>
    <tr>
        <td height="40">Country</td>
        <td><input name="country" type="text" id="country" size="40" />
        
        </td>
    </tr>
    <br>
    <tr>
        <td>Payment Type:</td>
        <td><input type="radio" name="usertype" id="usertype1" value="cash" />Cash
        <input type="radio" name="usertype" id="usertype2" value="paypal" />Paypal/CreditCard
        </td>
    </tr>
    <tr>
    <td align="center" colspan="2"><input type="submit" name="Submit" value="Submit" />
        <input type="reset" name="reset" value="Reset"  /></td></tr>
    </form>
   </table>
</div>
    <div id="r" align="right">
    
    <?php
    include_once('include/db_con.php');
        if (isset($_POST['username'],$_POST['password']))
               {
                $username=$_POST['username'];
                $password=$_POST['password'];
  
                   if (empty($username) || empty($password))
                   {
                      $error = 'Hey All fields are required!!';
                    }
                    
                     else {  
                     $login="select * from users where user_name='".$username."' and user_password ='".$password."'";
                     $result=mysql_query($login);
                     print_r($result);
                     echo "Connect error: " . mysql_error() . " :( ";
                    if (mysql_fetch_array($result)){
                 $_SESSION['logged_in']='true';
                 $_SESSION['username']=$username;
                     header('Location:registration.php');
                     exit();
                     } else {
                     $error='Incorrect details !!';
                     }
                           }
        }
  
  ?>
    <form action="index.php" method="POST">
    <h2 align="center" id="h"><u><i>Login Here........</i></u></h2>
        <table align="center" id="t">
        <tr> <?php  if (isset($error)) {?>
           <small style="color:#aa0000;"><?php echo $error; ?>
            <br /> <br />
           <?php } ?> </tr>
          <tr>
            <td width="113">Email:</td>
            <td width="215">
              <input name="username" type="text"  size="40" /></td>
          </tr>
          <tr>
            <td>Password:</td>
            <td>
              <input name="password" type="password"  size="40" /></td>
          </tr>
          <tr>
            <td colspan="2" align="center">
            <input type="submit" name="sub" value="Login" /></td>
            </tr>
            
       </table>
        </form>
        
        
    </div>
</div>
</body>
</html>
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 16:22:48
Post #15





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No i co? Nie zwraca ci to bledu bazy ale jednoczesnie nadal pluje bledem z pierwszego posta? Niemozliwe.
Zamien
echo "Connect error: " . mysql_error() . " sad.gif ";
na:
die(mysql_error());

ps: zauwaz ze masz tam dwa pliki INDEX.PHP. Rob zmiany we wlasciwym....


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Daffcio3615
post 12.06.2018, 16:30:22
Post #16





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.09.2017

Ostrzeżenie: (0%)
-----


Warning: mysql_error(): 6 is not a valid MySQL-Link resource in C:\xampp\htdocs\index.php on line 125 -> to wyskakuje przy rejestracji

a przy logowaniu, że baza danych nie jest wybrana facepalmxd.gif
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 16:34:14
Post #17





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




zmien
mysql_error($con)
na
mysql_error()

Co do niewybranej bazy to moze ja wybierz?questionmark.gifquestionmark.gifquestionmark.gif Myslisz ze baza ot tak sobie rzuca tym bledem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Daffcio3615
post 12.06.2018, 16:42:46
Post #18





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.09.2017

Ostrzeżenie: (0%)
-----


db_con.php -> daję to, co zmieniłem z PDo na mysql_connect...
Kod
<?php
$con = mysql_connect('localhost', 'root', '', 'assignment');

if (!$con) {
        die('Brak połączenia: ' . mysql_error());
    }
mysql_close($con);
?>


No database selected

i tyle...

Nie wiem, albo jestem kretynem albo nie widzę banalnego problemu laugh.gif

Ten post edytował Daffcio3615 12.06.2018, 16:43:33
Go to the top of the page
+Quote Post
nospor
post 12.06.2018, 16:45:34
Post #19





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Masz blad ze nie wybrales bazy
Ja ci mowie ze masz wybrac baze

A ty nadal bazy jak nie wybrales tak nie wybrales. Wskaz mi prosze w tym kodzie miejsce, wktorym wybierasz baze...
Bo jesli myslisz ze to
mysql_connect('localhost', 'root', '', 'assignment');
wybiera baze to sie srogo mylisz. Zajrzyj do manuala

Cytat
albo jestem kretynem albo nie widzę banalnego problemu
Nie zadawaj pytan na ktorej nie chcesz znac odpowiedzi tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Daffcio3615
post 12.06.2018, 16:56:20
Post #20





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.09.2017

Ostrzeżenie: (0%)
-----


dodałem wszędzie na początek zamiast session_start(); dodałem ob_start(); i wszystko działa prawidłowo
i oczywiście poprawiłem:
Kod
<?php
$con = mysql_connect('localhost', 'root', '');

if (!$con) {
        die( 'Brak połączenia: ' . mysql_error());
    }
    $db_selected = mysql_select_db('assignment', $con);
    if (!$db_selected) {
        die ('Nie można wczytać bazy : ' . mysql_error());
    }
?>


Ten post edytował Daffcio3615 12.06.2018, 16:57:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 23:04