Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 10:19 Der er 72 kommentarer og
1 løsning

Hjælp til forståelse

Er der nogen som kan give mig en pædagogisk letforståelig, kommentar gennemgang af nedenstående kode. Gerne linie for linie.

<?php

$conn = mysql_connect("localhost", "navn", "password");

mysql_select_db("databasenavn", $conn);

$sql_products = "";

for($i=1 ; $i<=7 ; $i++) {

  if(!empty($_POST["searchproduct".$i])) {

    $sql_products .= "'".addslashes(utf8_decode($_POST["searchproduct".$i]))."',";

  }
}

$sql_products = substr($sql_products, 0, -1);

$sql = "SELECT p.shops_id, s.name, s.postalcode, SUM(p.price) AS price, COUNT(p.price) AS product_count ".
     
"FROM prices AS p ".
     
"LEFT JOIN shops AS s ON s.id = p.shops_id ".
     
"WHERE p.products_id IN (SELECT id FROM products
WHERE name IN (".$sql_products.")) ".
     
((!empty($_POST['postalcode']) && ($_POST['postalcode']!="Postnummer"))?" AND s.postalcode='".$_POST['postalcode']."'":"").
     
"GROUP BY p.shops_id ORDER BY SUM(p.price)";

$res = mysql_query($sql);

if($res) {

  if(mysql_num_rows($res) > 0) {

    while($row = mysql_fetch_array($res)) {
      echo '<div style="width:100px;margin:auto;text-align:left">'.$row['price']."&nbsp;";
      echo utf8_encode($row['name'])."\n";
      echo '<div style="clear:both;"></div>';
     

    }
  }
}
?>
&nbsp;<br>
<strong>F&oslash;lgende varer blev fundet:</strong><br>
&nbsp;<br>
<?php
$sql = "SELECT name FROM products WHERE name IN (".$sql_products.") ORDER BY name";

$res = mysql_query($sql);

if($res) {

  if(mysql_num_rows($res) > 0) {

    while($row = mysql_fetch_array($res)) {
            echo "&bull; ".utf8_encode($row['name'])."<br>\n";
    }

  } else {
    echo 'Ingen...<br>';
  }

} else {
    echo 'Ingen...<br>';
}
?>
</td>
Avatar billede w13 Novice
19. juni 2008 - 10:33 #1
<?php

$conn = mysql_connect("localhost", "navn", "password");
// Opretter forbindelse til databasen - så navn og password skal selvfølgelig være de rigtige.

mysql_select_db("databasenavn", $conn);
// Åbner tabellen i databasen.

$sql_products = "";

for($i=1 ; $i<=7 ; $i++) {

  if(!empty($_POST["searchproduct".$i])) {

    $sql_products .= "'".addslashes(utf8_decode($_POST["searchproduct".$i]))."',";
    // Sammensætter en streng bestående af searchproduct1 indtil searchproduct7.

  }
}

$sql_products = substr($sql_products, 0, -1);
// Fjerner sidste komma i strengen.

$sql = "SELECT p.shops_id, s.name, s.postalcode, SUM(p.price) AS price, COUNT(p.price) AS product_count ".
     
"FROM prices AS p ".
     
"LEFT JOIN shops AS s ON s.id = p.shops_id ".
     
"WHERE p.products_id IN (SELECT id FROM products
WHERE name IN (".$sql_products.")) ".
     
((!empty($_POST['postalcode']) && ($_POST['postalcode']!="Postnummer"))?" AND s.postalcode='".$_POST['postalcode']."'":"").
     
"GROUP BY p.shops_id ORDER BY SUM(p.price)";
// Sammensætter SQL-sætningen som skal finde varerne.

$res = mysql_query($sql);
// Kører SQL'en i databasen.

if($res) {
// Hvis søgningen ikke fejlede.

  if(mysql_num_rows($res) > 0) {
  // Hvis der blev fundet noget.

    while($row = mysql_fetch_array($res)) {
    // Kør alle rækker igennem.
      echo '<div style="width:100px;margin:auto;text-align:left">'.$row['price']."&nbsp;";
      echo utf8_encode($row['name'])."\n";
      echo '<div style="clear:both;"></div>';
      // Udskriv varer på siden.
     

    }
  }
}
?>
&nbsp;<br>
<strong>F&oslash;lgende varer blev fundet:</strong><br>
&nbsp;<br>
<?php
$sql = "SELECT name FROM products WHERE name IN (".$sql_products.") ORDER BY name";

