Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Probleme la publicare
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
nechita_v_i



Data înscrierii: 09/Sep/2004
Mesaje: 9

Trimis: Mie Oct 13, 2004 1:04 pm    Titlul subiectului: Probleme la publicare  

Salut!

Am facut un site in php si dupa ce l-am pus pe net am vazut ca unele module nu mai mergeau. Eu am lucrat cu apache 2.0 si php 4.3.6.
Unde ar putea fi problema?
Sus  
taipan



Data înscrierii: 24/Sep/2004
Mesaje: 44

Trimis: Mie Oct 13, 2004 1:09 pm    Titlul subiectului:  

Incearac si tu sa detaliezi ce erori iti trimite ca sa ne dam seama ce e de vine: webserverul, php-ul sau programatorul :twisted:
Sus  
nechita_v_i



Data înscrierii: 09/Sep/2004
Mesaje: 9

Trimis: Mie Oct 13, 2004 11:11 pm    Titlul subiectului:  

Uite, de exemplu am o pagina unde se introduc niste date:

<tr><td<?php if (isset($errors->firstname)) echo ' class="error"';
else echo ' class="error"'; ?> align="center">&nbsp;<?php echo $lng['firstname']; ?></td>
<td>
<input type="text" name="firstname" size="30" maxlength="32" value="<?php pv($firstname); ?>"></td>

<tr><td<?php if (isset($errors->lastname)) echo ' class="error"';
else echo ' class="error"'; ?> align="center">&nbsp;<?php echo $lng['lastname']; ?></td>
<td>
<input type="text" name="lastname" size="30" maxlength="32" value="<?php pv($lastname); ?>"></td></tr>



if (isset($HTTP_POST_VARS))
{
$frm = $HTTP_POST_VARS;
$errormsg = validate_form($frm, $errors);

if (empty($errormsg))
{
saveOrderInfo($HTTP_POST_VARS);
$template_to_include = $CFG->templatedir ."/tpl.xxxxxx.php";
}
}


aceste date sunt apelate in alta pagina.

echo $firstname .' '. $lastname .'<br>'.;

Problema este ca nu le mai afiseaza.
Sus  
un_guru



Data înscrierii: 25/Iul/2004
Mesaje: 153
Locație: Miecurea Ciuc

Trimis: Joi Oct 14, 2004 1:31 pm    Titlul subiectului:  

incearca in loc de $lastname sa folosesti $_REQUEST['lastaname']
mai multe detalii gasesti in manualul php la capitolul configurare/register_globals
Sus  
nechita_v_i



Data înscrierii: 09/Sep/2004
Mesaje: 9

Trimis: Joi Oct 14, 2004 5:16 pm    Titlul subiectului:  

Ma gandesc ca daca pe localhost mergea ok, inseamna ca nu erau greseli in cod. Nu stiu unde ar putea fi problema.
Sus  
AEROStyle



Data înscrierii: 27/Mar/2004
Mesaje: 29
Locație: IT Universe

Trimis: Joi Oct 14, 2004 5:37 pm    Titlul subiectului:  

Cei care au configurat serverul pe care tu ai uploadat site-ul au pus in php.ini la register_globals valoarea Off [din motive desecuritate si performanta].
Deci variabilele super globale : HTTP_POST_VARS, HTTP_GET_VARS, HTTP_COOKIE_VARS, etc nu se mai pot afisa prin simpla comanda :
an style="color: #000000"><?php echo $variabila_super_globala ; 
Probabil ca tu, pe localhost, ai register_globals = On si scripturile tale nu sunt compatibile cu configurarea de pe serverul extern.
Incearca, deci sa folosesti : $_GET['variabila'], $_POST['variabila'], $_COOKIE['variabila'], etc, in loc de $variabila, cand variabila e una super globala :!:
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Joi Oct 14, 2004 7:29 pm    Titlul subiectului:  

AEROStyle a scris: ...Incearca, deci sa folosesti : $_GET['variabila'], $_POST['variabila'], $_COOKIE['variabila'], etc, in loc de $variabila, cand variabila e una super globala :!:

$_GET, $_POST, etc se numesc variabile superglobale (sau autoglobale), etc, etc... Lamureste-ti notiunile :).

----

In alta ordine de idei, ametiti omul :), explicatii:

1. Daca setarea register_globals din php.ini este pe On atunci valorile pasate scriptului prin GET, POST si cookie-urile se regasesc in variabile globale cu numele potrivite. De exemplu:

index.php?nume=valoare

va rezulta in existenta unei variabile $nume cu valoarea 'valoare'.

2. Daca setarea register_globals din php.ini este pe Off atunci valorile pasate scriptului prin GET, POST si cookie-urile se regasesc NUMAI in array-urile predefinite $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS. De exemplu:

index.php?nume=valoare

NU va mai rezulta in existenta unei variabile $nume cu valoarea 'valoare'.

