Gå til innhold

Hilsen script, komme opp nedover på en side..


Anbefalte innlegg

Skrevet (endret)

Tror jeg klarte å fikse alt nå, utenom add.php altså scriptet hvor man legger til en hilsen..

 

<?php
session_start();

$mysql_host = "localhost";
$mysql_user = "nils";
$mysql_pass = "**PASSORD**";
$mysql_db = "nils";


$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass)
          or die ("$lang_dberr1");
if (mysql_select_db ($mysql_db)) {
$mode = $_GET['mode'];
   $error = true;

if ($mode == "process") {

$tekst = $_POST['tekst'];
$avsender = $_POST['avsender'];
$dato = date("Y-m-d H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];  

 $ins_str = ("Insert into innhold set tekst='$tekst', avsender='$avsender', dato='$dato' ip='$ip'");
  if (mysql_query($ins_str)) { $error = False; } else { $msg = "Kunne ikke legge til."; }
  
 if (!$error) {
 echo "Hilsen/Ønske er lagt til!";

    } else {
     echo "
  <p>Error</p>
  $msg
  ";
 }    
}

else {
    echo "
<table>
<tr>
<td><b>Hilsen / Ønske</td>
</tr>
<form method='POST' action='add.php?mode=process' name='leggtil'>
<tr>
<td>
<tr>
<td>Ditt navn:<br>
 <input type='text' name='avsender' size='30'></td>
</tr>
<tr>
<td>Hilsen / Ønske<br>
 <textarea WRAP='VIRTUAL' rows='6' name='tekst' cols='40'></textarea><br>
</td>
</tr>
<tr>
<td>
 <input type='submit' value='OK' name='leggtil'></td>
</tr>
</table>
<input type='hidden' name='ip' value='$ip'>
</form>
";
}
}

?>

 

EDIT: Siden det er flere som har tillgang til mySQL databasen jeg bruker, er det mulig å få inn md5 passord her?

Endret av goggen90
Videoannonse
Annonse
Skrevet (endret)

Hva er feilmeldingen som kommer da?

 

Edit: du har glemt et komma etter

dato='$dato'

Det kan være nok til at det går galt.

Endret av anners
Skrevet

Jepp, det var det :)

 

Har ett annet problem, vist jeg bruker

brukernavn = $_SESSION['brukernavn'];
if (isset($brukernavn)) { echo "Du er logget inn osv!"; }
else {[code] i stede for [code]if ($mode == "process") {

får jeg

Parse error: syntax error, unexpected T_ELSE in C:\apachefriends2\xampp\htdocs\add\login.php on line 53

 

Lingje 53 og nedover:

else {

  echo "
<table>
<tr>
<td colspan='2'>Logg Inn</td>
</tr>
<form method='POST' action='login.php?mode=process' name='login'>
<td><font>Brukernavn</td>
<td><input type='text' name='brukernavn' size='30'></td>
</tr>
<tr>
<td>Passord</td>
<td><input type='password' name='passord' size='30'></td>
</tr>
<tr>
<td colspan='2'><input type='submit' value='Logg inn' name='login'></td>
</tr>
</table>
</form>
";
}
}
?>

Skrevet (endret)

Er ikke heelt sikker på om jeg vet hva du mener der (det er litt BBCodes inne i code-boksen som gjør meg forvirret), men har du tatt vekk dette? :

if ($mode == "process") {

For i såfall er det ikke rart at det ikke virker...

 

Edit: Hos meg funker det nemlig helt fint, det er iallefall ikke parse errors

Endret av anners
Skrevet

Dette er koden jeg har, men den er ikke testet i det hele tatt bortsett fra for parse errors.

 

 

<?php

$mysql_host = "localhost";
   $mysql_user = "brukernavn";
   $mysql_pass = "passord";
   $mysql_db = "database";

$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass)
           or die ("$lang_dberr1");
if (mysql_select_db ($mysql_db)) {
 $mode = $_GET['mode'];
 session_start();
$brukernavn = $_SESSION['brukernavn'];
if (isset($brukernavn)) { echo "Du er logget inn osv!"; }
else {
if ($mode == "process") {

    $error = true;

$brukernavn = $_POST['brukernavn'];
$passord = $_POST['passord'];

   if (mysql_select_db ($mysql_db)) {
       $result = mysql_query ("Select * from brukere where brukernavn='$brukernavn'");
       if (mysql_affected_rows() == 0) {
           $msg = "Brukeren finnes ikke.";
       } else {
           $row = mysql_fetch_array ($result);
           if ($row['passord'] == $passord) {
   	$_SESSION['brukernavn'] = $row['brukernavn']; 
                   $error = false;
           } else {
           $msg = "Feil passord";
           }
       }
   } else {
       $msg = "Kunne ikke finne databasen.";
   }
   mysql_close ($link);

   if (!$error) {
 echo "Du har logget inn.";
       

   } else {
   echo "
<p>Error</p>
<p>$msg</p>
";
}
}

else {

   echo "
<table>
<tr>
<td colspan='2'>Logg Inn</td>
</tr>
<form method='POST' action='login.php?mode=process' name='login'>
<td><font>Brukernavn</td>
<td><input type='text' name='brukernavn' size='30'></td>
</tr>
<tr>
<td>Passord</td>
<td><input type='password' name='passord' size='30'></td>
</tr>
<tr>
<td colspan='2'><input type='submit' value='Logg inn' name='login'></td>
</tr>
</table>
</form>
";
}
}}
?>

 

Skrevet (endret)

Funka fint med den..

Sikkert min feil ;)

 

