Gå til innhold

Script som legger inn navn i database


Anbefalte innlegg

Jeg ønsker veldig gjerne et script som automatisk legger inn navn i en database. Det er en stor fordel med sperre for diverse vulgære navn (dette spesifiseres vel i scriptet?) og det er også fint om det har en sperre for allerede innsendte navn. Altså, hvis navnet Per allerede er i databasen, så kan det ikke bli lagt inn på nytt. Jeg ønsker også pagination funksjonen på dette :cool: For eksempel 30 navn pr. rekke, og 3 rader pr. side.

 

Jeg bruker nå noe lignende, men dette er i flatfil, og det gir begrensede muligheter. Jeg skulle gjerne ha laget dette selv, men jeg har rett og slett ikke kompetansen til det, selvom jeg har prøvd. Jeg ville derfor satt stor pris på om noen kunne ha hjulpet meg med dette.

Lenke til kommentar
Videoannonse
Annonse

Vel, noe kan jeg, men jeg er ikke spesielt flink. Kan nok modifisere noe, og lage helt, veldig enkle ting. Men kunne jeg gjort dette selv, så ville jeg så absolutt gjort det ;) Hvis noen vil ha betaling for dette, hvor mye er det snakk om da? Jeg har minimalt med penger for tiden og lever på et stramt budsjett, men om det er penger som skal til for at noen skal hjelpe, så so be it.

Endret av FlowerEye
Lenke til kommentar

<?php

$filnavn = 'filnavn';
$navn = 'navn';

$f = file_get_contents( $filnavn );
$fa = explode( "\n", $f );
if ( in_array( $navn, $fa ) ) die( 'Navn finnes allerede!' );

?>

 

edit: forutsetter at det kun er et navn per linje og kun navnet uten ekstra tegn.

 

har forresten begynnt på et script til deg. er foreløpig på 199 linjer. skriver litt innimellom når jeg kjeder meg. det mangler et par funksjoner og litt feilsøking før det er ferdig.

Endret av grimjoey
Lenke til kommentar

Takk for svar :) Satt det opp sånn som dette, men det funker dessverre ikke.

 

<?php

$filnavn = 'dyrenavn.txt';
$navn = 'navn';

$f = file_get_contents( $filnavn );
$fa = explode( "\n", $f );
if ( in_array( $navn, $fa ) ) die( 'Navn finnes allerede!' );

$side = "side/hestenavn.php"; // Full link til denne siden
$filnavn = "dyrenavn.txt"; // Navn på fila hvor navnene skal lagres
$feil = false;

if ($navn = $_POST['navn']) {

if (preg_match("/[A-Za-zæøåÆØÅ40]/", $navn)) {
$f = fopen($filnavn, "a+");
fwrite($f, $navn."\r\n");
fclose($f);
} else {
$feil = "Du bruke ugyldige tegn...";
}
}
?>

<form action="<?php echo $side ?>" method="post">
Navn: <input type="text" name="navn">
<input type="submit" value="Send inn navn">
</form>

<?php
if ($feil) {
echo '<span style="color: red">'.$feil.'</span>';
}

$file = file_get_contents($filnavn);
$navn = explode("\r\n", $file);
sort($navn);

echo '<ul>';
foreach($navn as $n) {
if ($n != "") {
echo '<li>'.$n."</li>\r\n";
}
}
echo '</ul>';
?>

 

<?php

$filnavn = 'filnavn';
$navn = 'navn';

$f = file_get_contents( $filnavn );
$fa = explode( "\n", $f );
if ( in_array( $navn, $fa ) ) die( 'Navn finnes allerede!' );

?>

 

edit: forutsetter at det kun er et navn per linje og kun navnet uten ekstra tegn.

 

har forresten begynnt på et script til deg. er foreløpig på 199 linjer. skriver litt innimellom når jeg kjeder meg. det mangler et par funksjoner og litt feilsøking før det er ferdig.

 

Fantastisk! :D Hva vil du ha i gjengjeld?

Lenke til kommentar

du bør sette inn koden min etter if ($navn = $_POST['navn'])

 

og fjern linjen $navn = 'navn';

 

mulig du må bytte ut explode("\n", $f ) med explode( "\r\n", $f )

 

du kan og bytte ut koden i form action fra:

 

<?php echo $side ?>

 

til:

 

<?php echo $_SERVER['PHP_SELF'] ?>

 

den vil bli riktig selv om du bytter filnavn.

da kan du også fjerne $side = '....'

 

eller bare sett $side = $_SERVER['PHP_SELF']; om du foretrekker det.

Lenke til kommentar

<?php

$mysql_host = '';
$mysql_username = '';
$mysql_password = '';

$databasenavn = 'navn';
$tabellnavn = 'navn';
$listerader = 30;
$listekolonner = 3;

$limitpagination = 10;

// funksjoner

function my_get ($sql, $i = 0) {
if ($i > 0) {
	echo $sql;
	return TRUE;
}
if (stripos ($sql, 'SELECT') !== FALSE) {
	$out = Array();
	$res = mysql_query ($sql) or die(mysql_error ());
	while ($row = mysql_fetch_assoc($res)) {
		$out[] = $row;
	}
	return $out;
} else {
	mysql_query ($sql) or die (mysql_error ());
	return TRUE;
}
}

function my_esc ($msg) {
if (!is_numeric ($msg)) {
	if (get_magic_quotes_gpc ()) $msg = stripslashes($msg);
	$msg = "'".mysql_real_escape_string ($msg)."'";
}
return $msg;
}

function check_var ($var, $type = 0) {
if ($type === 0) $type =& $_POST;
else $type =& $_GET;
if (isset ($type[$var]) && !empty ($type[$var])) return TRUE;
else return FALSE;
}

// databasetilkobling

$dblink = mysql_connect ($mysql_host, $mysql_username, $mysql_password) or die (mysql_error ());
if (!mysql_select_db ($databasenavn)) {
mysql_query ('CREATE DATABASE '.$databasenavn.';'); // databasen eksisterer ikke - prøver å lage
mysql_select_db ($databasenavn) or die (mysql_error()); // prøver å koble til igjen, feilmelding når det mislykkes.
}

if (!mysql_query('DESCRIBE '.$tabellnavn.';')) {
// lag tabellene dersom de ikke eksisterer
$tabell[$tabellnavn] = '(id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, navn VARCHAR(50))';
$tabell[$tabellnavn.'_anti'] = '(id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, navn VARCHAR(50))';

foreach ($tabell as $k => $v) {
	mysql_query('CREATE TABLE '.$k.' '.$v.';');
}
}

// logikk og utdata

if (check_var ('submit_name')) {
check_var ('name') or die('Navn var ikke fylt ut!');

	$rows = my_get ('SELECT navn FROM '.$tabellnavn.';');
foreach ($rows as $row) {
	if (stripos ($_POST['name'], $row['navn']) !== FALSE) die('Navn eksisterer allerede.');

}

$rows = my_get ('SELECT navn FROM '.$tabellnavn.'_anti;');
foreach ($rows as $row) {
	if (stripos ($_POST['name'], $row['navn']) !== FALSE) die('Ulovlig navn!');

}
my_get ('INSERT INTO '.$tabellnavn.'(navn) VALUES('.my_esc ($_POST['name']).');');
header('Location: '.$_SERVER['PHP_SELF']);

} elseif (check_var ('submit_badname')) {
check_var ('badname') or die('Ulovlig ord var ikke fylt ut!');
my_get ('INSERT INTO '.$tabellnavn.'_anti(navn) VALUES('.my_esc ($_POST['badname']).');');	
header('Location: '.$_SERVER['PHP_SELF']);

} elseif (check_var ('submit_editname')) {
check_var ('id') or die('Id kom ikke med!');
check_var ('name') or die('Navn feltet var tomt!');
$rows = my_get ('SELECT navn FROM '.$tabellnavn.'_anti;');
foreach ($rows as $row) {
	if (strpos ($row['navn'], $_POST['name'])) die('Ulovlig navn!');

}
my_get ('UPDATE '.$tabellnavn.' SET navn = '.my_esc ($_POST['name']).' WHERE id = '.(int)$_POST['id'].';');
header('Location: '.$_SERVER['PHP_SELF']);

} elseif (check_var ('submit_editbadname')) {
check_var ('id') or die('Id kom ikke med!');
check_var ('badname') or die('Ulovlig navn feltet var tomt!');
my_get ('UPDATE '.$tabellnavn.'_anti SET navn = '.my_esc ($_POST['badname']).' WHERE id = '.(int)$_POST['id'].';');
header('Location: '.$_SERVER['PHP_SELF']);

} elseif (check_var ('submit_delname')) {
check_var ('id') or die('Id kom ikke med!');
check_var ('name') or die('Navn feltet var tomt!');
my_get ('DELETE FROM '.$tabellnavn.' WHERE id = '.(int)$_POST['id'].';');
header('Location: '.$_SERVER['PHP_SELF']);

} elseif (check_var ('submit_delbadname')) {
check_var ('id') or die('Id kom ikke med!');
check_var ('name') or die('Ulovlig navn feltet var tomt!');
my_get ('DELETE FROM '.$tabellnavn.'_anti WHERE id = '.(int)$_POST['id'].';');
header('Location: '.$_SERVER['PHP_SELF']);	

}

if (!isset ($_GET['action'])) $_GET['action'] = 'list';

$outhtml = '<html><head><title></title></head><body>';

