-1

I'm trying to create a simple registration script in PHP that adds the input of the form to a database. The script throws an error 500 when loading, and Godaddy's customer support tells me it's my script. For reference, I'm using Parallel's Plesk for hosting and MyLittleAdmin (MSSQL) for the DB (as provided by GoDaddy).

The script I've written works fine on another server, but not on the one provided by GoDaddy. They say it's not an issue with their server; could it be somewhere inbetween?

Important note: commenting out everything from $link = db_contact(); to mysql_close($link); makes the script work fine otherwise.

Scripts: "db.php" (connecting to database):

<?php  
$db_server = "/";
$db_user = "Milan";
$db_pass = "/";
$db_name = "/";

function db_contact() {

global $db_server, $db_user, $db_pass, $db_name;
// maak contact met de sql server
$db = mysql_connect($db_server,$db_user,$db_pass) or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
// selecteer de juiste database
mysql_select_db($db_name,$db) or die("Fout: Het openen van de database is mislukt!");

// geef een handle naar de database terug
return $db; 
}
?>  

registreren.php (form & script)

    <?php
    error_reporting(E_ERROR | E_WARNING | E_PARSE);

    include "db.php";
    ?>

<!DOCTYPE HTML>

<html>
<head>
</head>
<body>



        <form action="registreren.php" method="post">
        <table>
                            <tr>
                                        <td>Voornaam *</td> <td><input type="text" name="voornaam" /></td>
                                </tr>       
                                <tr>
                                        <td>Tussenvoegsel</td> <td><input type="text" name="tussenvoegsel" /></td>
                                <tr/>
                                <tr>        
                                        <td>Achternaam *</td> <td><input type="text" name="achternaam" /></td>
                                </tr>       
                                <tr>        
                                        <td>Email-adres *</td> <td><input type="text" name="email" /></td>
                                </tr>       
                                <tr>        
                                        <td>Telefoonnummer</td> <td><input type="text" name="telefoonnummer" /></td>
                                </tr>       
                                <tr>        
                                        <td>Woonplaats *</td> <td><input type="text" name="woonplaats" /></td>
                                </tr>       
                                <tr>        
                                <td>Geboortedatum *</td> <td><input type=date name="geboortedatum" step=1 min=1990-01-01 max=2010-31-12></td>
                                </tr>       
                                <tr>        
                                        <td>Geslacht *</td> <td><input type="radio" name="geslacht" value="man">Man <input type="radio" name="geslacht" value="vrouw">Vrouw</td>
                                </tr>
                                <tr>
                                        <td>School 
                                        <td>
                                           <select name="school">
                                                          <option value="Jan van Brabant College Molenstraat">Jan van Brabant College Molenstraat</option>
                                                          <option value="Jan van Brabant College">Jan van Brabant College Deltaweg</option>
                                                            <option value="Knippenberg College">Knippenberg College</option>
                                                          <option value="Carolus Borromeus College">Carolus Borromeus College</option>
                                   </select>
                                        </td>    
                                </tr>
                                <tr>
                                      <td>Niveau</td>
                                    <td>
                                           <select name="niveau">
                                                            <option value="VMBO-T">VMBO-T</option>
                                                            <option value="VMBOT/HAVO">VMBO-T/HAVO</option>
                                                          <option value="HAVO">HAVO</option>
                                                            <option value="HAVO/VWO">HAVO/VWO</option>
                                                            <option value="VWO">VWO</option>
                                             </select>
                                        </td>    
                            </tr>
                                <tr>
                                        <td>Leerjaar</td>
                                        <td>
                                             <select name="leerjaar">
                                                  <option value="1">Leerjaar 1</option>
                                                  <option value="2">Leerjaar 2</option>
                                                  <option value="3">Leerjaar 3</option>
                                                  <option value="4">Leerjaar 4</option>
                                                  <option value="5">Leerjaar 5</option>
                                                  <option value="6">Leerjaar 6</option>
                                 </select>
                                        </td>    
                            </tr> 
                                <tr>
                                    <td>Velden met een * zijn verplicht.</td>
                                </tr>
        </table>
                  <input type="submit" name="submit" value="Registreren" />

        </form>

</body>
</html>
    <?php
    if(isset($_POST["submit"])) {
      $foutMelding = " "; //Deze variabele wordt gevuld met error messages en dan naar de user gestuurd.
  //Naamgegevens in variabelen veranderd
  $voornaam = $_POST["voornaam"];
  $tussenvoegsel = $_POST["tussenvoegsel"];
  $achternaam = $_POST["achternaam"];
  //Persoonlijke gegevens in variabelen veranderd
  $email = $_POST["email"];
  $telefoonnummer = $_POST["telefoonnummer"];
  $woonplaats = $_POST["woonplaats"];
    $geboorteDatum = $_POST["geboortedatum"];
  $geslacht = $_POST["geslacht"];
  //Schoolgegevens in variabelen veranderd
  $school = $_POST["school"];
  $niveau = $_POST["niveau"];
  $leerjaar = $_POST["leerjaar"];
  //Controleert of verplichte velden ingevuld zijn.
  if(empty($voornaam) OR empty($achternaam) OR empty($email) OR empty($woonplaats)OR empty($geboorteDatum) OR empty($geslacht)) {
        $foutMelding = "Vergeet niet alle verplichte velden in te vullen.";
  }
  else { //Als alle verplichte velden ingevuld zijn, wordt gecontroleerd of alle invoeren geldig zijn. Fouten worden opgeslagen in $foutMelding.
        //Naamgegevens
        $voornaamPattern = "[a-zA-Z]{1,20}";
      $tussenvoegselPattern = "[a-zA-Z ]{0,6}";
      $achternaamPattern = "[a-zA-Z ]{1,30}";

  if(!preg_match("/$voornaamPattern/", $voornaam)) {
        $foutMelding .= "Een voornaam bestaat alleen uit letters.<br>";
  }
  if(!preg_match("/$tussenvoegselPattern/", $tussenvoegsel)) {
        $foutMelding .= "Zorg dat je een geldig tussenvoegsel invoert.<br>";
  }
  if(!preg_match("/$achternaamPattern/", $achternaam)) {
      $foutMelding .= "Een achternaam bestaat alleen uit letters.<br>";
  }
    //Overige gegevens    
  if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { //Er wordt gecontroleerd of het opgegeven emailadres de correcte format heeft.
      $foutMelding .= "Je opgegeven email-adres is geen geldig adres.<br>"; 
  }          
  //Schoolgegevens      
  //!Niet vergeten: onmogelijke combinaties VMBO-T/HAVO en HAVO/VWO ingeven! 
  if(($niveau == "VMBO-T" && $leerjaar > 4) OR ($niveau == "HAVO" && $leerjaar > 5)) {//Hier worden onmogelijke niveau-klascombinaties uitgesloten
        $foutMelding .= "Deze klas bestaat niet voor dit niveau!";              
  }
}
if($foutMelding == " ") {
     //Begin email-verificatieproces.
     //We maken een 'hash' voor veiligheid en een random wachtwoord dat de gebruiker voor de eerste keer gebruikt.         
      $hash = md5(rand(0,1000)); //32-karakters code 
      $wachtwoord = rand(1000,5000);
      $link = db_contact(); 


    $query = "INSERT INTO gebruiker (email, wachtwoord, voornaam, tussenvoegsel, achternaam, school, niveau, klas, telefoonnummer, woonplaats, geboortedatum, geslacht, hash, actief) VALUES ($email, (md5($wachtwoord)), $voornaam, $tussenvoegsel,        $achternaam, $school, $niveau, $leerjaar, $telefoonnummer, $woonplaats, $geboorteDatum, $geslacht, $hash, 0)";

    $result = mysql_query($query,$link) or die ("Kan de query niet uitvoeren");
    mysql_close($link);                 
                //We sturen een email naar de gebruiker met de mail() functie. 
      $to      = $email; //Ontvanger van de email
      $subject = 'Dusjezoektbijles.nl || Verificatie'; // Onderwerp van de email. 
      $message = '

Bedankt voor het aanmelden!
Je account is gecreëerd en je kunt inloggen met de volgende gegevens (nadat je je account geactiveerd hebt met de link hier beneden):




      ---------------------------------------------------------
      Gebruikersnaam: '.$email.'
      Wachtwoord: '.$wachtwoord.'
      ---------------------------------------------------------

      Klik op de volgende link om je account te activeren:
      http://www.dusjezoektbijles.nl/verifieren.php?email='.$email.'&hash='.$hash.'

      '; //Het bericht in de mail

      $headers = 'From:noreply@dusjezoektbijles.nl' . "\r\n"; // Set from headers
  mail($to, $subject, $message, $headers); // Verstuur de email 
      header('Location: Geregistreerd.php');

  }
  else {
     echo"De volgende fouten werden gevonden bij het aanmaken van je profiel:<br><br><br>$foutMelding";
  }
}


?>

Can anyone help me out?

Mill3n
  • 11
  • 1
  • 1
    Please, [don't use `mysql_*` functions](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), They are no longer maintained and are [officially deprecated](https://wiki.php.net/rfc/mysql_deprecation). Learn about [prepared statements](http://en.wikipedia.org/wiki/Prepared_statement) instead, and use [PDO](http://us1.php.net/pdo) or [MySQLi](http://us1.php.net/mysqli). – Jay Blanchard Dec 17 '14 at 17:10
  • on to which database you are trying to connect? MySql or MSSQL? – fortune Dec 17 '14 at 17:31
  • @JayBlanchard Could this cause an error 500 though? I realize it is worth fixing. – Mill3n Dec 17 '14 at 17:51
  • @fortune I'm trying to connect to MSSQL – Mill3n Dec 17 '14 at 17:51
  • If you're trying to connect to MSSQL with MySQL functions it will not work. PHP makes functions available for [MSSQL](http://php.net/manual/en/book.mssql.php). – Jay Blanchard Dec 17 '14 at 17:55
  • http://php.net/manual/en/function.mssql-connect.php – fortune Dec 17 '14 at 18:11

1 Answers1

1

Replace few lines with this,even don't work post your sql:

$query = "INSERT INTO 'gebruiker' ('email', 'wachtwoord', 'voornaam', 'tussenvoegsel', 'achternaam', 'school', 'niveau', 'klas', 'telefoonnummer', 'woonplaats', 'geboortedatum', 'geslacht', 'hash', 'actief') VALUES ($email, (md5($wachtwoord)), $voornaam, $tussenvoegsel, $achternaam, $school, $niveau, $leerjaar, $telefoonnummer, $woonplaats, $geboorteDatum, $geslacht, $hash, 0)";
mysql_query($query) or die("error in $query == ---->".mysql_error());