Avatar billede swaq Nybegynder
06. marts 2003 - 20:36 Der er 19 kommentarer og
2 løsninger

input, variabel, include = problem!!!

Hvordan får man nedenstående til at virke?
<form action="<?=$PHP_SELF;?>" method="post" onsubmit="return checkForm(this)">

    <input type="text" name="user">       
    <button type="submit">LogIn</button>
</form>

Ideen er, at submit skal loade side igen, denne gang med "user"  - initialiseret om man vil...

Øverst på siden står der:
if (isset($user)){...}
//har også prøvet med:
if (isset($_POST["user"])){...}

Problemet er, at $user aldrig når at blive initialiseret, hvorfor if-sætningen altid springes over...

PHP_SELF ser således ud:
"index.php?goPage=chatlogin"
mao. jeg bruger include til at loade siderne på min hp med...

Med håb om hjælp...

/swaq
Avatar billede halnet Nybegynder
06. marts 2003 - 20:50 #1
$_POST['user']
Avatar billede halnet Nybegynder
06. marts 2003 - 20:51 #2
lidt for hurtig... så ikke du havde prøvet ;)
Avatar billede swaq Nybegynder
06. marts 2003 - 20:51 #3
gør ingen forskel... desværre...
Avatar billede swaq Nybegynder
06. marts 2003 - 20:52 #4
ok :O)
Avatar billede fangel Nybegynder
06. marts 2003 - 20:58 #5
prøv $HTTP_POST_VARS['user'] det kan være en gammel PHP version...
Avatar billede swaq Nybegynder
06. marts 2003 - 21:01 #6
jeg bruger ellers den sidste nye...
Avatar billede fangel Nybegynder
06. marts 2003 - 21:03 #7
OK, vidste ikke om det var din server...
Avatar billede fangel Nybegynder
06. marts 2003 - 21:06 #8
lav en side med KUN dette...

<?php

if(isset($_GET['goPage']) AND $_GET['goPage'] == "chatlogin"){ // for at lege vi er dit chatsjov...

  if(isset($_POST['user'])){
    echo $_POST['user'] . "<br><hr><br>";
  }

?>
<form action="?goPage=chatlogin" method="post" onsubmit="return checkForm(this)">

    <input type="text" name="user">     
    <button type="submit">LogIn</button>
</form>
<?php

}

?>

for at teste at det virker... (du må dog godt smide <html> osv ind, men ikke mere end det, prøv det, og se hvad der sker...)

Morten
Avatar billede swaq Nybegynder
06. marts 2003 - 21:13 #9
Hvad nu hvis man er kommet fra chatindex.php til chatlogin.php, således:
Header ( "Location: index.php?goPage=chatlogin" );

og på denne side bruger:
Header ( "Location: index.php?goPage=chatindex" );
til at komme tilbage til chatindex.php, denne gang med variablen $user initialiseret???

