Gå til innhold

Hjelp til registrering med SQL


Anbefalte innlegg

Skrevet

Jeg har nå klart å koke sammen et registerings-script som lager info i databasen, ved hjelp av diverse guider og poster her på forumet.

 

Scriptet jeg har kommet fram til funker fint, og er som følger:

<?php
if($_POST['submit']) {

include 'config.php';

$navn = htmlspecialchars(strip_tags($_POST['navn']));
$email = htmlspecialchars(strip_tags($_POST['email']));
$plassering = htmlspecialchars(strip_tags($_POST['plassering']));

$mysql_query = "insert into $mysql_tabell set email='$email', navn='$navn', plassering='$plassering'";
if(mysql_query($mysql_query)) { echo("Din plassering er nå reservert!"); }
else { echo("En feil oppstod, din plassering ble ikke reservert!<br /><a href'$side'>Tilbake</a>"); }
}
else {
echo("
<form action=\"\" method=\"post\">
<p>Navn:<br /><input type=\"text\" size=\"40\" name=\"navn\" maxlength=\"22\" /></p>
<p>E-mail:<br /><input type=\"text\" size=\"40\" name=\"email\" maxlength=\"22\" /></p>
<p>Plassering:<br /><input type=\"text\" size=\"40\" name=\"plassering\" maxlength=\"2\" /></p>
<p><input type=\"submit\" value=\"Reserver\" name=\"submit\" /></p>
</form>
");
}

include 'print.php';
?>

 

Et par småting jeg trenger hjelp med er:

Feilmelding hvis et felt er tomt

Feilmelding hvis det ikke er fylt inn en "@" i email feltet

Feilmelding hvis plasseringen er valgt tidligere

 

 

De to første problemene har jeg vært borti tidligere, men da holdt jeg på med et mail script. Og den løsningen fungerer ikke nå.

 

 

Hadde satt stor pris på hjelp med dette :)

Videoannonse
Annonse
Gjest Slettet+142
Skrevet

er ikke INSERT-syntaksen som dette?

INSERT INTO tabell (felt1, feil2, ...) VALUES('felt1verdi', 'felt2verdi', ...);

Skrevet

Du kan se pa empty() for det forste spm ditt.

Denne kan brukes for a se om eposten er gyldig

if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)

Du ma bruke SELECT plassering FROM tabell WHERE tabell='$plassering'

og sa sjekke om mysql_num_rows er mer enn 1

Skrevet

Har knota i et par timer nå, men får det ikke til :p

 

Du kan se pa empty() for det forste spm ditt.

Det var den jeg prøvde på mailscriptet, men det funka ikke. Den bare sa en melding om at feltene ikke var fylt ut, men registrerte alikevel skjemaet i databasen.

 

Denne kan brukes for a se om eposten er gyldig

if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)

Det var den jeg prøvde på mailscriptet, men det funka ikke. Den bare sa en melding om at e-mail adressen er ugyldig, men registrerte alikevel skjemaet i databasen.

 

Du ma bruke SELECT plassering FROM tabell WHERE tabell='$plassering'

og sa sjekke om mysql_num_rows er mer enn 1

8712388[/snapback]

Jeg forstod ingenting av det den siden prøvde å forklare meg :p

 

Hadde satt stor pris på om noen kunne postet hele koden som skal settes inn, eller om dere setter den inn, og poster hele scriptet på nytt.

Skrevet (endret)

<?php
if($_POST['submit']) {

$sql = mysql_query( "SELECT plassering FROM tabell WHERE tabell='$plassering'" );

if( empty( $felt ) ) {
echo 'feltet er ikke fylt ut';
}

elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email) ) {
echo 'feil email';
}

elseif( mysql_num_rows( $sql ) > 1 ) {
echo 'Allerede registrert';
}

