Gå til innhold

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


Anbefalte innlegg

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

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>
";
}
}
?>

Lenke til kommentar

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

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>
";
}
}}
?>

 

Lenke til kommentar

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

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

Lenke til kommentar

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

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