Hvor dumper man ind på chatindex.php??? Dumper man ind i toppen (altså fra starten af filen) eller dumper man ind der hvor man sidst forlod den (jf. linie 2 i dette indslag; Header ( Loc...
Avatar billede swaq Nybegynder
06. marts 2003 - 21:13 #10
ok... prøver lige...
thx
Avatar billede fangel Nybegynder
06. marts 2003 - 21:17 #11
hov, glemte lige at slette onSubmit="...."
Avatar billede swaq Nybegynder
06. marts 2003 - 21:20 #12
Det virker glimragende :-)

Gad vide hvad der så er galt???
Avatar billede swaq Nybegynder
06. marts 2003 - 21:21 #13
Smider lige koden...
Her er login.php
-----------------------------
<?
include ( "config.php" );
global $user;

if ( isset($_POST['user']) && $user<>"" && strlen($user)<=15 ) {
    $oldStamp = time() - $maxAge;
    $sql = "delete from messages where stamp<$oldStamp";
    mysql_query( $sql );
    $user = addslashes( $user );
    $sql = "insert into users set user='$user'";
    $res = mysql_query( $sql );
    //Hvis oprettelsen af ny bruger gik godt
    if ( mysql_affected_rows()>0 ) {
        $msg = "<b>Ny bruger logget på</b>";
        $stamp = time();
        $sql = "insert into messages ( user, msg, stamp ) values ( '$user', '$msg', '$stamp' )";
        mysql_query( $sql );
        session_start();
        session_register( "user_name" );
        $user_name = $user;
        Header ( "Location: index.php?goPage=chatindex" );
    }
    //Oprettelsen af ny bruger gik skidt...
    else {       
        $err_msg = "<div style=\"color:#ff0000;font-weight:bold;text-align:center;\">Dette nick er allerede optaget</div>";       
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>&nbsp;&nbsp;..:: LogIn ::..&nbsp;&nbsp;</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
div, input, button {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
input {
    width: 200px;
    border: 1px dashed #336699;
}
button {
    background-color: #dedede;
    border: 1px solid #336699;
    margin-left: 15px;
}
</style>
<script type="text/JavaScript">
var d=document;
function checkForm(f) {
    if ( f.user.value=="" ) {
        alert("Du skal skrive et chat-nick");
        return false;
    }
    if ( f.user.value.length>15 ) {
        alert("Dit chat-nick må højest være på 15 tegn");
        return false;
    }
}
</script>
</head>
<body>
<div style="padding-top:120px;" align="center">
<?=$err_msg?>
<b>Skriv dit chat-nick og tryk 'LogIn':</b>
<form action="<?=$PHP_SELF;?>" method="post" onsubmit="return checkForm(this)">
    <input type="text" name="user">       
    <button type="submit">LogIn</button>
</form>

</div>
<script type="text/JavaScript">d.forms[0].user.focus();</script>
</body>
</html>
Avatar billede swaq Nybegynder
06. marts 2003 - 21:22 #14
Og her er index.php
----------------------------
<?
include ( "../chat/config.php" );
unset( $user_name );
session_start();
if ( !isset($user_name) || $user_name=="" ) Header ( "Location: index.php?goPage=chatlogin" );
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>chatten</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- ***********************************************************************
                        OleBole-Chat Version 1.0
                    (c) Copyright Ole Clausen, 2003
                   
    This chat was downloaded from http://www.eksperten.dk/spm/
        The code is free to use if you leave these lines untouched.
              If you alter the code, dont erase these lines.
                  Add a modification-notice instead.
   
************************************************************************ -->
<style type="text/css">
td {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
.msgTbl {
    width: 100%;
}
td, input, button {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
input {
    width: 100%;
    border: 1px dashed #336699;
}
button {
    background-color: #dedede;
    border: 1px solid #336699;
    margin-left: 15px;
}
.u {
    width: 100px;
    color: #ff0000;
    vertical-align: top;
    padding: 5px 12px 5px 5px;
    border-bottom: 1px dashed #999999;
}
.m {
    padding: 5px;
    border-bottom: 1px dashed #999999;
   
}
.time {
    color: #336699;
    font-size: 9px;
}
.clHidFrame {
    position: absolute;
    width: 1px;
    height: 1px;
    left: 0px;
    top: 0px;
}
#chat {
    width: 450px;
}
</style>
<script type="text/JavaScript">
var maxNumMsgs = <?=$maxNumMsgs?>;
var hiCol = "<?=$hiCol?>";
var loCol = "<?=$loCol?>";
var d=document;
function gE(id){return d.getElementById(id)}
function gA(o,tN){return o.getElementsByTagName(tN)}
function writeChat( a ) {
    var tbl = gE("chat");
    for (i=0; i<a.length; i+=3) {
        var bgCol = ( gA(tbl, "TR")[0].style.backgroundColor=="#ffffff" )? loCol : hiCol;
        var newRow = tbl.insertRow(0);
        var newCell = newRow.insertCell(0);
        newCell.innerHTML = "<b>" + a[i] + "</b><div class=\"time\">[" + a[i+1] + "]</div>";
        newCell.className = "u";
        var newCell = newRow.insertCell(1);
        newCell.innerHTML = a[i+2];
        newCell.className = "m";
        newRow.style.backgroundColor = bgCol;
    }
    var numMsgs = gA(tbl, "TR").length;
    while ( numMsgs>maxNumMsgs ) {
        tbl.deleteRow(numMsgs-1);
        numMsgs--;
    }
}
window.onunload = function() {
    window.open( "logout.php", "logOutWin", "width=100,height=100" );
}
</script>
</head>
<body>

<div style="width:470px">
<div id="bla" style="height:250px;overflow:auto;">
<table id="chat" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td colspan="2">&nbsp;</td>
</tr>
</table>

</div>

<table class="msgTbl" cellspacing="0" cellpadding="0" border="0">
<tr>
    <form name="msgForm" target="msgFrame" action="msg.php" method="post">
        <td>
            <input type="text" name="msg">
        </td>
        <td style="width:10px;"><button type="submit">Send</button></td>
    </form>
    <form name="logoutForm" action="../index.php?goPage=start" method="post">
        <td style="width:10px;"><button type="submit">Logout</button></td>
    </form>
</tr>
</table>
</div>

<iframe name="msgFrame" class="clHidFrame" src="msg.php" frameborder="0"></iframe>
<iframe name="chatFrame" class="clHidFrame" src="chat.php" frameborder="0"></iframe>
</body>
</html>
Avatar billede swaq Nybegynder
06. marts 2003 - 21:23 #15
gætter på problemet er i de 4-5 første linier i index.php...
kan bare ikke lige se problemet klart nok til at afhjælpe det...
Avatar billede fangel Nybegynder
06. marts 2003 - 21:27 #16
har lige prøvet at ændre staten af login... copy-paste den selv ind...


-----------------------------
<?
include ( "config.php" );
global $user;

if ( isset($_POST['user']) ){
  if($_POST['user'] == "" && strlen($user)>=15 ) {
    echo "username is fucked up... 2bad";
  }
  else{
    $oldStamp = time() - $maxAge;
    $sql = "delete from messages where stamp<$oldStamp";
    mysql_query( $sql );
    $user = addslashes( $user );
    $sql = "insert into users set user='$user'";
    $res = mysql_query( $sql );
    //Hvis oprettelsen af ny bruger gik godt
    if ( mysql_affected_rows()>0 ) {
      $msg = "<b>Ny bruger logget på</b>";
      $stamp = time();
      $sql = "insert into messages ( user, msg, stamp ) values ( '$user', '$msg', '$stamp' )";
      mysql_query( $sql );
      session_start();
      session_register( "user_name" );
      $user_name = $user;
      Header ( "Location: index.php?goPage=chatindex" );
    }
    //Oprettelsen af ny bruger gik skidt...
    else {     
      $err_msg = "<div style=\"color:#ff0000;font-weight:bold;text-align:center;\">Dette nick er allerede optaget</div>";     
    }
  }
}
?>.................
Avatar billede swaq Nybegynder
06. marts 2003 - 21:38 #17
hmm... virker stadig ikke...

se selv:
http://www.wasf.dk/index.php?goPage=chatlogin
Avatar billede avminarm Juniormester
06. marts 2003 - 22:08 #18
har du prøvet med $_SERVER['PHP_SELF'] i stedet for blot PHP_SELF
Avatar billede swaq Nybegynder
06. marts 2003 - 22:38 #19
>har du prøvet med $_SERVER['PHP_SELF'] i stedet for blot PHP_SELF

ja, gør tilsyneladende ingen forskel...
Avatar billede avminarm Juniormester
07. marts 2003 - 12:10 #20
Denne linie skal alle user være $_POST og så ville jeg rette til flg:
if ( isset($_POST['user']) && !empty($_POST['user']) && strlen($_POST['user'])<=15 ) {
Avatar billede swaq Nybegynder
09. marts 2003 - 22:34 #21
Spørgsmålet lukkes...
Tak for jeres input, desværre ikke lige hvad der manglede (har stadig ikke hittet ud af fejlen...)

PS. Ovenstående link er ligeledes lukket...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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