2015-08-22 2 views
2

Еще раз у меня есть форма, которую я хочу отправить в мою базу данных, но она не работает, и я действительно не знаю, почему. Я тестировал все, но я не вижу ошибок в моем коде.PHP Form to Database - не работает

Вот код моей формы:

<!-- Begin # Registration Form --> 
<form method="post" action="register_teacher.php" id="registration-teacher-form" class="form-horizontal"> 
<div class="col-sm-12"> 
    <p>Willkommen zu unserer <strong>Online - Essensreservierung</strong> für Lehrer. Bitte geben Sie im nachfolgenden Schritt Ihre Daten bekannt. Die Wahl des Menüs, sowie die Essenstage, können Sie im nächsten Schritt angeben.</p><br> 
    </div> 
    <div class="form-group"> 
     <label for="inputEmail3" class="col-sm-2 control-label">Schule:</label> 
     <div class="col-sm-10"> 
     <select class="form-control" name="schul" id="schul"> 
     <option value="no_selected" checked>Bitte auswählen</option> 
     <option value="AHS Waldschule 1">AHS Waldschule 1</option> 
     <option value="AHS Waldschule 2">AHS Waldschule 2</option> 
     <option value="AHS Waldschule 3">AHS Waldschule 3</option> 
    </select> 
     </div> 
    </div> 
    <hr> 
    <div class="form-group"> 
     <label for="inputEmail" class="col-sm-2 control-label">Email:</label> 
     <div class="col-sm-10"> 
     <input type="email" class="form-control" name="emai" id="inputEmail" placeholder="Ihre E-Mail Adresse"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="inputPassword" class="col-sm-2 control-label">Passwort:</label> 
     <div class="col-sm-10"> 
     <input type="password" class="form-control" name="passwor" id="inputPassword" placeholder="Ihr Passwort"> 
     </div> 
    </div> 
    <hr> 
    <div class="form-group"> 
     <label for="inputEmail3" class="col-sm-2 control-label">Anrede:</label> 
     <div class="col-sm-10"> 
     <select class="form-control" name="anred"> 
      <option value="Herr">Herr</option> 
      <option value="Herr">Frau</option> 
     </select> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="inputVorname" class="col-sm-2 control-label">Vorname:</label> 
     <div class="col-sm-10"> 
     <input type="text" class="form-control" name="vornam" id="inputVorname" placeholder="Ihr Vorname"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="inputNachname" class="col-sm-2 control-label">Nachname:</label> 
     <div class="col-sm-10"> 
     <input type="text" class="form-control" name="nachnam" id="inputNachname" placeholder="Ihr Nachname"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="inputStrasse" class="col-sm-2 control-label">Strasse:</label> 
     <div class="col-sm-10"> 
     <input type="text" class="form-control" name="strass" id="inputStrasse" placeholder="Ihre Adresse"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="inputPLZ" class="col-sm-2 control-label">PLZ:</label> 
     <div class="col-sm-10"> 
     <input type="text" class="form-control" name="pl" id="inputPLZ" placeholder="Ihre Postleitzahl"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="inputOrt" class="col-sm-2 control-label">Ort:</label> 
     <div class="col-sm-10"> 
     <input type="text" class="form-control" name="or" id="inputOrt" placeholder="Ihr Wohnort"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="inputTelefon" class="col-sm-2 control-label">Telefon:</label> 
    <div class="col-sm-10"> 
     <input type="tel" class="form-control" name="telefo" id="inputTelefon" placeholder="Ihre Telefonnummer"> 
    </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-sm-offset-2 col-sm-10"> 
     <p>Nachdem Sie die Registrierung abgesendet haben, erhalten Sie eine E-Mail mit einem Bestätigungslink. Sobald Sie Ihre E-Mail Adresse bestätigt haben, folgen Sie dem Link in der E-Mail um die Menüanmeldung durchführen zu können. 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-sm-offset-2 col-sm-10"> 
      <button type="submit" name="submit1" value="submit" class="btn btn-custom pull-right">Send</button> 
     </div> 
    </div> 
    </form> 
<!-- End # Registration Form --> 

Вот код моего register_teacher.php:

<?php 
    // Create connection credentials 
    $db_host = 'localhost'; 
    $db_name = 'DBNAME'; 
    $db_user = 'DBUSER'; 
    $db_pass = 'DBPASS'; 

// Create mysqli object 
$connection = new mysqli ($db_host, $db_user, $db_pass, $db_name); 

