Gå til innhold

Hjelp til registrering med SQL


Anbefalte innlegg

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 :)

Lenke til kommentar
Videoannonse
Annonse

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.

Lenke til kommentar

<?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
Lenke til kommentar
Gjest Slettet+142

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
Lenke til kommentar

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
Lenke til kommentar

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
Lenke til kommentar

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

Lenke til kommentar
Gjest Slettet+142

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
Lenke til kommentar

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';
?>

Lenke til kommentar

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...