ich bin meinen phpmailer in meiner Registrierungsseite und mit einfachem Ajax einschließlich Daten drücken Interaktion mit db ... alles in meinem localhost funktioniert gut, aber wenn ich auf dem Server laden, erhalte ich diese internen Fehler 500 htmlPHPMailer verursacht internen Fehler 500 mit Ajax
<script>
$(document).ready(function(){
$("#register-btn").click(function(){
var name=$("#hostel-name").val();
var email=$("#email").val();
var conf_email=$("#conf-email").val();
var password=$("#password").val();
$.ajax({
url:"functions/register.php",
data:{
name:name,
email:email,
conf_email:conf_email,
password:password
},
type:"POST",
success:function(data){
$("#result").html(data);
}
});
});
});
</script>
<section id="result">
</section>
<section class="row">
<section class="container">
<section class="col-md-offset-4 col-md-4" id="register">
<h1 class="title text-center" style="border-left:0;margin-top: -10px;"><a href="index">Accomonde</a></h1>
<h3 class="title">Sign Up</h3>
<br>
<section class="form-group col-md-12">
<label> Name</label>
<input type="text" class="form-control" name="hostel-name" id="hostel-name" autocomplete="off" placeholder="Hostel Name" required>
</section>
<section class="form-group col-md-12">
<label>Email</label>
<input type="email" class="form-control" name="email" id="email" autocomplete="off" placeholder="Your Email" required>
</section>
<section class="form-group col-md-12">
<label>Confirm Email</label>
<input type="email" class="form-control" name="conf-email" id="conf-email" autocomplete="off" placeholder="Confirm Your Email" required>
</section>
<section class="form-group col-md-12">
<label>Password</label>
<input type="password" class="form-control" name="password" id="password" autocomplete="off" placeholder="Your Password" required>
<br>
<section class="form-group">
<button class="form-control btn-primary" name="register" id="register-btn" ><span class="fa fa-paper-plane"> Sign Up</span></button>
</section>
<section class="form-group">
<ul class="list-inline">
<li class="pull-left">Already Have an Account?</li>
<li class="pull-right"><a href="login">Log in!</a> </li>
</ul>
</section>
</section>
</section>
</section>
`` `
und das ist mein pHP-Skript
<?php
require_once '../libs/phpmailer/PHPMailerAUtoload.php';
try{
include '../database/connection.php';
$hostel_name=$_POST['name'];
$email=filter_var($_POST['email'],FILTER_VALIDATE_EMAIL);
$password=hash('sha256',$_POST["password"]);
$confemail=filter_var($_POST['conf_email'],FILTER_VALIDATE_EMAIL);
$confirm_code=md5(uniqid(rand()));
$user_id=md5(rand(0,10000));
//new block added
if($name="" or $email=="" || $password=="" || $confemail=="" ){echo '<p class="alert alert-danger text-center">Please Make Sure All Fields Are Filled <span class="close pull-right"><span class="close pull-right"> <a href="#" >×</a></span></p>';}
elseif($email==$confemail){
$query=$dbc->query("select * from users where email='$email'");
if($result=$query->fetch(PDO::FETCH_NUM)==1){ echo '
<p class="alert alert-danger text-center">We already have someone with that email <span class="close pull-right"><span class="close pull-right"> <a href="#" >×</a></span></p>'; }elseif($result=$query->fetch(PDO::FETCH_NUM)==0){
$data_result=$dbc->query("insert into users(hostel_name,email,password,confirm_code,user_id) values('$hostel_name','$email','$password','$confirm_code','$user_id')");
if($data_result){
$m = new PHPMailer;
$m ->isSMTP();
$m->SMTPAuth=true;
// debugging
// $m->SMTODebug=1
// endof debug
$m->Host="smtp.gmail.com";
$m->Username="[email protected]";
$m->Password="lollypop28:)";
$m->SMTPSecure='ssl';
$m->Port=465;
$m->isHtml(true);
$m->Subject = 'Welcome to Efie';
ob_start();
include '../views/email/register-email.php';
$body = ob_get_contents();
$m->msgHTML($body, dirname(__FILE__));
$m->FromName="Efie Ghana";
$m->AddAddress($email,$hostel_name);
ob_end_clean();
$m->send();
echo '<p class="alert alert-success text-center error-message"> You\'re almost there! Check your inbox to activate your account.</p>';
}
}
}
}catch(Exception $e){echo '<p class="alert alert-danger text-center error-message">Something is not right <span class="pull-right close"> <a href="#" >×</a></span></p>';}
$dbc=null;
?>
` ``
Bitte nicht __roll Ihr own__ Passwort-Hashing. PHP bietet [ 'password_hash()'] (http://php.net/manual/en/function.password-hash.php) und [ 'password_verify()'] (http://php.net/manual/ en/function.password-verify.php) bitten sie benutzen. Und hier sind einige [gute Ideen über Passwörter] (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) Wenn Sie eine PHP-Version vor 5.5 verwenden [gibt es ein Kompatibilitätspaket hier] (https :; 'machen die Spalte' auto increment' statt – RiggsFolly
nicht selbst '$ user_id = md5 (rand (0,10000)) erzeugen 500 Fehler. Wenn ich raten müsste würde ich sagen, dass Ihre relativen Pfade zu der Datenbankverbindung oder PHPMailerAUtoload auf Ihrem lokalen Host korrekt sind, aber nicht auf dem Server. – RiggsFolly
Überprüfen Sie Ihre Server-Logs, den Grund für das finden //github.com/ircmaxell/password_compat) – bassxzero