// Error Handler 
if ($connection->connect_error) { 
    printf ("Connection failed: %s\n", $connection->connect_error); 
    exit(); 
} 
?> 

<?php 


// Check if form is submitted 
if (isset ($_POST['submit1'])) { 
    $schul = mysqli_real_escape_string ($connection, $_POST['schul']); 
    $emai = mysqli_real_escape_string ($connection, $_POST['emai']); 
    $passwor = mysqli_real_escape_string ($connection, $_POST['passwor']); 
    $anred = mysqli_real_escape_string ($connection, $_POST['anred']); 
    $vornam = mysqli_real_escape_string ($connection, $_POST['vornam']); 
    $nachnam = mysqli_real_escape_string ($connection, $_POST['nachnam']); 
    $strass = mysqli_real_escape_string ($connection, $_POST['strass']); 
    $pl = mysqli_real_escape_string ($connection, $_POST['pl']); 
    $or = mysqli_real_escape_string ($connection, $_POST['or']); 
    $telefo = mysqli_real_escape_string ($connection, $_POST['telefo']); 




    // Validate Input 

$sql="INSERT INTO `teacher` (`schule`, `email`, `password`, `anrede`, `firstname`, `lastname`, `street`, `plz`, `city`, `phonenumber`) 
VALUES ('$schul', '$emai', '$passwor' '$anred', '$vornam', '$nachnam', '$strass', '$pl', '$or', '$telefo')"; 



$query1 = mysqli_query($connection, $sql); 
if(!mysqli_query($connection, $query1)) { 
    exit(header("Location: /teachercp/index.php")); 
} 


} 
?> 

подключение MySQL работает. Я также не получаю сообщение об ошибке. Каждый раз, когда я нажимаю «Регистрация», меня направляют на пустую страницу register_teacher.php! Переадресация на teachercp/index.php не работает, и в моей базе данных нет данных.

Любые предложения?

Спасибо, Крис

ответ

0

Не используйте умереть в запросе: И передать переменную в вашем заголовке:

mysqli_query($connection, 
    "INSERT INTO `teacher` (`schule`, `email`, `password`, `anrede`, `firstname`, `lastname`, `street`, `plz`, `city`, `phonenumber`) 
    VALUES ('$schul', '$emai', '$passwor' '$anred', '$vornam', '$nachnam', '$strass', '$pl', '$or', '$telefo')" 
    ); 
+0

, что не помогает. Я отредактировал мой код выше, как и у меня сейчас. Любые предложения по поводу того, что мне не хватает? –

+0

Пожалуйста, проверьте мой ответ @ChristophC. Это недостающая проблема. –

2

Я проверил ваш код на локальном сервере. Он показывает эту ошибку:

Warning: mysqli_error() expects exactly 1 parameter, 0 given in D:\xampp\htdocs\111\register_teacher.php on line 39 

Что я получил ошибку в ваш код:

Вы скучает запятой в строке 39. Смотрите мое изображение, где вы пропустили его. enter image description here

+0

@ Christoph C., пожалуйста, отметьте мой ответ как решение, если это решает вашу проблему. –

0

Я хотел бы предложить генерации SQL в переменной и тестирования, что, чтобы увидеть, если она выглядит правильно - еще лучше запустить оператор SQL, который генерируется в вашем тузд клиент/GUI/Хайди и т.д.:

$sql="INSERT INTO `teacher` (`schule`, `email`, `password`, `anrede`, `firstname`, `lastname`, `street`, `plz`, `city`, `phonenumber`) 
VALUES ('$schul', '$emai', '$passwor' '$anred', '$vornam', '$nachnam', '$strass', '$pl', '$or', '$telefo')"; 

exit($sql);/* Analyse this and test in heidi or similar */ 

$query1 = mysqli_query($connection, $sql); 
if(!mysqli_query($connection, $query1)) { 
    exit(header("Location: /teachercp/index.php")); 
} 
+0

Я изменил код на ваш код и попробовал его. Если я покину выход ($ sql), то после отправки формы я перенаправлен на register_teacher.php и вижу там текст «INSERT INTO ....». Когда я удаляю строку (как я ее сейчас), я перенаправляюсь в /teachercp/index.php, что хорошо, но ничего не попало в мою базу данных :(! Любые предложения, почему? –

+0

Правильно ли выглядит инструкция вставки - точно? – RamRaider

+0

ДА. Именно так, как мне кажется. См. Здесь: http://awesomescreenshot.com/05a569wqe8 –