In versiunile mai noi de PHP (parca de la 4.2.0) acestea 3 sunt inlocuite de $_GET, $_POST, $_COOKIE, care sunt superglobale (nu mai trebuie sa le declari ca global in functii).

Este, mai pe larg, ce ti s-a mai spus si mai inainte.

Daca asta e problema ta, fa urmatoarea smecherie: schimba in php.ini in asa fel incat sa ai register_globals=Off (daca ai Windows, php.ini il gasesti in C:\Windows).

O sa observi, surprins, ca site-ul nu-ti mai merge nici pe localhost :) (probabil).

Numa' bune.
Sus  
nechita_v_i



Data înscrierii: 09/Sep/2004
Mesaje: 9

Trimis: Joi Oct 14, 2004 9:37 pm    Titlul subiectului:  

Multumesc pt raspunsuri dar register_globals=On pe serverul de net si Off pe localhost. Am incercat cu $_GET['firstname']. $POST['firstname'],$_REQUEST['lastaname'], intr-adevar merge pt prima pagina care apeleaza var. dar ce ma fac, ca mai le mai apelez o data in pag urmatoare si nu mai apar.

Deci, recapitulez: am o pag in care se introduc niste date, apoi o pagina care apleaza aceste date( merge cu $GET, $POST sau $REQUEST) si de aici o a treia pag care apeleaza si ea datele resp.(aici nu mai apar).

O alta problema cu care ma confrunt este aceea ca nu mai pot sa ma "loghez" la pagina de administrare. Dupa ce scriu username-ul si pass. revine la pag de login fara sa se intample nimic. Daca scriu un user. si un pass. gresit imi apare un msg. "login incorect, reincercati", ceva de genu.
Sus  
un_guru



Data înscrierii: 25/Iul/2004
Mesaje: 153
Locație: Miecurea Ciuc

Trimis: Joi Oct 14, 2004 9:55 pm    Titlul subiectului:  

pai nu apar pentru ca nu sunt trimise pe pagina a treia
pagina2.php
an style="color: #000000"><?php session_start();   $_SESSION = $_POST; /* asta e o formulare "vulgara", inregistrezi totul in $_SESSION, in mod normal iti inregistrezi numa ce iti trebuie */ echo "....lalalalala ". $_POST['variabila'] . " = ". $_SESSION['variabila']; 
pagina3.php
an style="color: #000000"><?php session_start(); echo " oare acum tine minte variabilele?" echo $_SESSION['variabila'] . " ... se pare ca da"; 

cu loginul ... nu stiu cum procedeaza codul tau, poate ne arati si noua sa vedem unde e buba. Dar daca nu folosesti $_SESSION sau $_COOKIE pentru a tine minte utilizatorul ... poti sa te logezi toata ziua ca tot dejaba
Sus  
nechita_v_i



Data înscrierii: 09/Sep/2004
Mesaje: 9

Trimis: Vin Oct 15, 2004 7:24 am    Titlul subiectului:  

