Elektro-Lars Skrevet 8. november 2011 Del Skrevet 8. november 2011 (endret) Har snekret sammen litt kode i ettermiddag, men får det rett og slett ikke til å fungere, det ser ikke ut som at koden vil skrive noe til dokumentet, selv om det har fungert før (har også andre prosjekter på samme serveren, disse fungere utmerket) Koden: index.php: <?php session_start(); ?> <html> <head> <style type="text/css"> #table_background{ background-color:#633; margin:30%; margin-left:35%; margin-top:15%; border-radius:15px; -moz-border-radius:15px; } #tables{ padding-top:100px; padding-bottom:100px; padding:25%; padding-right:15%; padding-left:30%; color:#FFF; } td { color:#FFF; } </style> </head> <body> <?php $con = mysql_connect("localhost", "mittBrukernavn", "Mittpassord"); if(!$con) die("Could not connect: " . mysql_error()); mysql_select_db("minDatabase", $con); $users = mysql_query("SELECT * FROM ForumUsers"); $isLoggedIn = false; while($row == mysql_fetch_array($users)){ if($row["Email"] == $session["emaiL"] && $row["Passord"] == $session["passord"]) $isLoggedIn = True; } if($isLoggedIn){ echo "Logged in!"; } else { echo '<form method="post" action="login.php"> <input type="text" name="email" /> <input type="password" name="password" /> <input type="submit" value="Log in" /> </form> '; } echo "it works!"; ?> </body> </html> login.php <html> <body> <?php $con = mysql_connect("localhost", "mittBrukernavn", "mittPassord"); if(!$con) die("Could not connect: " . mysql_error()); mysql_select_db("minDatabase", $con); $users = mysql_query("SELECT * FROM ForumUsers"); while($row == mysql_fetch_array($users)){ if($row["Email"] == $_POST["email"] && $row["Passord"] == md5($_POST["password"])){ $_session["email"] = $_POST["email"]; $_session["password"] = $_POST["password"]; echo "Logged in!"; } else if ($row["Email"] == $_POST["email"] && $row["Passord"] != $_POST["password"]){ echo "Wrong password!"; } else if ($row["Email"] != $_POST["email"] && $row["Passord"] == $_POST["password"]){ echo "Wrong username!"; } else { echo "Log in failed!"; } } ?> </body> </html> Er alstå i login.php det ikke skjer noe, hadde problemer med index.php først, men fikk fikset det på en eller annen måte... Endret 8. november 2011 av HeloLars Lenke til kommentar
MikkelRev Skrevet 9. november 2011 Del Skrevet 9. november 2011 Har du løst problemet? Vær mer presis. Fjern all unødvendig kode som ikke er relevant for problemet. Da blir det lettere både for deg selv og andre å debugge koden. Bruk echo'er for å både sjekke at koden kommer dit den skal, og at variablene inneholder de verdiene du forventer. Lenke til kommentar
NicholasWalkerHD Skrevet 9. november 2011 Del Skrevet 9. november 2011 while($row == mysql_fetch_array($users)){ Lenke til kommentar
Milktea Skrevet 9. november 2011 Del Skrevet 9. november 2011 For å utdype hvorfor svaret over løser problemet ditt: while($row == mysql_fetch_array($users)) Koden evaluerer om objektet som pekes til i variabelen $row tilsvarer objektet som returneres av funksjonen mysql_fetch_array. Variabelen $row peker antageligvis ikke til noe som helst, mens mysql_fetch_array gir ut en array med innholdet fra databasen. Disse to er følgelig ikke like, og løkken kjøres dermed ikke! Hvis har på feilrapportering vil jeg tro at du får en relevant advarsel om bruk av en variabel som ikke er initialisert. while($row = mysql_fetch_array($users)) Her initialiserer du først $row ved å tildele den et objekt (eller en verdi om du vil). I andre omgang evalueres $row i seg selv på samme måte som dersom du hadde skrevet "if($row)". Siden $row nå peker til en array er den ikke usann i PHP sine øyne, og koden i løkken kjøres. mysql_fetch_array leser hver gang fra listen med data gitt i ressursobjektet fra databasen (det du ba databasen om å gi deg); hver gang du kaller på denne funksjonen vil den returnere neste sett med data fra listen lagret i $users. Når $user er "tom" for nye data vil mysql_fetch_array returnere en verdi slik at $row evalueres som usann, og løkken stopper. Dette visste du kanskje fra før, eller kanskje ikke engang trengte å vite det. Tenkte bare jeg skulle legge igjen en liten forklaring her, fordi jeg husker at jeg selv lurte på tankegangen bak akkurat dette da jeg først begynte å styre med PHP for noen få år tilbake. Lenke til kommentar
Elektro-Lars Skrevet 10. november 2011 Forfatter Del Skrevet 10. november 2011 Er ikke helt blank på programmeringsspråk selv om jeg nylig startet med PHP, har vert innom en god del annet, så kan den om forskjellen mellom "=" og "==", men her gjorde jeg nok en skrivefeil Takker for alle svar Lenke til kommentar
Elektro-Lars Skrevet 12. november 2011 Forfatter Del Skrevet 12. november 2011 (endret) Fikk dette til å fungere, men fant ut av jeg skulle integerer det inn i Wordpress, så endret koden til dette: <?php require('http://augustuen.com/wp-blog-header.php'); if($_GET["action"] == "login"){ if(!user_pass_ok($_POST["email"], $_POST["password"])) //$_COOKIE["isLoggedIn"] = True; echo "logged in!"; else //$_COOKIE["isLoggedIn"] = False; echo "Not Logged in!"; //header("Location: index.php"); } else { echo "unknown action"; }?> Men nå ser ikke denne ut til å fungere heller... Endret 12. november 2011 av HeloLars Lenke til kommentar
torbjørn marø Skrevet 12. november 2011 Del Skrevet 12. november 2011 (endret) require('http://augustuen.com/wp-blog-header.php'); Er dette riktig? Man kan vel ikke gjøre en require via http? Skulle kanskje bare vært: require('wp-blog-header.php'); ? Altså, jeg har ikke peiling, men det virket bare så rart. Endret 12. november 2011 av torbjørn marø Lenke til kommentar
Elektro-Lars Skrevet 12. november 2011 Forfatter Del Skrevet 12. november 2011 (endret) problemet er at fila som inneholder denne koden ligger i en undermappe, mens wp-blog-header.php ligger i / (rot) Dessuten får jeg beskjed om at det ikke er noen filer med det navnet dersom jeg prøver noe annet enn http Endret 12. november 2011 av HeloLars Lenke til kommentar
Occi Skrevet 12. november 2011 Del Skrevet 12. november 2011 (endret) Om mappestrukturen ser slik ut: - fil1.php - fil2.php - mappe1 * fil3.php Og du er i fil3.php, og skal inkludere fil1.php så blir det bare require("../fil1.php"); Endret 12. november 2011 av Occi Lenke til kommentar
Elektro-Lars Skrevet 12. november 2011 Forfatter Del Skrevet 12. november 2011 Merkelig, dette fungerte ikke tidligere, men nå fungerte det visst Lenke til kommentar
Occi Skrevet 12. november 2011 Del Skrevet 12. november 2011 (endret) Da har du nok skrevet noe feil. For å kort forklare: .. = opp en mappe . = opp en mappe (i Linux er . 'this directory') / = root-mappe (dvs. DocumentRoot, om alt er i /www/ så er det der) Endret 12. november 2011 av Occi Lenke til kommentar
NicholasWalkerHD Skrevet 12. november 2011 Del Skrevet 12. november 2011 Om mappestrukturen ser slik ut: - fil1.php - fil2.php - mappe1 * fil3.php Og du er i fil3.php, og skal inkludere fil1.php så blir det bare require("../fil1.php"); require("./fil1.php"); vil og virke. Lenke til kommentar
Occi Skrevet 12. november 2011 Del Skrevet 12. november 2011 Du har visst rett. Har alltid brukt .. (pga. Linux-bruk) og tok utgangspunkt i at . var det samme som i Linux og, men det var det visst ikke. Lenke til kommentar
Elektro-Lars Skrevet 12. november 2011 Forfatter Del Skrevet 12. november 2011 Er vant med .. og . fra Linux (selv om det også fungerer i Windows), men var visst en liten skrivefeil igjen Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå