나는 매우 좌절하는 문제가 있습니다. 나는 서버에 등록 양식을 보내는 클라이언트가 있습니다. 처리기는 PHP 파일입니다.데이터베이스 슬라이스 암호의 마지막 두 글자 (?!)
문제는 다음과 같습니다. 클라이언트가 양식 데이터를 PHP로 보내면 php는 mysql 데이터베이스에 저장합니다. 그러나 공간을 포함하는 이름을 제공하려고하면 왜 그런지 알지 못합니다. 데이터베이스에서 암호의 길이가 2로 줄어 듭니다.
나는 오랜 시간 동안 수색했지만 아무 것도 발견하지 못했습니다. 나는 광기의 가장자리에있어, 그래서 내가 문제를 찾을 수 있도록 도와달라고 부탁하고 싶다. PHP 코드 마침내 여기
function registration(){
var name = $('#regForm #regName').val();
var email = $('#regForm #regEmail').val();
var password = $('#regForm #regPassword').val();
if((password == "" || password == null) || (email == "" || email == null)){
navigator.notification.alert("Nem töltött ki minden adatot!", function(){}, "Figyelem!");
}else{
$.ajax({
url: host + "regisztracio.php",
type: 'post',
dataType: 'json',
data: {rendben:'ok', nev: name, mail: email, jelszo: password},
success: function(data){
if(data.ok){
navigator.notification.alert('Sikeresen regisztrált!\nMostmár be tud jelentkezni a saját felhasználónevével!',function(){
$.mobile.changePage("#loginScreen");
},'Üdvözöljük!');
}else{
navigator.notification.alert(data.uzenet,function(){},'Figyelem!');
if(data.help){
navigator.notification.confirm('Kívánja, hogy új jelszót küldjünk erre az email címre?',function(){
console.log(button);
}, 'Segíthetünk?', 'Igen, Nem');
}
}
},
error: function(err){
console.log('jajj');
navigator.notification.alert(err.message,function(){},'Hiba!');
}
});
}
}
그리고있다 :
<?php
if (isset($_POST['rendben'])) {
require("mysql.php");
$nev = $_POST['nev'];
$mail = $_POST['mail'];
$jelszo = $_POST['jelszo'];
if (empty($_POST['nev']) OR empty($_POST['mail']) OR empty($_POST['jelszo'])) {
$string = array("ok" => false, "uzenet" => "Nem töltött ki minden adatot!");
echo json_encode($string);
}else{
$sql = "SELECT *
FROM felhasznalok
WHERE mail = '{$mail}'";
$eredmeny = mysql_query($sql);
if (mysql_num_rows($eredmeny) == 0) {
$sql = "INSERT INTO felhasznalok
(nev, mail, jelszo, kep)
VALUES
('{$nev}', '{$mail}', '{$jelszo}', '{$kep}')";
mysql_query($sql);
$string = array("ok" => true);
echo json_encode($string);
}else{
$string = array("ok" => false, "help" => true, "uzenet" => "Ezzel az email címmel már regisztráltak, lehet, hogy elfelejtette a jelszavát?");
echo json_encode($string);
}
}
}?>
<!-- REGISTRATION -->
<div data-role="page" id="regScreen">
<div data-role="content">
<div class="profileCircle">
<img src="img/iskola.jpg" />
</div>
<div class="space"></div>
<form action="" method="post" id="regForm" name="regForm">
<input type="text" name="nev" id="regName" placeholder="Teljes név" data-mini="true"/>
<input type="email" name="mail" id="regEmail" placeholder="Email cím" data-mini="true"/>
<input type="password" name="jelszo" id="regPassword" placeholder="Jelszó" data-mini="true"/>
<input type="submit" data-inline="true" data-mini="true" value="Regisztráció" name="rendben" id="rendben" />
</form>
</div>
<a href="#loginScreen"><div class="circle leftBottom c1">
<img src="img/ikonok/vissza.png" />
</div></a>
</div>
이 클라이언트 측에서 등록을 처리해야하는 스크립트는 다음과 같습니다
등록 양식입니다필요한 경우 데이터베이스 테이블에서 사진을 업로드합니다.
도와 주시면 감사하겠습니다.
:
또한(그러나 이것은 관련이없는이다)는 PHP 측에서, 당신은 한 곳에서 답을 인코딩하는 약간에게 당신의 코드를 단순화 할 수 있음을 알 데이터베이스 테이블의 암호 필드는 얼마 동안 유지됩니까? – silkfire
데이터베이스에있는 일반 텍스트 비밀번호, 정말로? 또한, 당신이 우리를 위해 예제를 단순화했기 때문에 서버 측의 sanitisation이 부족하기를 바랍니다. :) 그것은 SQL injection에 크게 열려 있습니다. –
PHP의 '{$ somevar}'표현은 어떤 종류의 표기법입니까? – arkascha