$res = mysql_query($sql);

if($res) {

  if(mysql_num_rows($res) > 0) {

    while($row = mysql_fetch_array($res)) {
            echo "&bull; ".utf8_encode($row['name'])."<br>\n";
    }

  } else {
    echo 'Ingen...<br>';
  }

} else {
    echo 'Ingen...<br>';
}
?>
</td>
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 12:30 #2
Tusind tak for den hurtige svartid =) Men kunne dog godt tænke mig hvis du kan gå mere i dybden, kan du det???
Avatar billede w13 Novice
19. juni 2008 - 12:33 #3
Nej, så må du nok spørge ind til det, du er i tvivl om. =)
Avatar billede w13 Novice
19. juni 2008 - 12:33 #4
Hvor har du koden fra/hvorfor skal du forstå den/hvad skal du bruge forståelsen af koden til?
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:07 #5
Det er en jeg har sammensat både ved at læse/kigge lidt rundt, samt forhørt mig om! Jeg bruger den til en hjemmeside jeg har. Den virker fint, men er bare lidt i tvivl om nogle af tingenes helt konkrete betydning.
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:08 #6
I denne løkke plusser den en, hvorfor?

for($i=1 ; $i<=7 ; $i++)
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:10 #7
Kan du forklare denne sætning?

((!empty($_POST['postalcode']) && ($_POST['postalcode']!="Postnummer"))?" AND s.postalcode='".$_POST['postalcode']."'":"").
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:12 #8
Left joine denne på tabellen shops eller på s.id? Og hvorfor???

LEFT JOIN shops AS s ON s.id = p.shops_id ".
Avatar billede w13 Novice
19. juni 2008 - 13:15 #9
for($i=1 ; $i<=7 ; $i++)

betyder:

Sæt $i til 1.
Kør sålænge $i er mindre eller ligmed 7.
Læg 1 til $i hver gang, løkken er løbet igennem.


Og:

((!empty($_POST['postalcode']) && ($_POST['postalcode']!="Postnummer"))?" AND s.postalcode='".$_POST['postalcode']."'":"").

kommer af denne struktur:

BETINGELSE ? "SAND" : "FALSK"

Dvs. hvis (!empty($_POST['postalcode']) && ($_POST['postalcode']!="Postnummer")) er sandt, altså hvis postalcode ikke er empty og ikke indeholder "Postnummer", så skal der skrives " AND s.postalcode='".$_POST['postalcode']."'" ellers skal der skrives "" (ingenting).
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:19 #10
Slap af hvor har du styr på det, FEDT!!!
Avatar billede w13 Novice
19. juni 2008 - 13:19 #11
:P
Avatar billede w13 Novice
19. juni 2008 - 13:20 #12
Du må sige til, hvis du ikke er helt med, for det er ikke helt ukomplicerede sager. =)
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:20 #13
Du får lige dine point nu, men håber stadig du vil skrive tilbage, hvis jeg kommer i tvivl om noget mere. Er lige på job, så har ikke tid til at kigge det ordentligt igennem lige nu...
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:22 #14
Nej, synes også selv det virker lidt uoverskueligt. Utroligt at jeg fik det til at virke, uden at være 100 % inde i alle tingene. Fik du pointene? Har lige accepteret og ved ikke helt hvordan det virker eftersom jeg er ny på siden.
Avatar billede w13 Novice
19. juni 2008 - 13:24 #15
Nej, jeg har ikke fået pointene endnu. Det er fordi du skal markere mit navn i boksen først og så trykke accepter.

BETINGELSE ? "SAND" : "FALSK"
er rigtig godt at mestre.

F.eks. kan du sige:

$string = 1==1 ? "Det er rigtigt!" : "Det er forkert!";

Så slipper man for en grim if-sætning.
I det tilfælde vil $string komme til at indeholde "Det er rigtigt!", fordi 1==1
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:24 #16
Hvad med det Left join?

Altså jeg har 3 tabeller, PRICES (s.id, p.id, price), SHOPS (id, name, postalcode), PRODUCTS (id, name).
Avatar billede w13 Novice
19. juni 2008 - 13:26 #17
LEFT JOIN shops AS s ON s.id = p.shops_id ".

henter bare data fra tabellen shops også, hvor id er ligmed id'erne fra "prices". Den fortæller så også, at "shops" skal omtales "s" i stedet.
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:26 #18
Hvorfor står det samme næsten 2 gange???

"WHERE p.products_id IN (SELECT id FROM products
WHERE name IN (".$sql_products.")) ".
Avatar billede w13 Novice
19. juni 2008 - 13:28 #19
Tak for point! :)
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:29 #20
LEFT JOIN

Okay, så den henter både data fra:

FROM prices AS p
LEFT JOIN shops AS s

Og derefter joiner den på

s.id=p.shops_id

er det rigtigt forstået?
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:30 #21
Velfortjent!!!
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:31 #22
altså fra tabellen prices og tabellen shops?
Avatar billede w13 Novice
19. juni 2008 - 13:32 #23
Nej, den henter altid fra prices.

Og så henter den også fra shops, hvor id'et svarer til et id i prices. =)
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 13:36 #24
Okay, super!!!

I denne sætning

"WHERE p.products_id IN (SELECT id FROM products
WHERE name IN (".$sql_products.")) ".

Hvad foregår der helt præcist her? Hvad betyder kommandoen IN?
Avatar billede w13 Novice
19. juni 2008 - 13:42 #25
"noget IN" tjekker, om noget findes på en liste. F.eks. indsætter $sql_products den kommaseparerede liste, du har genereret i din for-løkke.
Avatar billede w13 Novice
19. juni 2008 - 13:43 #26
(SELECT id FROM products
WHERE name IN (".$sql_products."))

henter så bare endnu en liste, som sammenlignes med p.products.
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 14:16 #27
Okay, den forstår jeg ikke helt.

Først tjekker den p.products_id

bagefter vælger (SELECT) den id fra products hvor (WHERE) navn (name) er en af dem fra $sql_products

og så sammenligner den dem eller hvad?
Avatar billede w13 Novice
19. juni 2008 - 14:54 #28
Nej, IN skal læses som "EKSISTERER I FØLGENDE LISTE".

Så følgende:

WHERE p.products_id IN (SELECT id FROM products
WHERE name IN ($sql_products))

skal forståes:

HVOR p.products_id EKSISTERER I (ALLE id FRA products HVOR name EKSISTERER I sql_products-listen)
Avatar billede w13 Novice
19. juni 2008 - 14:56 #29
Så kort sagt henter den alle posterne, hvor products_id matcher id'er for varer, hvor name findes i din sql_products-liste. :)

Jeg kan ikke helt overskue, hvorfor. :P
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 15:34 #30
Ok, super god forklaring... Tak tak.
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 15:38 #31
Hvad betyder:

utf8_decode
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 15:50 #32
Hvorfor er variablen $i tilføjet i denne sætning.

if(!empty($_POST["searchproduct".$i]))

Du må virkelig undskylde at jeg bombarderer dig med spørgsmål. Men jeg vil bare gerne forstå det hele 100%, og når jeg nu har fat i et geni, hvorfor så ikke få så mange oplysninger som muligt. Du må sige til hvis du skal have flere point...
Avatar billede forholdsvisny Nybegynder
19. juni 2008 - 16:25 #33
Hvad grupperer den? Er det alle varerne til 1 butik?

"GROUP BY p.shops_id ORDER BY SUM(p.price)";
Avatar billede w13 Novice
19. juni 2008 - 17:37 #34
utf8_decode sikrer at der benyttes samme tegnsæt - bl.a. så du kan bruge Æ, Ø og Å.

Variablen $i er med fordi det så bliver searchproduct1, searchproduct2, ..., searchproduct7. Dvs. den tester de syv felter igennem, som har de navne.

GROUP BY p.shops_id sørger for, at der ikke bliver hentet flere poster, der har samme p.shops_id's.
Avatar billede forholdsvisny Nybegynder
20. juni 2008 - 08:42 #35
Super, tak for det!!!
Avatar billede forholdsvisny Nybegynder
20. juni 2008 - 13:39 #36
Hvorfor er der ingen "else" til disse 2 "if"???

