PHP вставить в ничего не возвращая

0

Привет, я пытаюсь запрограммировать базовую вставку в проект, который я делаю, который будет принимать user_id и вставить всю информацию пользователя, введенную в базу данных, но все, что происходит, это то, что я перенаправляюсь на страницу php.

im довольно новичок в этом и исследовал в Интернете, чтобы получить это далеко, но теперь я полностью смущен. наш v = текущий сервер не поддерживает PDO (к сожалению), поэтому я полагаюсь на вас, ребята, за помощью.

благодаря

вот мой код:

<?php
    session_start();
    $server = "server";
    $schema = "schema";
    $uid = "uid";
    $pwd = "pwd";

  $user_id=$_SESSION['user_id']
  $bookName=$_POST['txt_bookName'];
  $bookEmail=$_POST['txt_bookEmail'];
  $address=$_POST['txt_address'];
  $mobile=$_POST['txt_mobile'];
  $telephone=$_POST['txt_telephone'];
  $dob=$_POST['txt_dob'];
  $emergency=$_POST['txt_emergency'];
  $profession=$_POST['txt_profession'];
  $nationality=$_POST['txt_nationality'];

  @ $db = mysql_connect($server, $uid, $pwd);
  if (!$db)
  {
     echo 'Error: Could not connect to database.  Please try again later.';
     exit;
  }
  else
  {
  mysql_select_db($schema);

    $query = "INSERT INTO booking
(user_id, bookName, bookEmail, address, nationality, 
mobile, telephone, dob, emergency, proposed_date, 
profession ) 
values ('$user_id', '$bookName','$bookEmail','$address','$nationality', 
'$mobile', '$telephone', '$dob', '$emergency', '$proposed_date', 
'$profession')";

  $result = mysql_query($query);
 if ($result)
    header("Location: payment.html");
   else{
   header("Location: bookTour.php");
   }
  }
   mysql_close();
?>

обновить с помощью кода формы

он был отредактирован для более легкого наблюдения

function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
</script>

</head>
<form id="frm_booking" name="frm_booking" action ="InsertBooking.php" method="post">
<body> 
<div class="cssname">
  <p>Book Tours</p>
</div>

<div>

  <label><strong>Book Tours</strong></label>
<form>
  <p>&nbsp;</p>
  <p><strong>List of Tour Details</strong></p>

  <table width="666" border="0" align="center" cellspacing="0">
  <label>
        <input name="txt_bookName" type="text" id="txt_bookName" placeholder="Name"/>

        <input name="txt_bookEmail" type="email" id="txt_bookEmail" placeholder="[email protected]"/>
  <label>
        <input name="txt_address" type="text" id="txt_address" placeholder="Address"/>
      </label></td>
    <input name="txt_nationality" type="text" id="txt_nationality" placeholder="Nationality"/></td>

   <input name="txt_mobile" type="text" id="txt_mobile" placeholder="Mobile"/></td>
 <input name="txt_telephone" type="text" id="txt_telephone" placeholder="Telephone"/></td>
    </tr>
    <tr>
     &nbsp;</td>
    <input name="txt_dob" type="text" id="txt_dob" placeholder="yyyy-mm-dd"/></td>
<input name="txt_emergency" type="text" id="txt_emergency" placeholder="Emergency Contact"/></td>
 <select name="lst_tour" onchange="">
        <option value="">Select a Date:</option>
        <?php include 'tourSelect.php' ?>
        <?php 

foreach ( $results as $option ) : ?>
        <option value="<?php

          echo $option->departure_date; ?>"><?php echo $option->departure_date; ?></option>
        <?php endforeach; ?>
      </select>
        <strong>Type</strong> <strong>date</strong> <strong>here</strong>:
<label>
          <input type="text" name="txt_projectDate" id="txt_projectDate" placeHolder "Enter date selected at the left"/>
        </label></td>
<input name="txt_profession" type="text" id="txt_profession" placeholder="Profession"/></td>

        <textarea name="txt_statement" id="txt_statement" cols="45" rows="5" placeholder="Say a short sentance about yourself"></textarea>

        <input name="btn_book" type="submit" class="btn_ragister" id="btn_book" value="Book Now!" style="background-color:#FFF"; border="1" />
  • 0
    попробуйте добавить or die(mysql_error()) перед точкой с запятой после mysql_query. Он скажет вам, если что-то не так.
  • 1
    У вас серьезная уязвимость атаки SQL-инъекций .
Показать ещё 2 комментария
Теги:

1 ответ

0

Вы действительно должны санировать свой ввод пользователя перед тем, как использовать его в запросе, иначе ваш сайт не поддается SQL-инъекции.

$bookEmail = mysql_real_escape_string($_POST['txt_bookEmail']);

Повторите это для всех ваших vars и, возможно, он также решит вашу ошибку (зависит от используемого входа).

Также: посмотрите, включен ли mysqli, он лучше, чем mysql-расширение (если PDO недоступен).

  • 0
    Как вы думаете, это ответ на вопрос ОП?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню