Din Menu
Fra fotoalbummet...

Nyeste artikler
> Billede ind i profil
> Optimer tabler i dat...
> Total Commander
> Redirect en side
> Mods / Infusion op p...
Downloads
SE ALLE DOWNLOADS...
Nye downloads
SurrealExperience 17
Luxury Yachts 10
Glare in Dark 66
AS-AppStore 36
AS-Global 20
AS-yellow_star 24
Hitman Games Zone 19
AS-Football 23
AS-Christmas 40
JuleCountdown til c... 20
Top 5 downloads
buzzlightyear 2804
php-fusion-7-01-02 2793
junglebook 2778
Disney2 2767
Disney1 2682
mickey-pluto. 2675
danish_locales_v7_1 2395
Opgraderingspakke v... 2368
Themes-phpfusion.dk
Facebook
Facebook

Pernille

statistik
Screenshots DB
Total Images: 796
Latest Images









statistik
Fra fotoalbummet...

Connect via Facebook
Connect via Facebook
Select your language
Danish Language Danish   English Language English
Fødselsdage i November
07.11 esig (61)
08.11 coldice (29)
14.11 Scorpion4Life (47)
15.11 DJ Tidzse (30)
17.11 ekate7 (49)
19.11 Kimse (64)
20.11 Brusher (49)
20.11 FogWelt (49)
24.11 SiteMaster (53)
26.11 kiko2611 (59)
26.11 kiko26 (59)
28.11 Micke Tyson (56)
Tilfældig Billede
Udtalelser fra brugerne
"SAssensvej...

Så køre det for dig

Har fået meget og god support her."

EvP
Reklame
Antispam
Se indlæg
Hvem er her? 1 gæst(er)
 Udskriv debat
$_POST kontrollere inden post i sig selv.
Nick Laurits Jakobsen
Jeg har lidt problemer med et projekt jeg går og roder med..

I toppen af mit projekt definerer jeg:

$passwordIsEmpty = false;
$password2IsEmpty = false;

Så connecter jeg til min database, og scriptet siger:

if ($_SERVER["REQUEST_METHOD"] == "POST") {

Herunder sker alle mulige ting, inkl at kontrollere om det indtastede brugernavn allerede eksisterer, om passwords er rigtige osv..

Det der så bare undrer mig, er at selvom testen af password hedder:

//Tests if the passwords are alike and is filled.

if ($_POST["password"]=="")
$passwordIsEmpty = true;
if ($_POST["password2"]=="")
$password2IsEmpty = true;
if ($_POST["password"]!=$_POST["password2"]) {
$passwordIsValid = false;}

Så er det som om at allerede i det jeg loader siden, går den ind og ser at password feltet er tomt, og melder fejlen med det samme som bliver kaldt der hvor tekstfeltet bliver fremkaldt:

Password: <input type="password" name="password"/><br/>

<?php
if ($passwordIsEmpty) {
echo ("Enter the password, please!");
echo ("<br/>");
}
?>

Det samme hvis der ved en fejl ender noget i min table med tomt username og tomt password, vil den allerede på load melde fejl ved at der allerede findes en med det brugernavn. Dette kontrolleres her:


//Checking if the name is already in use
$user = mysql_real_escape_string($_POST["user"]);
$query = mysql_query("SELECT id FROM Wishlist WHERE user='$user'");
$wisherIDnum = mysql_num_rows($query);

if ($wisherIDnum) {
$userNameIsUnique = false;

Håber ikke dette er alt for uoverskueligt.. Skal gerne give flere oplysninger om nødvendigt, men håber lidt at der er en mening med galskaben, så at sige :-P

Nogen som kan hjælpe? :-)
Redigeret af Tutsi d. 26-01-2012 13:28
 
Skrevet d. 25-11-2024 09:05
Reklame Agent

Antal indlæg: n^x
Tilmeldt: Altid

IP: localhost  
Nick Laurits Jakobsen
Hov.. Databasen det bliver kørt på er forresten MySQL :-)
 
Tutsi
Kigger nærmere på det, når jeg kommer hjem fra job Smile
______________________________

Hilsen Ellen

______________________________
www.jensens-madbl...


"Den som opfatter sig som færdiguddannet, er mere færdig end uddannet"
 
Tutsi
Jeg synes det er lidt rodet, er det muligt at få hele koden? Hvis du ikke ønsker at offentliggøre den, kan du sende i en pm.

Men for mig ser det ud som om, at du stiller nogle if op, men ikke hvad der skal ske.

if ($_POST["password"]==""){
$passwordIsEmpty = true;}

if ($_POST["password2"]==""){
$password2IsEmpty = true;}

if ($_POST["password"]!=$_POST["password2"]) {
$passwordIsValid = false;}

Men det er meget svært at se ud fra de brudstykker, i hvert fald, når man som jeg, ikke er nogen ørn til databaser.
______________________________

Hilsen Ellen

______________________________
www.jensens-madbl...


"Den som opfatter sig som færdiguddannet, er mere færdig end uddannet"
 
Nick Laurits Jakobsen
Download kildekode  Kode
 //Login info står herover, men er af sikkerhedsmæssige årsager ikke med.   
       
    /** other variables */
    $userNameIsUnique = true;
    $passwordIsValid = true;            
    $userIsEmpty = false;               
    $passwordIsEmpty = false;            
    $password2IsEmpty = false;         
       
   
       
   
   
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
       
    //Checking whether the user has filled in the wishers name in the text field   
       
    if ($_POST["user"]=="")
    $userIsEmpty = true;
       
    }
   
   
   
        // SQL Connect
        $db_connect = mysql_connect($db_hostname, $db_username, $db_password);
        $db_select = mysql_select_db($db_database, $db_connect);
       
        mysql_set_charset('utf8', $db_connect); // Sætter charset til utf8 når det bliver trukket ud
       
        //Testing SQL connection
       
        if(!$db_connect)
           
        {
        die("Fejlfri:" . mysql_errno());
        }
       
        elseif(!$db_select)
       
        {
        die("Fejl:" . mysql_errno());
        }
       
       
        //Checking if the name is already in use       
        $user = mysql_real_escape_string($_POST["user"]);
        $query = mysql_query("SELECT id FROM Wishlist WHERE user='$user'");
        $wisherIDnum = mysql_num_rows($query);
       
        if ($wisherIDnum) {
            $userNameIsUnique = false;
        }
       
        //Tests if the passwords are alike and is filled.
               
       
       
        if ($_POST["password"]=="")
         $passwordIsEmpty = true;
        if ($_POST["password2"]=="")
        $password2IsEmpty = true;
        if ($_POST["password"]!=$_POST["password2"]) {
        $passwordIsValid = false;}
       
       
        //Checks whether all the boolean values are correct.
        if (!$userIsEmpty && $userNameIsUnique && !$passwordIsEmpty &&
        !$password2IsEmpty && $passwordIsValid)
           
        {
            $password = mysql_real_escape_string($_POST['password']);
            $encrypt = md5($password);
            mysql_query("INSERT Wishlist (user, password) VALUES (' " .  $user . " ', '" . $encrypt. "')");
            mysql_free_result($query);
            mysql_close;
            echo "Congratulations, you have now been added!";
            exit;
            }
       
     
           
?>


<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    </head>
    <body>
      Welcome!<br>
        <form action="createNewWisher.php" method="POST">
            Your name: <input type="text" name="user"/><br/>
           
              <?php
           
            if ($userIsEmpty) {
            echo ("Enter your name, please!");
            echo ("<br/>");
            }               
            if (!$userNameIsUnique) {
            echo ("The person already exists. Please check the spelling and try again");
            echo ("<br/>");
            }
             
            ?>
           
            Password: <input type="password" name="password"/><br/>
           
            <?php
             if ($passwordIsEmpty) {
             echo ("Enter the password, please!");
             echo ("<br/>");
             }               
             ?>
           
            Please confirm your password: <input type="password" name="password2"/><br/>
           
            <?php
            if ($password2IsEmpty) {
            echo ("Confirm your password, please");
            echo ("<br/>");   
            }               
            if (!$password2IsEmpty && !$passwordIsValid) {
            echo  ("The passwords do not match!");
            echo ("<br/>"); 
            }                 
            ?>
           
            <input type="submit" value="Register"/>
           
           
        </form>
     </body>
</html>


 
Tutsi
Du tjekker brugeroplysninger før du er connectet til databasen.
Prøv og flyt det her op, lige efter dine login informationer til databasen.

// SQL Connect
$db_connect = mysql_connect($db_hostname, $db_username, $db_password);
$db_select = mysql_select_db($db_database, $db_connect);

mysql_set_charset('utf8', $db_connect); // Sætter charset til utf8 når det bliver trukket ud

//Testing SQL connection

if(!$db_connect)

{
die("Fejlfri:" . mysql_errno());
}

elseif(!$db_select)

{
die("Fejl:" . mysql_errno());
}
______________________________

Hilsen Ellen

______________________________
www.jensens-madbl...


"Den som opfatter sig som færdiguddannet, er mere færdig end uddannet"
 
Nick Laurits Jakobsen
Det er gjort.. Og efter at have indsat noget
Download kildekode  Kode
 if (isset($_POST['Register'])) {


kan jeg også få den til at holde op med at lave password fejlen, men den kører hele lortet på load, inkl post.. Så første gang jeg loader siden, lægger den en bruger ind i databasen uden navn, og næste gang jeg loader, brokker den sig over at der allerede findes en bruger med det navn..

Indtaster jeg noget andet, opretter den bare den bruger.. Ikke noget problem der..

Prøver jeg derimod at bruge
Download kildekode  Kode
 if (isset($_POST['Register'])) {


der hvor den skriver til databasen, vil den ikke skrive.. Når jeg så trykker på knappen, tømmer den bare felterne og intet sker.. Se evt http://pcvib.ano.... og tryk Create New Wisher for at se siden :)
 
Tutsi
Hvad skal der komme frem. Når man opretter en New Wisher, registrerer den fint nok, men hvad skal der så ske?

Jeg skal vide lidt om, hvad sidens mål er.
______________________________

Hilsen Ellen

______________________________
www.jensens-madbl...


"Den som opfatter sig som færdiguddannet, er mere færdig end uddannet"
 
Nick Laurits Jakobsen
Det der jo er pointen er ikke det der kommer frem, det er det der sker på siden..

nu forstår jeg så ikke hvordan du har kunne oprette dig 3 gange med samme brugernavn, men altså..

Det der ligger i det, er jo at den allerede når du loader siden kører php'en, altså poster på load..

Så hvis jeg sletter den bruger der ikke har noget navn, vil den ved første load starte med at gå direkte til bekræftelsen.

Anden load går den herefter ind og siger at en bruger med det navn (altså tomt felt) allerede eksisterer..

nu har jeg så fjernet mine "Ifset" sætninger, så nu brokker den sig også over at password er tomt, på trods af den ikke burde tjekke det før der bliver postet.

Men hvis jeg sætter en ifset sætning ind, den som tidligere nævnt som detekterer om knappen er trykket på, der hvor den skriver ned i databasen, vil den bare tømme felterne når du trykker på knappen, og der sker aldrig mere end det, den skriver ikke ned i databasen.
 
assensvej
Hvad er det for et system du køre for det ser ikke ud til at være et phpfusion system

Jeg tro det er svært for Tutsi at hjælpe dig når hun ikke kan se om det er phpfusion eller et andet system Wink
HUSK at læse reglerne for Brug af Debatten - Spørgsmål i privat beskeder og på msn, besvares ikke uden aftale.

Ekspert.
En ekspert er en, der har begået om ikke alle, så i hvert fald de groveste fejltagelser inden for sit felt

Niels Bohr, atomfysiker, 1865-1962
www.assensvej.dk/images/assensvej2Dbac.png
 
Tutsi
Det er ikke php fusion. Eller det tror jeg ihvert fald ikke det er. Men koden er php :)

Men du har helt ret, det er lidt svært, for jeg kender jo heller ikke databasen og hvordan den er bygget op.

Hvor har du den kode fra? For er ikke sikker på du har skrevet den fra bunden. det ligner lidt noget der er "klippet-klistret" sammen fra flere steder.

Jeg må nok indrømme, jeg er lidt i vildrede der. Jeg kan ikke rigtig se sammenhængen i det hele. Desværre.

Hvis det er en side, hvor man skal kunne registrere sig på, er der nemmere måde at lave den på. Og der findes også rigtig mange codesnippets med login-form sider på nettet.

Men den kan jeg nemt lave. Men tror ikke det blot er det du søger.

Ellers kan jeg anbefale en side som eksperten.dk. Der er der mange rigtig dygtige folk, også til både php og mysql databaser.
______________________________

Hilsen Ellen

______________________________
www.jensens-madbl...


"Den som opfatter sig som færdiguddannet, er mere færdig end uddannet"
 
Nick Laurits Jakobsen
Det er umiddelbart skrevet ud fra en tutorial til at lære at bruge php sammen med MySQL.. Så det er ikke et reelt site der skal køre, men det er mere en prøve for at lære php syntakser osv osv, og lære at få det til at fungere..

Jeg tror ikke det er php-fusion, da det er skrevet direkte i netbeans ud fra en tutorial :-)

