[PHP/JS] Login formulier werkt niet i.c.m. JS popup

Pagina: 1
Acties:
  • 221 views sinds 30-01-2008

  • DeepFreeze.NL
  • Registratie: April 2006
  • Laatst online: 12-01 16:11
Ik wil graag dat na het inloggen automatisch een popupvenster tevoorschijn komt. Wanneer ik nu op "Login" druk verschijnt er een lege popupscherm i.p.v. admin.php. Het "if(isset($_POST['submit'])) {" in user_login.php wordt niet geaccepteerd. Hoe kan dat?

Ik heb het volgende:

HTML:
1
2
3
4
5
6
7
<form id="login" name="login" method="post" onsubmit="popup('includes/user_login.php');">
<table>
<tr><td>Username</td><td>:</td><td><input name="username" type="text" /></td></tr>
<tr><td>Password</td><td>:</td><td><input name="password" type="password" /></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td><input class="button" name="submit" type="submit" value="Login" /></td></tr>
</table>
</form>


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
session_start();
include('connect_db.php');

if(isset($_POST['submit'])) {
    
    // Username and password sent from signup form
    // First we remove all HTML-tags and PHP-tags, then we create a sha1-hash
    $username = strip_tags($_POST['username']);
    $password = sha1(strip_tags($_POST['password']));
    // Make the query a wee-bit safer
    $result = mysql_query("SELECT * FROM hidden WHERE hidden = '".mysql_real_escape_string($username)."' AND hidden = '".mysql_real_escape_string($password)."' LIMIT 1;") or die(mysql_error());
    
    //Gives error if user and user password doesn't exist
    if(1 != mysql_num_rows($result)) {
        // MySQL returned zero rows (or there's something wrong with the query)
        header('Location: ../index.php?page=idiot');
    } else {
        // We found the row that we were looking for
        $row = mysql_fetch_assoc($result);
        // Register the user ID for further use
        $_SESSION['member_ID'] = $row['ID'];
        header('Location: ../pages/admin.php');
    }
}

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:28

Janoz

Moderator Devschuur®

!litemod

Je formulier wordt helemaal niet verstuurd. Ten eerste levert de onsubmit geen true op waardoor het formulier niet verstuurd wordt, en daarnaast open je in je popup gewoon een url en submit je er helemaal geen formulier heen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • DeepFreeze.NL
  • Registratie: April 2006
  • Laatst online: 12-01 16:11
Janoz schreef op dinsdag 15 mei 2007 @ 17:59:
Je formulier wordt helemaal niet verstuurd. Ten eerste levert de onsubmit geen true op waardoor het formulier niet verstuurd wordt, en daarnaast open je in je popup gewoon een url en submit je er helemaal geen formulier heen.
Ja, maar hoe kan ik dat formulier dan wel naar het .php bestand sturen? Want ik kan daar al een paar dagen geen oplossing voor vinden... ;(

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Komaan... Lees dit eens :|
Sowieso wil je de popup pas openen nadat de login geverifieerd is; dus de pagina die de login checked zal wat JS moeten uitpoepen waarmee je de popup opent.

[ Voor 43% gewijzigd door RobIII op 15-05-2007 18:19 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • DeepFreeze.NL
  • Registratie: April 2006
  • Laatst online: 12-01 16:11
RobIII schreef op dinsdag 15 mei 2007 @ 18:16:
Komaan... Lees dit eens :|
Sowieso wil je de popup pas openen nadat de login geverifieerd is; dus de pagina die de login checked zal wat JS moeten uitpoepen waarmee je de popup opent.
Ik weet dat je geen script-requests mag maken, maar ik heb ook al gekeken hoe je van "header('Location: ../pages/admin.php');" in het bestand "user_login.php" een popup kan maken, maar ik kan daar echt niets over vinden.

Ik vraag hier ook niet om een compleet script, omdat ik daar ook simpelweg niets van leer. Ik wil alleen een beetje op weg geholpen worden door hoe ik dit wel moet aanpakken.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:28

Janoz

Moderator Devschuur®

!litemod

Tja, met header kan dat inderdaad niet. Nogal logisch aangezien dat iets op de server is. Popups maak je op de client. Probeer gewoon even voor jezelf duidelijk te krijgen wat je wilt hebben. Dit in stapjes op te delen en vervolgens voor elk stapje een oplossing zoeken. Wat je nu gedaan hebt is gewoon complete onzin en duidelijk een resultaat van wat vreubel gepiel zonder dat je daadwerkelijk door hebt hoe het nu eigenlijk werkt.

Om je op weg te helpen zal ik alvast wat stapjes neerzetten:
-Op het moment van submitten een popup aanmaken
-Zorgen dat het formulier wordt gesubmit naar deze popup

Het eerste stapje heb je al bijna af, alleen meot je geen pagina openen in die popup. Dat wil je immers niet, je wilt je formulier er heen sturen. In het tweede stapje ga je je formulier submitten naar je popup. Hoe je dat doet? Een duwtje in de juiste richting is het gebruik van een target, en hoe je dat toe moet passen mag je mooi opzoeken in een leuke html reverence (die bij msdn is wel goed, gewoon msdn.microsoft.com in de browser tikken en dan via library op zoek naar dhtml en dan bij form kijken).

Kortom: Ga eens echt ontwikkelen ipv aanprutsen

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

En ik wil je vragen om de tips van hierboven goed door te nemen en dit stappenplan te gebruiken voor een eventueel nieuw topic.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1

Dit topic is gesloten.