Håper du klarer og lage ett ban system

Hadde vert fint... ;)

 

Nå hopper jeg til køys, god natt alle sammen..

 

EDIT: Litt mye smilyes

Endret av goggen90
Skrevet (endret)

3 ting, er det mulig og legge til at det ikke er noen innlegg vist det ikke er noen?

 

Er det mulig og få md5 kryperte passord i databasen?

 

Er det mulig og få en logg ut link?

 

EDIT: Må bare si jeg har lært en masse av dette :)

Endret av goggen90
Skrevet

Hvis du vil vise en annen tekst når det ikke er innlegg legger du inn en

if (mysql_affected_rows() == 0) { echo "Ingen innlegg i databasen"; }
 else {

før

while ($row = mysql_fetch_array($result)) {

og en } før den siste "else".

 

For å helt enkelt lagre passord som md5 (dette er ikke mitt område, så ikke bli overraska om det ikke funker), må du vel endre i register php fra

$passord = $_POST['passord'];

til

$passord = md5($_POST['passord']);

 

Og i login.php må du endre fra

if ($row['passord'] == $passord) {

til

if ($row['passord'] == md5($passord)) {

tror jeg.

Si ifra hvis dette ikke funker, for det er som sagt ikke det jeg er best på.

Skrevet (endret)

ERROR! kom det vertfall i ny brukerscriptet..

 

MD5 funka fint når jeg la det kryperte passordet i mySQL databasen men nybruker greiene funker ikke... ( ERROR! )

Endret av goggen90
Skrevet (endret)

Prøv å endre det tilbake til sånn det var, og legg til en

$passord = md5($passord);

før

if ($brukernavn == "") { echo "Du har ikke valgt brukernavn"; }

Endret av anners
Skrevet (endret)

Ok. Da har jeg laget et lite ban-system også :) Har som vanlig ikke fått testet om det virker, men tror det skal gå greit.

 

Først må du opprette en tabell hvor du lagrer de bannede ip'ene (jeg har kalt den "ban" i mitt eksempel) med raden "ip".

 

Så lager du en side (ban.php) hvor du legger inn dette:

<?php
session_start();
$mysql_host = "localserver";
$mysql_user = "brukernavn";
$mysql_pass = "passord";
$mysql_db = "databasenavn";
$ip = $_GET['ip'];

$link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die ("Kunne ikke koble til databasen.");
 if (mysql_select_db ($mysql_db)) {
 
 if (isset($brukernavn)) {
 	if ($ip !== "") {

     $ins_str = ("Insert into ban set ip='$ip'");
     if (mysql_query($ins_str)) { echo "Bruker er bannet ved ip."; }
     else { echo "Det gikk ikke. Shit happens"; }
   }
 	else {
   echo "Ingen ip-adresse er valgt.";
 	}
 }
 else {
 	echo "Du er ikke innlogget";
 }
}
else {
 echo "Kunne ikke koble til databasen";
}
?>

 

Siden du allerede har laget en funksjon som logger ip'ene trenger du ikke gjøre mer enn å legge til denne linken i siden der du viser innleggene:

<a href='ban.php?ip=".$row['ip']."'>

 

For å beskytte mot at folk med ip'er som er bannet skal få skrive må du legge til dette i add.php:

  $ip = $_SERVER['REMOTE_ADDR'];
 $banned = mysql_query("Select ip from ban where ip='$ip'");
 if (mysql_affected_rows >= 1) {
 	echo "Du er bannet og kan ikke skrive innlegg.";
 }
 else {

før

$ins_str = ("Insert into innhold set tekst='$tekst', avsender='$avsender', dato='$dato'");

og så selvfølgelig en } etterpå koden som legger inn innleggene eller viser error.

 

Er spent på om dette kommer til å funke, ettersom jeg ikke har gjort noe lignende før ;)

 

Edit: For å lage en logout-side er alt du trenger

<?php
session_unset(); ?>

inne i en fil. Tror du vet selv hvor du skal plassere linken :thumbup:

Endret av anners
Skrevet (endret)

Kunne banne osv men hadde ingen innvirkning...

Kunne poste like mye som før ;)

 

Gi deg enda noen utfordringer, hele grafikken min går i dass vist jeg skriver inn ett ord på 100 tegn.

Er det mulig og lage ett script som gjør at ord som er lengre en 50 tegn blir blokert?

 

Er det mulig å legge til en if empty?

 

Tuuusen takk for all hjelp til nå! God natt alle sammen!

Endret av goggen90
Skrevet

Hmmmm. Skal se på det med banningen etter skolen.

Det med for lange ord er ganske lett tror jeg. Hvis du legger inn en

$tekst = wordwrap($tekst, 50, " ", 1);

før kommandoen som setter inn innleggene i databasen trooor jeg det skal virke.

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å
×
×
  • Opprett ny...