if($res) {
// Hvis søgningen ikke fejlede.

  if(mysql_num_rows($res) > 0) {
  // Hvis der blev fundet noget.

    while($row = mysql_fetch_array($res)) {
    // Kør alle rækker igennem.
      echo '<div style="width:100px;margin:auto;text-align:left">'.$row['price']."&nbsp;";
      echo utf8_encode($row['name'])."\n";
      echo '<div style="clear:both;"></div>';
      // Udskriv varer på siden.
Avatar billede w13 Novice
20. juni 2008 - 13:42 #37
Man kan godt lave en if uden at have en else. Så sker der bare ikke noget, hvis betingelsen i if'en ikke blev opfyldt.

Men hvorfor ikke skrive dem sammen til én:

if($res) {
// Hvis søgningen ikke fejlede.

  if(mysql_num_rows($res) > 0) {
  // Hvis der blev fundet noget.

bliver til:

if($res&&mysql_num_rows($res) > 0) {
// Hvis der blev fundet noget.

Så skal du bare huske at fjerne den ene } også.
Avatar billede forholdsvisny Nybegynder
20. juni 2008 - 16:15 #38
Tusind tak!!!
Avatar billede forholdsvisny Nybegynder
21. juni 2008 - 13:08 #39
Hvad betyder addslashes helt præcist?

$sql_products .= "'".addslashes(utf8_decode($_POST["searchproduct".$i]))."',";
Avatar billede w13 Novice
21. juni 2008 - 13:21 #40
Det sørger for, at specialtegn bliver erstattet korrekt, så det ikke går galt, når du prøver at gemme det.

I øvrigt kan du få forklaret alle PHP-funktioner på www.php.net
Det har jeg brugt enormt meget, da jeg lærte PHP.
Avatar billede forholdsvisny Nybegynder
21. juni 2008 - 14:00 #41
Ok, tusind tak!!!
Avatar billede forholdsvisny Nybegynder
21. juni 2008 - 14:04 #42
Jeg har et problem med nedenstående login, den udskriver hele tiden "Wrong Username or Password", men jeg ved de er rigtige??? Du skal kun hjælpe hvis du gider, ellers bare skriv at du ikke gider. Det er fair nok... Og $username, $password, $db_name er alle rigtigt.

<?php
$host="localhost"; // Host name
$username="***"; // Mysql username
$password="***"; // Mysql password
$db_name="********"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

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

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// 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){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>
Avatar billede w13 Novice
21. juni 2008 - 14:37 #43
Og det er ikke fordi det bruger store og små bogstaver på en anden måde, end du skriver det? Det ser umiddelbart rigtigt ud.

Du kan godt prøve at rette:
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
til:
$sql="SELECT * FROM $tbl_name WHERE username='".$myusername."' and password='".$mypassword."'";
Men det burde være det samme.

Og ellers må du lige se, hvad den skriver, hvis du retter:
else {
echo "Wrong Username or Password";
}
til:
else {
echo "Wrong Username or Password<br>";
echo "Brugernavn: ".$myusername."<br>Password: ".$mypassword;
}
Avatar billede forholdsvisny Nybegynder
21. juni 2008 - 14:45 #44
Det ændrer ingenting, burde den ikke have udskrevet det jeg har indtastet? Eller det rigtigt brugernavn og assword??? Kan ikke lige gennemskue hvilket det skulle have udskrevet?
Avatar billede w13 Novice
21. juni 2008 - 14:55 #45
Jo, den burde udskrive:

Wrong Username or Password
Brugernavn: x
Password: y
Avatar billede w13 Novice
21. juni 2008 - 14:56 #46
Hvis du ikke ser det, har du måske ikke lagt det rigtigt ud på nettet :)
Avatar billede forholdsvisny Nybegynder
21. juni 2008 - 15:01 #47
Okay, men hvorfor kommer menuen frem, altså der hvor man skal indtaste oplysningerne. Og den udskriver jo også "Wrong Username or Password"???
Avatar billede w13 Novice
21. juni 2008 - 15:03 #48
Jeg ved ikke, hvad menuen er?

Og den burde skrive "Brugernavn: X, Password: Y" nede udner Wrong username or password, så jeg forstår det heller ikke.
Avatar billede forholdsvisny Nybegynder
21. juni 2008 - 15:08 #49
menuen eller formen om du vil, hvori man indtaster sit brugernavn og kodeord, alt dette virker bortset fra at den udskriver Wrong Username or Password
Avatar billede forholdsvisny Nybegynder
21. juni 2008 - 17:11 #50
Jeg fik det til at virke =) Men kan du give en forklaring på:

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

Jeg synes når jeg læser det der står rudt omkring på disse sider, fatter jeg ingenting. Måske fordi jeg er nybegynder. Du er super god til at forklare så hvis du gider???
Avatar billede w13 Novice
21. juni 2008 - 17:29 #51
Tjaeh, jeg er ikke helt sikker. Det skulle gerne bare sørge for, at specialtegn bliver skrevet ordentligt.
Avatar billede w13 Novice
21. juni 2008 - 17:58 #52
addslashes gør det, at hvis der f.eks. står " så bliver det til \"
Det kaldes at escape tegnet. Så kan det arbejdes med, uden at specialtegnet " kommer på tværs af noget. Og stripslashes gør jo så det, at det fjerner skråstregen igen.

mysql_real_escape_string sørger for, at kun de tegn, som din mysql-database kan have problemer med, bliver erstattet korrekt.
Avatar billede w13 Novice
21. juni 2008 - 18:00 #53
Men da du vist ikke bruger addslashes på myusername og mypassword, kan disse linjer vel fjernes:

$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 12:25 #54
TAk tak og atter tak!!!
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 12:35 #55
Nyt spørgsmål til geniet...

Hvorfor kommer der bare en blank side her efter tryk på opret knappen:

<?php

$url = \'http://minside/accountok.php\';

$user = $_POST[\'username\'];
$pass = $_POST[\'password\'];
$pass2 = $_POST[\'password2\'];
$name = $_POST[\'name\'];
$address = $_POST[\'address\'];
$zip = $_POST[\'zip\'];
$city = $_POST[\'city\'];
$email = $_POST[\'email\'];

if (($pass)!=($pass2))
{
    header("Location: error-pwverify.php");
    Die();
}
function CheckMail($email)
{
if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$email))
    {
        return true;
    }
    else
    {
        return false;
    }
}
if ((empty($email)) || (!CheckMail($email)))
{
    header("Location: error-email.php");
    Die();
}
function CheckZip($zip)
{
    if (eregi("[0-9]", $zip))
    {
        return true;
    }
    else
    {
        return false;
    }
}
if ((empty($zip)) || (!CheckZip($zip)) || (strlen($zip)!=5))
{
    header("Location: error-zip.php");
    Die();
}
if (empty($name))
{
    header("Location: error-name.php");
    Die();
}
if (empty($city))
{
    header("Location: error-city.php");
    Die();
}
if (empty($address))
{
    header("Location: error-address.php");
    Die();
}
$min_lenngth = 6;
if(strlen($user) < $min_lenngth || strlen($pass) < $min_lenngth)
{
    header("Location: error-pwshort.php");
    Die();
}

$conn = mysql_connect("localhost", "xxx", "xxxxx");

mysql_select_db("xxxxxxxxxxx", $conn) or die( "Unable to select database");

$check = mysql_query("select username from users where username=\"$user\"");
$returned = mysql_fetch_array($check);
if(!empty($returned))
{
header("Location: error-userexists.php");
mysql_close($connection);
Die();
}
else
{
where email=\"$email\"");
$returned = mysql_fetch_array($check);
if(!empty($returned))
{
header("Location: error-emailexists.php");
mysql_close($link);
Die();
}
else
$pass=md5($pass);
$request = "INSERT INTO users values(NULL,\'$name\',\'$user\',\'$pass\', \'$email\',\'$zip\',\'$city\',\'$address\')";
$results = mysql_query($request);
if($results)
{
header("Location: accountok.php");
}
else {
header("Location: error-account.php");
}
mysql_close($link);
Die();
}
echo <META HTTP-EQUIV=Refresh CONTENT="0; URL=.$url.">;
?>
Avatar billede w13 Novice
22. juni 2008 - 13:55 #56
Prøv lige at se, om det jeg svarede i dit andet spørgsmål gjorde nogen forskel.
Du skulle rette:
echo <META HTTP-EQUIV=Refresh CONTENT="0; URL=.$url.">;
til noget andet.
Ellers er jeg blank. =S
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 14:14 #57
Det er stadig det samme, jeg fatter det ikke...
Avatar billede w13 Novice
22. juni 2008 - 14:20 #58
Muligvis er fejlbeskeder slået fra på din server?
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 14:38 #59
Kende du et simpelt opret bruger scripts, det er fordi jeg er meget tidspresset. Er igang med et eksamensprojekt. Og alt andet virker på nær dette???
Avatar billede w13 Novice
22. juni 2008 - 14:40 #60
Nej, desværre ikke.

Hvis jeg var dig, ville jeg lave det igen fra bunden. Teste det for hver funktion, du sætter ind. Det er ret slavisk, men så skulle det alligevel komme til at virke inden for en halv til en hel time.
Avatar billede w13 Novice
22. juni 2008 - 14:44 #61
Du kan jo f.eks. starte med at pille alle linjer ud pånær den første del af koden og lige efter den, kan du så redirecte til google:

header("Location:http://www.google.com");

Hvis du ender hos Google, virker den første del. Så kan du prøve at inkludere næste del også.
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 15:51 #62
Hvordan erdet at man sætter kommentar felt rundt om flere linier kode? Altså istedet for //?
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 16:03 #63
Har fundet ud af det...
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 16:07 #64
Jeg er igang med at gøre som ddu sagde med

header("Location:http://www.google.com");

Programmet virker indtil nedentående, det nedenunder returnerer ikke nogen fejl uanset om det er tomt eller man putter fem tal ind eller noget, det fortsætter bae til googles side???

function CheckZip($zip)
{
    if (eregi("[0-9]", $zip)) //here we check if the ZIP code contains only numbers
    {
        return true;
    }
    else
    {
        return false;
    }
}
if ((empty($zip)) || (!CheckZip($zip)) || (strlen($zip)!=4))
//if the ZIP code is empty, the CheckZip function fails or the code length is
//different from 5 chars the user is sent to a previously prepared custom error page
{
    header("Location: error-zip.php"); //the user will be sent to this page
    Die();
}
header("Location:http://www.google.com");
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 16:09 #65
Det er fikset nu =), går vdere...
Avatar billede w13 Novice
22. juni 2008 - 16:13 #66
:)
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 16:34 #67
Den går galt her?

else
{
//here we declare our sql query statement to see if the email address is
//already associated to another account
$check = mysql_query("select email from users where email='$email'");
$returned = mysql_fetch_array($check);

if(!empty($returned))
{
header("Location: error-emailexists.php"); //the user will be sent to this page
mysql_close($conn); //and we close the connection to the database
Die();
}
Avatar billede w13 Novice
22. juni 2008 - 16:40 #68
Hmmm, det virker også for mig som om der er lidt rod i dine if-sætninger. Dvs. som om du ikke afslutter } ordentligt nogle steder, eller måske slet ikke får åbnet {.
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 17:17 #69
Har prøvet at fjerne e-mail checkeren, nu er problemet:

else
$pass=md5($pass);
$request = "INSERT INTO users VALUES (NULL,'$name','$user','$pass', '$email','$zip','$city','$address')";
$results = mysql_query($request);

if($results) {
header("Location: accountok.php"); //the user will be sent to this page
}
Avatar billede w13 Novice
22. juni 2008 - 17:37 #70
Går ud fra, at dén else skal omfatte alle 3 linjer:

else{
  $pass=md5($pass);
  $request = "INSERT INTO users VALUES (NULL,'$name','$user','$pass', '$email','$zip','$city','$address')";
  $results = mysql_query($request);
}
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 18:02 #71
Ok, nu er jeg helt i bunden af koden. Nu mangler det sidste bare, her skulle den gerne henvise til den php side, hvori der står at siden er blevet registreret. Men den hopper uden om hvorfor???:

if($results)
{
header("Location: accountok.php"); //the user will be sent to this page
}
Avatar billede forholdsvisny Nybegynder
22. juni 2008 - 18:21 #72
Har fået det hele til at virke =)

Tak for kampen!!!
Avatar billede w13 Novice
22. juni 2008 - 18:46 #73
;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester