错误500与功能脚本PHP

时间:2014-12-17 17:10:02

标签: php sql-server

我正在尝试在PHP中创建一个简单的注册脚本,将表单的输入添加到数据库中。加载时脚本会抛出错误500,Godaddy的客户支持告诉我这是我的脚本。作为参考,我使用Parallel的Plesk进行托管,使用MyLittleAdmin(MSSQL)作为DB(由GoDaddy提供)。

我写的脚本在另一台服务器上运行正常,但在GoDaddy提供的脚本上运行不正常。他们说这不是他们服务器的问题;它介于两者之间吗?

重要提示:评论从$link = db_contact();mysql_close($link);的所有内容都会使脚本正常工作。

脚本: “db.php”(连接到数据库):

<?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(表格和脚本)

    <?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";
  }
}


?>

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

用这个替换几行,甚至不能发布你的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());