lib.login.php
<?php function isLoggedIn() {     global $USER;     return isset($USER['user']) && !empty($USER['user']['u_name']);                                 && nvl($USER['ip'])                                 == $_SERVER['REMOTE_ADDR']; } function requireLogin() {     global $CFG, $USER;     if (! isLoggedIn())     {         $USER['wantsurl'] = qualified_me();         redirect($CFG->wwwroot ."/login.php");     } } function requirePrivilege($privilege) {     global $CFG, $USER;     if ($USER['user']['u_privilege'] != $privilege)     {         include_once($CFG->templatedir ."/tpl.privileges_fail.php");         exit;     } } function hasPrivilege($privilege) {     global $USER;     return $USER['user']['u_privilege'] == $privilege; } function resetPassword($id) {     global $CFG, $lng, $language;     $sql = db_query("SELECT u_name,                             u_privilege,                             u_email                      FROM   ". DB_PREFIX ."users                      WHERE  u_id = $id                     ");          $user = db_fetch_object($sql);        $newpassword = generatePassword();     $sql = db_query("UPDATE ". DB_PREFIX ."users                      SET    u_password = '" . md5($newpassword) ."'                      WHERE  u_id = $id                     ");          $var = new Object;     $var->url = $CFG->wwwroot;     $var->user = $lng['username'];     $var->username = $user->u_name;     $var->password = $lng['username'];     $var->newpassword = $newpassword;     $emailbody = file_get_contents ($CFG->infodir."/".$language."_mail_password.txt");     $emailbody .= readTemplate($CFG->templatedir ."/tpl.mail_password.php", $var);         if (RUN_LOCAL == 'false')     {         mail("$var->username <$user->u_email>", $CFG->shopname." ".$lng['password'], $emailbody);     }          else     {         $localtext = $var->username ." <". $user->u_email ."> - ".$lng['password']." - " . $CFG->shopname." ".$lng['password']. "\n". $emailbody;         $localmail = fopen("login.txt", "w+");         fwrite($localmail, $localtext);         fclose($localmail);     } } function checkEmail($email) {     $sql = db_query("SELECT 1                       FROM   ". DB_PREFIX ."users                      WHERE  u_email = '$email'                     ");     return db_num_rows($sql); } function readTemplate($filename, &$var) {     $temp = str_replace("\", "\\\", implode(file($filename), ""));     $temp = str_replace('"', '"', $temp);     eval("\$template = "$temp";");     return $template; } ?>

login.php

<?php include_once("./config.inc.php"); $DOC_TITLE = "TITLE"; if (matchReferer() && isset($_POST)) {     $user = verifyLogin($_POST['username'], $_POST['password']);     if ($user)     {         $USER['user'] = $user;         $USER['ip'] = $_SERVER['REMOTE_ADDR'];         header("Location: ". $CFG->wwwroot ."/admin/index.php");         db_query("UPDATE ". DB_PREFIX ."users                   SET    u_last_login = NOW()                   WHERE  u_name = '". $_POST['username'] ."'                  ");         exit();     }     else     {         $errormsg = $lng['invalid_login'];         unset($_POST['username']);         unset($_POST['password']);     } } include_once($CFG->templatedir ."/tpl.login.php"); function verifyLogin($username, $password) {     if (empty($username) || empty($password))     {         return false;     }     $sql = db_query("SELECT u_name,                             u_password,                             u_privilege,                             u_email                      FROM   ". DB_PREFIX ."users                      WHERE  u_name = '$username'                      AND    u_password = '". md5($password) ."'                     ");     return db_fetch_array($sql); } ?>

tpl.login.php

an style="color: #000000"><?php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title><?php echo $DOC_TITLE; ?></title> <link media="screen" rel="stylesheet" type="text/css" href="./style.css"> <script language="JavaScript" type="text/javascript"> <!-- function doFocus() {     document.entryform.username.focus(); } // --> </script> </head> <body onload="doFocus()"> <h1><?php echo $DOC_TITLE; ?></h1> <hr size="2"> <br> <div align="center"> <table border="1" cellpadding="20" cellspacing="0" width="70%" class="box" background="<?php echo $CFG->bannerdir; ?>/bbg.gif" summary=""> <tr valign="middle">     <td><?php if (! empty($errormsg)) { ?>         <div class="error" align="center"><?php pv($errormsg); ?></div>         <?php } ?>         <form name="entryform" method="post" action="<?php echo $ME; ?>">         <table summary="">         <tr><td align="left" class="descsmall" nowrap="nowrap"><?php echo $lng['username']; ?>:<br>                 <input type="text" name="username" size="20" maxlength="16" value="<?php pv($frm['username']); ?>"></td></tr>         <tr><td>&nbsp;</td></tr>         <tr><td align="left" class="descsmall" nowrap="nowrap"><?php echo $lng['password']; ?>:<br>                 <input type="password" name="password" size="32" maxlength="32"></td></tr>         <tr><td>&nbsp;</td></tr>         <tr><td align="left">                 <input type="submit" value="<?php echo $lng['login']; ?>">&nbsp;&nbsp;                 <input type="button" value="<?php echo $lng['cancel']; ?>" onClick="javascript&#058; history.go(-1)"></td></tr>         <tr><td>&nbsp;</td></tr>         <tr><td align="left"><span style="font-size: medium">         <a href="<?php echo $CFG->wwwroot; ?>/forgot_password.php"><?php echo $lng['recover_password']; ?>?</a>     <hr>         <a href="<?php echo $CFG->wwwroot; ?>/index.php"><?php echo $lng['goto_webshop']; ?></a> </span></td></tr>         </table>         </form></td> </tr> </table> </div> </body> </html> 

faceti abstractie de lipsa <?php nu stiu de ce nu apar. [/php]
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Vin Oct 15, 2004 9:01 am    Titlul subiectului:  

un_guru a scris: Dar daca nu folosesti $_SESSION sau $_COOKIE pentru a tine minte utilizatorul ... poti sa te logezi toata ziua ca tot dejaba


Citeste cu atentie fraza asta :).

Daca nu stochezi user-ul curent undeva in sesiune sau cookie-uri (cel mai bine sesiune), cam cum sa stii in accesele urmatoare daca user-ul a fost logged in cu succes ?

Si in plus, uita-te in login.php, e varza. Iti lipsesc o gramada de <?php, cam peste tot.

Numa' bune.
Sus  
apann



Data înscrierii: 17/Mai/2004
Mesaje: 93

Trimis: Vin Oct 15, 2004 9:56 am    Titlul subiectului:  

Poate o fi si din cauza ca redirectezi scriptul in caz de autentificare apoi faci un update la baza de date.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community