else {


include 'config.php';

$navn = htmlspecialchars(strip_tags($_POST['navn']));
$email = htmlspecialchars(strip_tags($_POST['email']));
$plassering = htmlspecialchars(strip_tags($_POST['plassering']));

$mysql_query = "insert into $mysql_tabell set email='$email', navn='$navn', plassering='$plassering'";
if(mysql_query($mysql_query)) { echo("Din plassering er nå reservert!"); }
else { echo("En feil oppstod, din plassering ble ikke reservert!<br /><a href'$side'>Tilbake</a>"); }
}
else {
echo("
<form action=\"\" method=\"post\">
<p>Navn:<br /><input type=\"text\" size=\"40\" name=\"navn\" maxlength=\"22\" /></p>
<p>E-mail:<br /><input type=\"text\" size=\"40\" name=\"email\" maxlength=\"22\" /></p>
<p>Plassering:<br /><input type=\"text\" size=\"40\" name=\"plassering\" maxlength=\"2\" /></p>
<p><input type=\"submit\" value=\"Reserver\" name=\"submit\" /></p>
</form>
");
}

include 'print.php';
?>

 

elns

Endret av Ståle
Skrevet

Hmm... Da får jeg:

 

Parse error: syntax error, unexpected '{' in C:\wamp\www\lansystem\index.php on line 10

 

Som er

elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email) {

Gjest Slettet+142
Skrevet (endret)

elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {

 

edit

Treeeeig :wallbash:

Endret av Slettet+142
Skrevet (endret)

Og da får jeg:

 

Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\lansystem\index.php on line 31

 

som er

else {

 

Scritpet til nå er:

 

 

<?php
if($_POST['submit']) {

$sql = mysql_query( "SELECT plassering FROM tabell WHERE tabell='$plassering'" );

if( empty( $felt ) ) {
echo 'feltet er ikke fylt ut';
}

elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo 'feil email';
}

elseif( mysql_num_rows( $sql ) > 1 ) {
echo 'Allerede registrert';
}

else {


include 'config.php';

$navn = htmlspecialchars(strip_tags($_POST['navn']));
$email = htmlspecialchars(strip_tags($_POST['email']));
$plassering = htmlspecialchars(strip_tags($_POST['plassering']));

$mysql_query = "insert into $mysql_tabell set email='$email', navn='$navn', plassering='$plassering'";
if(mysql_query($mysql_query)) { echo("Din plassering er nå reservert!"); }
else { echo("En feil oppstod, din plassering ble ikke reservert!<br /><a href'$side'>Tilbake</a>"); }
}
else {
echo("
<form action=\"\" method=\"post\">
<p>Navn:<br /><input type=\"text\" size=\"40\" name=\"navn\" maxlength=\"22\" /></p>
<p>E-mail:<br /><input type=\"text\" size=\"40\" name=\"email\" maxlength=\"22\" /></p>
<p>Plassering:<br /><input type=\"text\" size=\"40\" name=\"plassering\" maxlength=\"2\" /></p>
<p><input type=\"submit\" value=\"Reserver\" name=\"submit\" /></p>
</form>
");
}

include 'print.php';
?>

 

 

 

Men hvis jeg la til en ekstra "}" over den, så funker det

Men når jeg da trykker på "Reserver" så får jeg opp dette:

 

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\lansystem\index.php on line 4

 

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\lansystem\index.php on line 4

 

Som er:

$sql = mysql_query( "SELECT plassering FROM tabell WHERE tabell='$plassering'" );

Endret av lefsaker
Skrevet (endret)

Da fikk jeg vekk error meldingene.

Var meg som hadde glemt å inkludere config.php, som kobler til databasen, over det nye som ble satt inn i scriptet.

 

Nå har jeg en annen feilmelding :p Den kommer hver gang, og man kan fortsatt velge samme plasseringen 2 ganger.

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\lansystem\index.php on line 18

 

 

Som er:

elseif( mysql_num_rows( $sql ) > 1 ) {

 

$sql = mysql_query( "SELECT plassering FROM tabell WHERE tabell='$plassering'" );

Endret av lefsaker
Skrevet (endret)

Du ma nodvendigvis endre query-en med det du har i din database.

 

ogsa kanskje ha

elseif( mysql_num_rows( $sql ) > 0 ) {

 

istedenfor pa den andre. liten glipp av meg (a)

Endret av Ståle
Skrevet

$sql er jo:

$sql = mysql_query( "SELECT plassering FROM tabell WHERE tabell='$plassering'" );

Stemmer ikke det?

 

Og

elseif( mysql_num_rows( $sql ) > 0 ) {

Hjalp ikke

Gjest Slettet+142
Skrevet

Legg dette til under mysql_query(...):

 

echo mysql_error();

Skrevet

det jeg mente var at du ma sette inn dine egne data som du har gjort her

 

$mysql_query = "insert into $mysql_tabell set email='$email', navn='$navn', plassering='$plassering'";

 

grunnen til at jeg ikke hadde gjort det var fordi jeg er lat og har en matteprove jeg burde ove til. :p

Skrevet

$mysql_query = "insert into $mysql_tabell set email='$email', navn='$navn', plassering='$plassering'";

 

Er jo i scriptet allerede, og den stemmer.

Gjest Slettet+142
Skrevet
Legg dette til under mysql_query(...):

 

echo mysql_error();

8713429[/snapback]

Gjest Slettet+142
Skrevet (endret)

Kan du være snill å gjøre det som Ståle ber deg å gjøre?

Eller det jeg ber deg gjøre forsåvidt.

 

$sql = mysql_query( "SELECT plassering FROM tabell WHERE tabell='$plassering'" );

Den SQL-en over. Du må endre den WHILE-kondisjonen til å være riktig.

 

[edit]:

 

Det du må gjøre, er å gjøre den linjen i CODE-tagen over om til dette:

 

$sql = mysql_query( "SELECT plassering FROM tabell WHERE plassering='$plassering'" );

Endret av Slettet+142
Skrevet

jeg mener jeg har fikset det na

 

<?php
include 'config.php';

if($_POST['submit']) {

$sql = mysql_query( "SELECT plassering FROM $mysql_tabell WHERE plassering='$plassering'" );

if( empty( $felt ) ) {
echo 'feltet er ikke fylt ut';
}

elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo 'feil email';
}

elseif( mysql_num_rows( $sql ) > 0 ) {
echo 'Allerede registrert';
}

else {



$navn = htmlspecialchars(strip_tags($_POST['navn']));
$email = htmlspecialchars(strip_tags($_POST['email']));
$plassering = htmlspecialchars(strip_tags($_POST['plassering']));

$mysql_query = "insert into $mysql_tabell set email='$email', navn='$navn', plassering='$plassering'";
if(mysql_query($mysql_query)) { echo("Din plassering er nå reservert!"); }
else { echo("En feil oppstod, din plassering ble ikke reservert!<br /><a href'$side'>Tilbake</a>"); }
}
else {
echo("
<form action=\"\" method=\"post\">
<p>Navn:<br /><input type=\"text\" size=\"40\" name=\"navn\" maxlength=\"22\" /></p>
<p>E-mail:<br /><input type=\"text\" size=\"40\" name=\"email\" maxlength=\"22\" /></p>
<p>Plassering:<br /><input type=\"text\" size=\"40\" name=\"plassering\" maxlength=\"2\" /></p>
<p><input type=\"submit\" value=\"Reserver\" name=\"submit\" /></p>
</form>
");
}

include 'print.php';
?>

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...