Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Błąd przy wykonywaniu funkcji w skrypcie hotelowym
Forum PHP.pl > Forum > Przedszkole
Daffcio3615
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.
Neutral
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
nospor
@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...
SmokAnalog
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_.
nospor
@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....
SmokAnalog
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.
nospor
@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??
SmokAnalog
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
nospor
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
SmokAnalog
Miejże litość, pozwól negocjować. Niech to będzie chociaż w Euro ohno-smiley.gif
nospor
I takie negocjacje lubie. Euro pasuje biggrin.gif
Daffcio3615
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";
nospor
No ale dales to wyswietlanie po mysql_query() a przed mysql_fetch_array w okoliacach linii 216? Pokaz kod po zmianach.
Daffcio3615
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>
nospor
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....
Daffcio3615
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
nospor
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?
Daffcio3615
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
nospor
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
Daffcio3615
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());
    }
?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.