Gå til innhold

Hjelp med registreringsskjema


Anbefalte innlegg

Videoannonse
Annonse
Bare bra å kunne være til hjelp :)

Håper du lærte noe av det og da ;)

 

EDIT: Var en liten feil i siste scriptet mitt, glemte å avslutte div..

Scriptet i posten er redigert og oppdatert..

Kan være lurt å oppdatere til nyeste versjon :)

7551405[/snapback]

Fikset det med den diven selv.. :p

Og ja, jeg lærte noe. Tusen takk.. :)

Lenke til kommentar
Det heter captcha. Finnes flere varianter. Men hvis du ikke trenger det så veldig spam sikkert holder det ofte med et spørsmål som alle kan svare på.

7552837[/snapback]

Ja, og på norske sider er det ofte enkelt med spørsmål som «hva er resultatet av to plusset sammen med syv?»

 

Burde ikke være så vanskelig å lage et array med ordene null→ti, og ta to tilfeldige ut fra det, samtidig som posisjonene deres plusses sammen for å finne svaret.

Lenke til kommentar

Hehe, la til et sykt enkelt anti bot script jeg :)

 

<?php
session_start(); // Om du har denne i index eller noe sånt kan det være du må fjerne denne!
if(isset($_POST['submit'])) {

$mysql_host = "localhost"; // mySQL Host eller ip
$mysql_user = "brukernavn"; // mySQL brukernavn
$mysql_pass = "passord"; // mySQL passord
$mysql_db    = "database"; // mySQL database navn
$mysql_tabell = "registrerte_brukere"; // mySQL tabell (trenger ikke endres)
$mysql_link   = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!");
mysql_select_db ($mysql_db) or die ("ERROR!");

$resultat  = htmlspecialchars(strip_tags($_POST['resultat']));
$svar  = $_SESSION['random1']+$_SESSION['random2'];
$navn  	= htmlspecialchars(strip_tags($_POST['navn']));
$nick  	= htmlspecialchars(strip_tags($_POST['nick']));

if($resultat == $svar) {
$mysql_query = "insert into $mysql_tabell set nick='$nick', navn='$navn'";
if(mysql_query($mysql_query)) { echo("Din informasjon ble lagt til i databasen!"); }
else { echo("En feil oppstod, din informasjon ble ikke lagt til i databasen!"); }
}
else { echo("Feil svar! Prøv igjen!");
}
}
else {
$random1 = rand(1, 20);
$_SESSION['random1'] = $random1;
$random2 = rand(1, 20);
$_SESSION['random2'] = $random2;
echo("
<form action=\"\" method=\"post\">
<p>Navn:<br /><input type=\"text\" size=\"40\" name=\"navn\" /></p>
<p>Kallenavn:<br /><input type=\"text\" size=\"40\" name=\"nick\" /></p>
<p>Hvor mye er $random1 + $random2? <input type=\"text\" size=\"5\" name=\"resultat\" /></p>
<p><input type=\"submit\" value=\"Legg til i databasen\" name=\"submit\" /></p>
</form>
");
}
?>

 

Husk å fjerne session_start(); og sette denne over <html> taggen (<?php session_start(); ?><html>) om man inkluderer siden i en annen..

Endret av goggen90
Lenke til kommentar

<?php
$mysql_host = "localhost"; // mySQL Host eller ip
$mysql_user = "brukernavn"; // mySQL brukernavn
$mysql_pass = "passord"; // mySQL passord
$mysql_db    = "database"; // mySQL database navn
$mysql_tabell = "registrerte_brukere"; // mySQL tabell
$mysql_link   = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!");
mysql_select_db ($mysql_db) or die ("ERROR!");

$sql = "SELECT * FROM $mysql_tabell ORDER BY id DESC";
$query = mysql_query($sql);

while($rad = mysql_fetch_array($query)) {
$navn = $rad['navn'];
$nick = $rad['nick'];

echo "
<div style=\"border-bottom: 1px dotted #B0B0B0; border-left: 5px solid #B0B0B0;\">
<b>Navn:</b> $navn - <b>Nick:</b> $nick</div>";
}
?>

 

DESC eller ASC, husker ikke helt :blush:

Lenke til kommentar

Tusen takk :D

Tror jeg begynner å skjønne dette her nå!

Men hvordan skal jeg få se de registrerte folkene? Jeg bruker phpMyAdmin

 

Edit: fant ut hvordan jeg skal se det, men kan man bare registrere seg én gang per IP-adresse eller noe sånt? Prøvde en gang til, men da får jeg bare den feilmeldinga om at den ikke ble lagt inn.

Endret av Andy-Pandy
Lenke til kommentar

<?php
session_start(); // Om du har denne i index eller noe sånt kan det være du må fjerne denne!
$ip = $_SERVER['REMOTE_ADDR'];

$mysql_host = "localhost"; // mySQL Host eller ip
$mysql_user = "brukernavn"; // mySQL brukernavn
$mysql_pass = "passord"; // mySQL passord
$mysql_db    = "database"; // mySQL database navn
$mysql_tabell = "registrerte_brukere"; // mySQL tabell (trenger ikke endres)
$mysql_link   = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!");
mysql_select_db ($mysql_db) or die ("ERROR!");

$ipresultat = mysql_query("SELECT * FROM $mysql_tabell WHERE ip='$ip'");


$matchende_ip = mysql_num_rows($ipresultat);
if ($matchende_ip==0) {
if(isset($_POST['submit'])) {
$resultat  = htmlspecialchars(strip_tags($_POST['resultat']));
$svar  = $_SESSION['random1']+$_SESSION['random2'];
$navn   = htmlspecialchars(strip_tags($_POST['navn']));
$nick   = htmlspecialchars(strip_tags($_POST['nick']));

if($resultat == $svar) {
$mysql_query = "insert into $mysql_tabell set nick='$nick', navn='$navn', ip='$ip'";
if(mysql_query($mysql_query)) { echo("Din informasjon ble lagt til i databasen!"); }
else { echo("En feil oppstod, din informasjon ble ikke lagt til i databasen!"); }
}
else { echo("Feil svar! Prøv igjen!");
}
}
else {
$random1 = rand(1, 20);
$_SESSION['random1'] = $random1;
$random2 = rand(1, 20);
$_SESSION['random2'] = $random2;
echo("
<form action=\"\" method=\"post\">
<p>Navn:<br /><input type=\"text\" size=\"40\" name=\"navn\" /></p>
<p>Kallenavn:<br /><input type=\"text\" size=\"40\" name=\"nick\" /></p>
<p>Hvor mye er $random1 + $random2? <input type=\"text\" size=\"5\" name=\"resultat\" /></p>
<p><input type=\"submit\" value=\"Legg til i databasen\" name=\"submit\" /></p>
</form>
");
}}
else { 
echo "IPen du sitter på nå ($ip) har blitt registrert med brukeren";
echo mysql_result($ip_resultat, 0, "nick");
}
?>

 

Du må lage en ny kollonne i tabellen du bruker, og kalle den ip :)

Endret av Stale2k
Lenke til kommentar

Men det virket jo før...

 

Du trengte ikke endre noen av disse altså fra det du hadde før.

 

$mysql_host = "localhost"; // mySQL Host eller ip

$mysql_user = "brukernavn"; // mySQL brukernavn

$mysql_pass = "passord"; // mySQL passord

$mysql_db = "database"; // mySQL database navn

$mysql_tabell = "registrerte_brukere"; // mySQL tabell (trenger ikke endres)

$mysql_link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!");

mysql_select_db ($mysql_db) or die ("ERROR!");

Lenke til kommentar

Veit det, men jeg ble litt forvirret når jeg hadde 2 av de kodene der, så jeg bestemte meg for å ta bort alt.

Her er den jeg har nå:

<html>
<head>
<title>MySQL Test</title>
</head>
<body>
<?php
if($_POST['submit']) {

$mysql_host = "http://www.hotserv.dk:db01"; // mySQL Host eller ip
$mysql_user = "16592"; // mySQL brukernavn
$mysql_pass = "hidden haha"; // mySQL passord
$mysql_db    = "16592"; // mySQL database navn
$mysql_tabell = "registrerte_brukere"; // mySQL tabell (trenger ikke endres)
$mysql_link   = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("ERROR!");
mysql_select_db ($mysql_db) or die ("ERROR!");

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

$mysql_query = "insert into $mysql_tabell set nick='$nick', navn='$navn'";
if(mysql_query($mysql_query)) { echo("Din informasjon ble lagt til i databasen!"); }
else { echo("En feil oppstod, din informasjon ble ikke lagt til i databasen!"); }
}
else {
echo("
<form action=\"\" method=\"post\">
<p>Navn:<br /><input type=\"text\" size=\"40\" name=\"navn\" /></p>
<p>Kallenavn:<br /><input type=\"text\" size=\"40\" name=\"nick\" /></p>
<p><input type=\"submit\" value=\"Legg til i databasen\" name=\"submit\" /></p>
</form>
");
}
?>
</body>
</html>

 

 

 

Veit du hva som er feil her? =/

Endret av Andy-Pandy
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...