[php] fout door e-mail adres

Pagina: 1
Acties:
  • 48 views sinds 30-01-2008

  • fromalk
  • Registratie: Januari 2004
  • Laatst online: 15-01 14:35
Hallo allemaal,

ik wil op een van men sites mensen hun e-mail adres laten opgeven en invoeren in men mysql database, nu wanneer men dat doet krijgt men de volgende fout:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '@fromalk.be, GRqodiFCcQ9cCmaCC31w)' at line 1Dus als ik het goed begrijp zorgt de @ in alle e-mail adressen voor een fout? Hoe kan ik dit probleem verhelpen of is er iets anders mis?
De query:

$email = htmlspecialchars($email);
$email = strip_tags($email);

mysql_query("INSERT INTO ahab_newsletter_signup (signup_ADRESS, signup_ACTIV_KEY) VALUES ($email, $gen_key)") or die (mysql_error());



Hopelijk kunnen jullie me helpen

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Normaal gesproken zorg je ervoor dat een string ook als string verstuurd wordt naar je database, dus met single quotes er 'omheen' ;)
offtopic:
tevens kan een mysql_real_escape() ook geen kwaad

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Probeer het eens op onderstaande manier. Dan kan je misschien beter zien waar het fout gaat.

PHP:
1
2
3
4
5
6
7
8
9
10
11
$error = ERROR_REPORTING(E_ALL);
 
$sql = "INSERT INTO ahab_newsletter_signup (signup_ADRESS, signup_ACTIV_KEY) VALUES ($email, $gen_key)";

$result = mysql_query($sql);

if (!$result) {
 echo "Uitvoeren SQl mislukt $sql<BR>";
 echo mysql_error();
 exit;
}

[ Voor 132% gewijzigd door seamus21 op 16-10-2005 18:13 ]

Always shoot for the moon. Even if you miss you will land among the stars...


  • GlowMouse
  • Registratie: November 2002
  • Niet online
seamus21 schreef op zondag 16 oktober 2005 @ 17:50:
Ok hier wat tips:

Gebruik htmlspecialchars als je de volgende tekens verwacht die je wilt bewaren:

& of "" of '' of < en >

Gebruik strip_tags als je php en html tags uit je adres wilt strippen.
Deze twee tips zou ik niet zonder meer geven: vaak sla je de data op zoals het aangeleverd wordt, en pas als je het wilt weergeven ga je dit soort trucs uithalen.

  • NoFearWizz
  • Registratie: Oktober 2002
  • Laatst online: 14:20
Dat is idd waar htmlspecialchars kan oook een probleem vormen.

en ik zou je VALUES wat aanpassen:
PHP:
1
2
3
4
5
$error = ERROR_REPORTING(E_ALL);
 
$sql = "INSERT INTO ahab_newsletter_signup (signup_ADRESS, signup_ACTIV_KEY) VALUES ('".$email."', '".$gen_key."')";

$result = mysql_query($sql);


een string moet je altijd met qoutes in voeren in je db query omdat er anders dus errors kunnen ontstaan.

edit: Als je zeker wil zijn dat er echt een email adres word ingevoegd kan je je $email controleren of er een @ in zit en een . na je @ dat kan je zo doen met explode.... daarmee ondervang je ook al wat invoer exploits.

[ Voor 27% gewijzigd door NoFearWizz op 16-10-2005 18:01 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Topic heeft helemaal niks met webdesign, (D)HTML, Javascript, graphics, 3D-rendering, Flash te maken en hoort dus ook bij de buren. :)

Probeer ook wat meer zelf-inzet te tonen. Lees voor het gemak ook even Welkom in P&W: FAQ en Beleid *updated: 20 mei* door :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Die 2 regels in je start post moet je omdraaien. htmlspecialchars maakt namelijk van alle speciale HTML chars (duh :P) entities. Dat maakt een call naar strip_tags daarna geheel overbodig (eerder zinloos) omdat de tags die aanwezig waren dan geen echte tags meer zijn. Je moet dus eerst strip_tags doen, en dan htmlspecialchars.

Dat is overigens geen antwoord op je probleem, die heeft Erkens gegeven.

Noushka's Magnificent Dream | Unity


  • whoami
  • Registratie: December 2000
  • Laatst online: 13:16
De foutmelding zegt het al zelf: je hebt een syntax error in je Sql statement.
Check het sql statement eens zoals het eruit ziet voordat je het naar de DB server stuurt, kijk wat er scheelt aan de syntax.
Zoals reeds verteld, en ook wel in de manual te vinden is, moet je quotes rond je strings zetten.

Dit is dus eigenlijk manual werk icm met een beetje basic programmren kennis, vandaar dat 'k 'm dicht doe

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.