Men jeg har været ved at læse mig til at det er noget der er problem med når man kører php og html på samme tid, og at man via ifset sætningen tidligere nævnt kan få den til at holde op med det.. Men prøver jeg at bruge ifset på der hvor den skriver i databasen, så tømmer den bare felterne når jeg trykker og der sker ikke mere end det Smile
 
Tutsi
Du kan sagtens bruge php og html på samme side.
En php side kan se sådan ud:

<?php
//Her er din php kode
//som har klammer rundt om
?>

<b>Du er nu hoppet ud af php-koden og skriver i html kode her</b>

<?php
//Og så er du inde i php-koden igen
?>

Og så kan du bruge det endnu mere sammensat:

<?php
echo "<html>";
echo "<title>HTML med PHP</title>";
echo "<b>Et eksempel</b>";
echo "<br />";

//her skriver du php koden

print "<i>Du kan ogs&aring; skrive print, s&aring; vil den ogs&aring; vise teksten.</i>";
?>

Skal du så have databasen med.

Allerførst skal man oprette table i databasen:

CREATE TABLE users (ID MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(60), password VARCHAR(60))

Så skal du lave login-side:

Download kildekode  Kode
  <?php
 // Connects til Database

 mysql_connect("host", "username", "password") or die(mysql_error());

 mysql_select_db("database_navn") or die(mysql_error());


//Denne kode køres hvis feltet er tilføjet

 if (isset($_POST['submit'])) {
 
 //Dette sikrer, at ingen felter lades tomme:

 if (!$_POST['username'] | !$_POST['pass'] | !$_POST['pass2'] ) {
       die('Du har glemt at udfylde et felt');
    }



 // tjekker om brugernavnet allerede er i brug

    if (!get_magic_quotes_gpc()) {
       $_POST['username'] = addslashes($_POST['username']);
    }
       $usercheck = $_POST['username'];
       $check = mysql_query("SELECT username FROM users WHERE username = '$usercheck'")
      or die(mysql_error());
       $check2 = mysql_num_rows($check);

 //hvis navnet er i brug, gives en fejl meddelse
 if ($check2 != 0) {
       die('Ups, brugernavnet '.$_POST['username'].' er optaget.');

             }


 // dene kode sikrer, at begge passwords er ens

    if ($_POST['pass'] != $_POST['pass2']) {
       die('Your passwords did not match. ');
    }

    // Her har vi krypteret adgangskoden

    $_POST['pass'] = md5($_POST['pass']);
    if (!get_magic_quotes_gpc()) {
       $_POST['pass'] = addslashes($_POST['pass']);
       $_POST['username'] = addslashes($_POST['username']);
          }



 // og så indsættes det i databasen

    $insert = "INSERT INTO users (username, password)
          VALUES ('".$_POST['username']."', '".$_POST['pass']."')";
    $add_member = mysql_query($insert);
    ?>
 
 <h1>Registreret</h1>

 <p>Du er nu oprettet, og kan logge ind.</a>.</p>
 
 <?php
 }

 else
 {   
 ?>
 
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 <table border="0">
 <tr><td>Brugernavn:</td><td>
 <input type="text" name="username" maxlength="60">
 </td></tr>
 <tr><td>Password:</td><td>
 <input type="password" name="pass" maxlength="10">
 </td></tr>
 <tr><td>Gentag Password:</td><td>
 <input type="password" name="pass2" maxlength="10">
 </td></tr>
 <tr><th colspan=2><input type="submit" name="submit"
value="Register"></th></tr> </table>
 </form>
 <?php
 }
 ?>



______________________________

Hilsen Ellen

______________________________
www.jensens-madbl...


"Den som opfatter sig som færdiguddannet, er mere færdig end uddannet"
 
Tutsi
Jeg har også lavet de andre sider, med lidt forklaring undervejs:

registrer.php

Download kildekode  Kode
  <?php
 // Connects til Database
 mysql_connect("host", "username", "password") or die(mysql_error());
 mysql_select_db("database_navn") or die(mysql_error());


//Denne kode køres hvis feltet er tilføjet

 if (isset($_POST['submit'])) {
 
 //Dette sikrer, at ingen felter lades tomme:

 if (!$_POST['username'] | !$_POST['pass'] | !$_POST['pass2'] ) {
       die('Du har glemt at udfylde et felt');
    }



 // tjekker om brugernavnet allerede er i brug

    if (!get_magic_quotes_gpc()) {
       $_POST['username'] = addslashes($_POST['username']);
    }
       $usercheck = $_POST['username'];
       $check = mysql_query("SELECT username FROM users WHERE username = '$usercheck'")
      or die(mysql_error());
       $check2 = mysql_num_rows($check);

 //hvis navnet er i brug, gives en fejl meddelse
 if ($check2 != 0) {
       die('Ups, brugernavnet '.$_POST['username'].' er optaget.');

             }


 // dene kode sikrer, at begge passwords er ens

    if ($_POST['pass'] != $_POST['pass2']) {
       die('Your passwords did not match. ');
    }

    // Her har vi krypteret adgangskoden

    $_POST['pass'] = md5($_POST['pass']);
    if (!get_magic_quotes_gpc()) {
       $_POST['pass'] = addslashes($_POST['pass']);
       $_POST['username'] = addslashes($_POST['username']);
          }



 // og så indsættes det i databasen

    $insert = "INSERT INTO users (username, password)
          VALUES ('".$_POST['username']."', '".$_POST['pass']."')";
    $add_member = mysql_query($insert);
    ?>
 
 <h1>Registreret</h1>

 <p>Du er nu oprettet, og kan logge ind.</a>.</p>
 
 <?php
 }

 else
 {   
 ?>
 
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 <table border="0">
 <tr><td>Brugernavn:</td><td>
 <input type="text" name="username" maxlength="60">
 </td></tr>
 <tr><td>Password:</td><td>
 <input type="password" name="pass" maxlength="10">
 </td></tr>
 <tr><td>Gentag Password:</td><td>
 <input type="password" name="pass2" maxlength="10">
 </td></tr>
 <tr><th colspan=2><input type="submit" name="submit"
value="Register"></th></tr> </table>
 </form>
 <?php
 }
 ?>
 






bruger-side.php


Download kildekode  Kode
<?php
 mysql_connect("host", "username", "password") or die(mysql_error());
 mysql_select_db("database_navn") or die(mysql_error());

 //tjekker cookies for at sikre at du er loggget ind
 if(isset($_COOKIE['ID_my_site']))
 {
    $username = $_COOKIE['ID_my_site'];
    $pass = $_COOKIE['Key_my_site'];
        $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
    while($info = mysql_fetch_array( $check ))    
       {

 //hvis cookien har forkert password, bliver man sendt til login siden
       if ($pass != $info['password'])
          {          header("Location: login.php");
          }

 //ellers bliver man videresendt til den lukkede side der kræver login.
    else
          {
           echo "Lukket bruger side der kr&aelig;ver login<p>";
 echo "Her mangler indhold p&aring; siden.......<p>";

//og så skal man selvfølgelig kunne logge ud igen
 echo "<a href=logout.php>Logout</a>";
          }
       }
       }
 else

 //hvis cookie ikke findes, bliver man sendt til loginside
 {         
 header("Location: login.php");
 }
 ?>





og til sidst logout.php

Download kildekode  Kode
<?php

 $past = time() - 100;

 //så sletter vi cookien igen

 setcookie(ID_my_site, gone, $past);

 setcookie(Key_my_site, gone, $past);

 header("Location: login.php");

 ?>




Så har du lidt at kigge på, og spørg endelig, hvis der er noget du ikke forstår. Jeg skal forsøge at svare, så godt jeg kan.
______________________________

Hilsen Ellen

______________________________
www.jensens-madbl...


"Den som opfatter sig som færdiguddannet, er mere færdig end uddannet"
 
Spring til debat:
Lignende tråde
Debat Forum Svar Nyeste indlæg
Brugere opretter selv annonce Kravlegården på Assensvej 7 22-09-2014 15:27
Last post link MOD's v7 4 23-04-2009 22:13