if (isset ($_GET['action']) && !strcmp ($_GET['action'], 'list')) { /////////////// ACTION=list PAGE=x

if (isset ($_GET['page'])) $page = (int)$_GET['page'];
else $page = 1;

$total = my_get ('SELECT COUNT(id) FROM '.$tabellnavn.';');
$navn = my_get ('SELECT navn FROM '.$tabellnavn.' LIMIT '.($page - 1).', '.($listerader * $listekolonner).';');

for ($i = 0; $i < $listekolonner; $i++) {
	$outhtml .= '<div style="float: left;">';
	for ($j = 0; $j < $listerader; $j++) {
		if (isset ($navn[($i * $listerader) + $j]['navn'])) $outhtml .= '<p style="margin-top: 0px; margin-bottom: 0px;"><a href="'.$_SERVER['PHP_SELF'].'?action=editname&id='.(($i * $listerader) + $j + 1).'">'.$navn[($i * $listerader) + $j]['navn'].'</a></p>'; // TODO: lage link for edit
		else break;	
	}
	$outhtml .= '</div>';

}

$outhtml .= '<div style="clear: left;"></div>';

$pages = ceil((float)$total[0] / ((float)$listerader * (float)$listekolonner));
if ($pages > 3) {
	$outhtml .= '<div>'; /////////////////////////////////////////////////////////////// PAGINATION
	if ($page > 1) $outhtml .= '<a href="'.$_SERVER['PHP_SELF'].'?action=list&page='.($page - 1).'">prev</a>';
	for ($k = 1; $k <= $pages; $k++) {
		if ($k == $limitpagination) break;
		if ($k == $page) $outhtml .= $k.' ';
		else $outhtml .= '<a href="'.$_SERVER['PHP_SELF'].'?action=list&page='.$k.'">'.$k.'</a> ';
	}
	if ($page < $pages) $outhtml .= '<a href="'.$_SERVER['PHP_SELF'].'?action=list&page='.($page + 1).'">next</a>';
	$outhtml .= '</div>';
}

} elseif (isset ($_GET['action']) && !strcmp ($_GET['action'], 'badlist')) {

$badnames = my_get('SELECT id, navn FROM '.$tabellnavn.'_anti;');

$outhtml .= '<div>';
foreach ($badnames as $bname) {
	$outhtml .= '<p style="margin-top: 0px; margin-bottom: 0px;"><a href="'.$_SERVER['PHP_SELF'].'?action=editbadname&id='.(int)$bname['id'].'">'.$bname['navn'].'</a></p>';
}
$outhtml .= '</div>';

} elseif (isset ($_GET['action']) && !strcmp ($_GET['action'], 'addname')) { /////// ACTION=addname

$outhtmltmp = <<< EOT
<form action="" method="post">
<input type="text" name="name" />
<input type="submit" name="submit_name" value="Legg til navn" />
</form>
EOT;

$outhtml .= $outhtmltmp;

} elseif (isset ($_GET['action']) && !strcmp ($_GET['action'], 'addbadname')) { ///// ACTION=addbadname

$outhtmltmp = <<< EOT
<form action="" method="post">
<input type="text" name="badname" />
<input type="submit" name="submit_badname" value="Legg til ulovlig ord" />
</form>
EOT;

$outhtml .= $outhtmltmp;

} elseif (isset ($_GET['action']) && !strcmp ($_GET['action'], 'editname')) { /////// ACTION=editname ID=x

check_var('id', 1) or die('Mangler id!');
$id = (int)$_GET['id'];
$rows = my_get ('SELECT navn FROM '.$tabellnavn.' WHERE id = '.$id.';');
$name = $rows[0]['navn'];

$outhtmltmp = <<< EOT
<form action="" method="post">
<input type="hidden" name="id" value="$id" />
<input type="text" name="name" value="$name" />
<input type="submit" name="submit_editname" value="Lagre navn" />
<input type="submit" name="submit_delname" value="Slett navn" />
</form>
EOT;

$outhtml .= $outhtmltmp;

} elseif (isset ($_GET['action']) && !strcmp ($_GET['action'], 'editbadname')) { ///// ACTION=editbadname ID=x

check_var('id', 1) or die('Mangler id!');
$id = (int)$_GET['id'];
$rows = my_get ('SELECT navn FROM '.$tabellnavn.'_anti WHERE id = '.$id.';');
$name = $rows[0]['navn'];

$outhtmltmp = <<< EOT
<form action="" method="post">
<input type="hidden" name="id" value="$id" />
<input type="text" name="name" value="$name" />
<input type="submit" name="submit_editbadname" value="Lagre ulovlig ord" />
<input type="submit" name="submit_delbadname" value="Slett ord" />
</form>
EOT;

$outhtml .= $outhtmltmp;

} 

$outhtml .= '<div><br />';

if (strcmp($_GET['action'], 'list')) $outhtml .= '<a href="'.$_SERVER['PHP_SELF'].'?action=list">Liste navn</a> - ';
if (strcmp($_GET['action'], 'badlist')) $outhtml .= '<a href="'.$_SERVER['PHP_SELF'].'?action=badlist">Liste ulovlige ord</a> - ';
if (strcmp($_GET['action'], 'addname')) $outhtml .= '<a href="'.$_SERVER['PHP_SELF'].'?action=addname">Legge til navn</a> - ';
if (strcmp($_GET['action'], 'addbadname')) $outhtml .= '<a href="'.$_SERVER['PHP_SELF'].'?action=addbadname">Legge til ulovlig ord</a> - ';

$outhtml = substr($outhtml, 0, -3);

$outhtml .= '</div>';

print $outhtml;

?>

 

Er ikke helt ferdig med testingen.

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