lefsaker Skrevet 26. mai 2007 Rapporter Del Skrevet 26. mai 2007 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
Gjest Slettet+142 Skrevet 26. mai 2007 Rapporter Del Skrevet 26. mai 2007 er ikke INSERT-syntaksen som dette? INSERT INTO tabell (felt1, feil2, ...) VALUES('felt1verdi', 'felt2verdi', ...); Lenke til kommentar
Ståle Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 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 Lenke til kommentar
lefsaker Skrevet 27. mai 2007 Forfatter Rapporter Del Skrevet 27. mai 2007 Har knota i et par timer nå, men får det ikke til 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 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
Ståle Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 (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 27. mai 2007 av Ståle Lenke til kommentar
lefsaker Skrevet 27. mai 2007 Forfatter Rapporter Del Skrevet 27. mai 2007 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) { Lenke til kommentar
Ståle Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 manglet en ) fikset na Lenke til kommentar
Gjest Slettet+142 Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 (endret) elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) { edit Treeeeig Endret 27. mai 2007 av Slettet+142 Lenke til kommentar
lefsaker Skrevet 27. mai 2007 Forfatter Rapporter Del Skrevet 27. mai 2007 (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 27. mai 2007 av lefsaker Lenke til kommentar
lefsaker Skrevet 27. mai 2007 Forfatter Rapporter Del Skrevet 27. mai 2007 (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 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 27. mai 2007 av lefsaker Lenke til kommentar
Ståle Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 (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 27. mai 2007 av Ståle Lenke til kommentar
lefsaker Skrevet 27. mai 2007 Forfatter Rapporter Del Skrevet 27. mai 2007 $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 Lenke til kommentar
Gjest Slettet+142 Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 Legg dette til under mysql_query(...): echo mysql_error(); Lenke til kommentar
Ståle Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 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. Lenke til kommentar
lefsaker Skrevet 27. mai 2007 Forfatter Rapporter Del Skrevet 27. mai 2007 $mysql_query = "insert into $mysql_tabell set email='$email', navn='$navn', plassering='$plassering'"; Er jo i scriptet allerede, og den stemmer. Lenke til kommentar
Gjest Slettet+142 Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 Legg dette til under mysql_query(...): echo mysql_error(); 8713429[/snapback] Lenke til kommentar
Ståle Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 Ja, men pa $sql = mysql_query( "SELECT plassering FROM tabell WHERE tabell='$plassering'" ); skal du sette inn dine egne ting Lenke til kommentar
lefsaker Skrevet 27. mai 2007 Forfatter Rapporter Del Skrevet 27. mai 2007 Jeg tror jeg monger litt nå Her er siden: http://lefsaker.no-ip.org/lansystem/ Her er scriptet: http://lefsaker.no-ip.org/lansystem/index.phps Lenke til kommentar
Gjest Slettet+142 Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 (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 27. mai 2007 av Slettet+142 Lenke til kommentar
Ståle Skrevet 27. mai 2007 Rapporter Del Skrevet 27. mai 2007 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå