webForumDet fria alternativet

Inloggning

54 svar · 2 080 visningar · startad av B22 · sida 2 av 3

B22Medlem sedan mars 2004256 inlägg
#21

Men jag förstår inte vad felet är på den här raden..

<?php
echo "<li><a href=""index.php?logout=\">Logga ut</a></li>";
?>

jag försökte lägga till ett " tecken före snedstrecket som inte har två men inte hjälpte...

@ndersMedlem sedan juni 200032 969 inlägg
#22
<?php 
echo "<li><a href=\"index.php?logout=\">Logga ut</a></li>"; 
?>
B22Medlem sedan mars 2004256 inlägg
#23

hmm..nu får jag det här felmeddelandet istället på admin_login.php...

Parse error: syntax error, unexpected $end in /customers/ukf.be/ukf.be/httpd.www/adm_login.php on line 135

Här är filen uppdaterad...

<?php
error_reporting(E_ALL); 
ini_set("display_errors", "1");
session_start();

// Ok to login ???
    if( !empty($_POST["login"]) ){
    // Empty fields?
      if( empty($_POST["f1"]) || empty($_POST["f2"]) ){
        print "Tomma fält är inte tillåtna!<br/><br/><input type='button' value='Tillbaka' onClick='history.back()'/>";
        exit;
      }

	// Check if correct username and passwotrd for admin	
         // Connect to server and select databse.
         $Link= mysql_connect("*", "*", "*" )or die(mysql_error()); 
         mysql_select_db("*")or die(mysql_error()); 

        // username and password sent from signup form
          $myusername=$_POST['f1'];
          $mypassword=$_POST['f2'];

        //kryptera lösenordet med md5()
        $encrypted_mypassword=md5($mypassword);

        $query ="SELECT username, password FROM Styrelse WHERE username='$myusername' and password='$encrypted_mypassword'";
        $result=mysql_query($query)or die(mysql_error());  ;

        // Mysql_num_row is counting table row
        $count=mysql_num_rows($result);
        // If result matched $myusername and $mypassword, table row must be 1 row

       if($count==1){

          // Kolla om inloggad = sessionen satt, dirigera tillbaka till inloggningssidan om inte 
         if (!isset($_SESSION['sess_user'])){ //<--- Måste sättas i adm_login.php 
         
               header("Location: databas.php"); 
         } 
   
         else{ 
              echo "Wrong Username or Password";
              header("Location: adm_login.php");
              
            }
}
		
?>

Varav den raden 135 är :

if($count==1){
@ndersMedlem sedan juni 200032 969 inlägg
#24

Varför har du två semikolon sist på denna rad?

        $result=mysql_query($query)or die(mysql_error());  ;
B22Medlem sedan mars 2004256 inlägg
#25

@nders skrev:

Varför har du två semikolon sist på denna rad?

        $result=mysql_query($query)or die(mysql_error());  ;

Ja...säg det... :r ett misst, men jag har fortfarande samma fel...

MatteMedlem sedan aug. 20002 975 inlägg
#26

Du saknar avslutning på din första if-sats. Det saknas alltså ett } i slutet.

B22Medlem sedan mars 2004256 inlägg
#27

Matte skrev:

Du saknar avslutning på din första if-sats. Det saknas alltså ett } i slutet.

Jag är så tacksam, Matte. Nu loggas jag in, MEN
Det som händer nu är att jag inte får se meddelande på att jag har skrivit fel inloggningsuppgifter som jag har i min kod, utan jag bara stannar på adm_login.php sidan. :(
Det kanske beror på som du sa tidigare att header finns där och det utförs först, så jag får aldrig meddelandet, men jag vet inte var jag ska skriva fel meddelnadet isf...

if (!isset($_SESSION['sess_user']))
{          
               header("Location: databas.php"); 
         } 
   
         else{ 
              echo "Wrong Username or Password";
              header("Location: adm_login.php");
              
            }
       }
 }

Även när jag väljer att logga ut så står det bara så här:

No input file specified.

MatteMedlem sedan aug. 20002 975 inlägg
#28

Du kan inte ha någon output till webbläsaren då header() är en header, och som därför måste skickas först till webbläsaren.

Däremot kan du göra så här:

header("Location: adm_login.php?error_login");

och sedan någonstans i adm_login.php:

if (isset($_GET['error_login'])) {
   // Skriv ut ditt felmeddelande här
}
B22Medlem sedan mars 2004256 inlägg
#29

Det blir ingen skillnad Matte, jag har lagt in det så här:

 if($count==1){

        if (isset($_GET['error_login'])) {
              echo "Fel användarnamn eller lösenord!";  
              echo "<a href=\"adm_login.php\">Försök igen</a>";       
            } 

          inloggningssidan om inte 
         if (!isset($_SESSION['sess_user'])){
         
               header("Location: databas.php"); 
         } 
   
         else{ 
              
              header("Location: adm_login.php?error_login");
              
            }
         }
  }

Har jag skrivit det på fel plats?

MatteMedlem sedan aug. 20002 975 inlägg
#30

Ja, du har skrivit på fel plats.

Du har skrivit på ett ställe där du tar hand om det postade formuläret, och därifrån kommer inga GET-variabler.
Du ska läggga det i anslutning till inloggningsformuläret.

B22Medlem sedan mars 2004256 inlägg
#31

Matte skrev:

Ja, du har skrivit på fel plats.

Du har skrivit på ett ställe där du tar hand om det postade formuläret, och därifrån kommer inga GET-variabler.
Du ska läggga det i anslutning till inloggningsformuläret.

Jag har nu provat lägga koden direkt efter att jag kontrollerar om det finns tomma fält i formuläret i början av filen och har provat att lägga koden längst ner i html koden innanför <form> taggen utan att få något resultat...jag vet inte om jag har försått dig rätt :(

MatteMedlem sedan aug. 20002 975 inlägg
#32

Du kan få ett exempel: http://www.phpportalen.net/viewtopic.php?t=4403
Kolla där hur det är löst i index.php.

B22Medlem sedan mars 2004256 inlägg
#33

Ett stort tack, Matte! Det fungerar så fint, härligt härligt.
Jag ska börja titta på utloggningen också och se hur du har gjort så
återkommer jag ifall jag fastnar.

Tack alla andra som också har hjälpt mig, det uppskattar jag verkligen.

B22Medlem sedan mars 2004256 inlägg
#34

Jag får det här fel medelandet:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'

på denna rad:

echo "Datat är inlagt!";

Kan man inte skriva så?

@ndersMedlem sedan juni 200032 969 inlägg
#35

Hur ser det ut runtomkring?

B22Medlem sedan mars 2004256 inlägg
#36

Jag skrev så här istället och det funkar nu, varför det?

print "Datat är inlagt!<br/><br/>";

Så här ser det ut:

$result = mysql_query($sql);
$result_2 = mysql_query($sql_2);
	 
         if ((!$result)||(!$result_2)){
         die('Invalid query: ' . mysql_error("Det gick inte att lägga in datat"));
          }

	else{
	    print "Datat är inlagt!<br/><br/>";
             print "< type='button' value='Tillbaka till startsidan' onClick='history.back()'/>";
	}
     }
B22Medlem sedan mars 2004256 inlägg
#37

Med den här filen ska jag kunna lägga in datat i databasen, men varför händer det ingenting när jag klickar på skicka knappen?
Jag bara stannar på samma sida. Den reagerar inte ens på att jag lämnar tomma fält!

<?php
//medlemsreg.
if(isset($_POST["skicka"])){

if( empty($_POST["firstname"]) || empty($_POST["lastname"]) || empty($_POST["tele"]) || empty($_POST["gata"]) || empty($_POST["postnr"]) || empty($_POST["postort"]) || empty($_POST["fmed"]) || empty($_POST["smed"]) || empty($_POST["pmed"]) ){
        print "Tomma fält är inte tillåtna!<br/><br/><input type='button' value='Tillbaka' onClick='history.back()'/>";
        exit;
      }

  $fname = $_POST["firstname"]; //hämtar datat i varje fält genom att anropa dess name attribut
	$lname = $_POST["lastname"];
	$phone = $_POST["tele"];
	$street = $_POST["gata"]; //adress
	$zipno = $_POST["postnr"];
	$city = $_POST["postort"];
	$ftype = $_POST["fmed"]; //med-typ
	$stype = $_POST["smed"]; 
	$fullname='$fname'.'$lname';

	
	if ( isset( $_POST['fmed'] ) ){  //medlemstyperna
	  $ftype .= "J";
	  }else{$ftype .= "N";}
	if ( isset( $_POST['smed'] ) ){
	  $stype .= "J";
	  }else{$stype .= "N";}

        // Connect to server and select databse.
        mysql_connect("*", "*", "*")or die("cannot connect");
        mysql_select_db("*")or die("cannot select DB");

        $sql = "INSERT INTO Members (Fullname, S_mem, F_mem, Phone) VALUES (".$fullname.", ".$stype.", ".$ftype.", ".$phone.")";
  
        $sql_2 = "INSERT INTO Address (Street, City, Zip) VALUES ('$street', '$city','$zipno')";
      
  
	//utför förfrågan 
	$result = mysql_query($sql);
         $result_2 = mysql_query($sql_2);
	 
         if ((!$result)||(!$result_2)){
         die('Invalid query: ' . mysql_error("Det gick inte att lägga in datat"));
          }

	else{
	    print "Datat är inlagt!<br/><br/>";
             print "< type='button' value='Tillbaka till startsidan' onClick='history.back()'/>";
	}
     }
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
<link href="ukf.css" rel="stylesheet" type="text/css"></link>
<title>registrera ny medlem</title> 
</head>
<body>

<form id="form" method="post"  action="" name="form" >		
	
<h3>Använd nedanstående formulär för att registrera en ny medlem!</h3> 
<p>F&ouml;rnamn: <input type="text" size="20" style="margin-left: 10px" id="falt1" name="firstname" /></p>
<p>Efternamn: <input type="text" size="20" style="margin-left: 5px" id="falt2" name="lastname" /></p>
<p>Tel-nr: <input type="text" size="20" style="margin-left: 22px" id="falt3" name="tele"/></p>

<h4>Adress</h4>

<p>Gata:<input type="text" size="20"  id="falt4" name="gata" /></p>
<p>Post-nr:<input type="text" size="20"  id="falt5" name="postnr" /></p>
<p>Ort:<input type="text" size="20"  id="falt6" name="postort" /></p>
<h4>Medlemstyp</h4>
<p><input type="checkbox" id="falt7" value="f" name="fmed" />Föreningsmedlem</p>
<p><input type="checkbox" id="falt8" value="s" name="smed" />Styrelsemedlem</p>
<p><input type="checkbox" id="falt7" value="p" name="pmed" />Betalandemedlem</p>

<p>
<input type="reset" id="rensa" name"rensa" value="Rensa" />
<input type="button" id="skicka" name="skicka" value="Registrera"  />
</p>

</form>	
</body>
</html>
@ndersMedlem sedan juni 200032 969 inlägg
#38

Du ska använda <input type="submit"> för att skicka formuläret. En button gör ingenting av sig själv.

mvh

B22Medlem sedan mars 2004256 inlägg
#39

Åh..vilket misstag.

Tack tack!

B22Medlem sedan mars 2004256 inlägg
#40

Jag får detta felmeddelande när jag kör filen jag postade koden till ovan:

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource

Den klagar på denna rad:

if ((!$result)||(!$result_2)){

Kan jag inte skicka med två INSERT så som jag har gjort eller vad är det som är fel?

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)