Есть ли способ узнать, передается ли моя строка данных в мою функцию php - PullRequest
0 голосов
/ 04 марта 2012

Я вызываю сценарий отправки формы ajax, как указано ниже:

$(function() {
  $('.simple-success').hide();
  $("#submit_button").click(function() {


        var firstname=$("input#Firstname").val();
        var lastname=$("input#Lastname").val();
        var email = $("input#email").val();
        var title = $("input#title").val();
        var organization = $("input#organization").val();




var dataString = 'firstname='+ firstname + '&lastname=' + lastname + '&email=' + email + '&title=' + title + '&organization=' + organization;  


            $.ajax({
      type: "POST",
      url: "optIn.php",
      data: dataString,
      success: function() {
          $('.emailform').fadeOut(100).hide();
        $('.simple-success').fadeIn(100).show();
         alert('sucess')

      }
     });
    return false;
    });
});

Сценарий извлекает данные из формы, поскольку я могу просматривать данные в предупреждении о строке данных. Однакопо какой-то странной причине данные никогда не отправляются в базу данных, даже если скрипт PHP кажется правильным.Сценарий PHP приведен ниже

<?php


    $firstname = stripslashes(strip_tags($_POST['firstname']));

    $lastname = stripslashes(strip_tags($_POST['lastname']));
    $email = stripslashes(strip_tags($_POST['email']));
    $title = stripslashes(strip_tags($_POST['title']));
    $organization = stripslashes(strip_tags($_POST['organization']));


$pdbHost = "localhost";
$pdbUserName = "******";
$pdbPassword = "******";
$pdbName     = "db1080824_emails";



//  Connect to mySQL
$conlink = mysql_connect($pdbHost, $pdbUserName, $pdbPassword);
if(!$conlink) {die('Unable to connect to '.$pdbHost);}
if (!mysql_select_db($pdbName, $conlink)){die('Cannot find database '.$pdbName);}

//SQL query

    $SQL2="INSERT INTO  `db1080824_emails`.`emails` (`record_id` ,`firstname`,`lastname`,`email`,`title`,`organization`)VALUES (NULL ,  '".$firstname."',  '".$lastname."',  '".$email."',  '".$title."',  '".$organization."')";

    mysql_query($SQL2);
//  Connect to Closing the connection
mysql_close($conlink);
?>

Сервер MySQL расположен на сервере, и была создана база данных с таблицами, поэтому я не уверен, что здесь происходит не так

Любые входные данные будутбудь великим

Ответы [ 2 ]

0 голосов
/ 04 марта 2012

Первый вариант: использовать xdebug.http://xdebug.org Это лучший вариант, так как он предоставит вам полную поддержку отладки и поможет решить множество проблем PHP / MySQL.Тем не менее, это может быть затруднительно для правильной настройки, и в зависимости от вашей среды это может быть не вариант.

Второй вариант: просмотреть журнал ошибок PHP.Расположение этого журнала зависит от настроек вашего сервера.Если вы используете хостинг, это должно быть доступно через панель управления хоста.Если ваш сервер Linux с Apache, журнал обычно будет находиться либо в вашем файле журнала Apache (/var/log/apache2/error.log или подобном), либо в файле журнала vhost (папка журналов в том же месте, что и корень вашего документа).).Многие ошибки PHP можно быстро диагностировать и исправить, просто проверив журнал.

Третий вариант: вывести строку ошибки.Попробуйте это:

if( !mysql_query( $SQL2 ) ) {
    die( 'Error ' . mysql_errno( ) . ': ' . mysql_error( ) );
}

Затем проверьте ответ в Firebug или аналогичном инструменте.

И что бы вы ни делали, убедитесь, что вы дезинфицируете эти входные данные.Никогда не предполагайте, что любые данные, поступающие из веб-клиента, безопасны, потому что они просты для POST произвольных данных в форму.Попробуйте это: http://us.php.net/manual/en/function.mysql-real-escape-string.php

0 голосов
/ 04 марта 2012

Вы можете отобразить все, что вам нужно в php, и предупредить об этом следующим образом:

success: function(html) {
      $('.emailform').fadeOut(100).hide();
    $('.simple-success').fadeIn(100).show();
     alert(html)

  }

Это также покажет ошибки, произошедшие в файле php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...