Stieler: Problem mit Sessions nach Umstellung von PHP 4 auf PHP 5

Beitrag lesen

Hallo

ich habe ein kleines Problem. Nachdem ich einen neuen Server habe, auf dem jetzt PHP 5 und MYSQL 5.026 laufen statt zuvor PHP 4.4 und MYSQL 4.1, laufen viele meiner alten Skripte nicht mehr fehlerfrei.

vielleicht sind diese Skripte ja auch alles andere als fehlerfrei.

Hat jemand eine Idee, was ich auf dem neuen Server bzw. in der PHP.ini oder so ändern müsste, damit die Skripte wieder einwandfrei laufen?

Weder PHP5 noch MySQL 5.0.26 haben prinzipiell Probleme mit solch kleinen Datenmengen. Allerdings gab es eine Reihe von Änderungen - auch inkompatible Änderungen zwischen den von Dir angegebenen Versionen.

Ohne Codeausschnitte kann man Dir nicht weiterhelfen. Welche Fehlermeldungen erhältst Du überhaupt?

Freundliche Grüße

Vinzenz

Hi Vinzenz,

hier ist einmal ein Skript. Und leider erhalte ich keine Fehlermeldungen sondern es werden einfach nur die 80 Einheiten übertragen und die anderen nicht.

require('includes/application_top.php'); if($_SESSION['zugriff']==2) tep_redirect(tep_href_link('index.php'));

/***************************************************************************************  Variablen für das Skript  $_GET   - bestellung  Id der Bestellung ***************************************************************************************/   $unset_backgroundcolor = 1;   if(!isset($_GET['bestellung']) || !is_numeric($_GET['bestellung'])){    tep_redirect(tep_href_link('index.php'));   }

/*************************************************************************************** SELECT-Abfrage definieren ***************************************************************************************/

/*************************************************************************************** Aktions-Handling ***************************************************************************************/   if(isset($_GET['doit'])) {    $our_key = 'linke_ordner';    foreach($POST as $key => $value)if(substr($key,0,3)=='bt'){     $our_key = substr($key, 3);     if(($p = strrpos($our_key, '#'))!==false){      $id = substr($our_key, $p+1);      $our_key = substr($our_key, 0, $p);     }    }

switch($our_key){     case 'delete':         //Bestellposition         $positionen_query = tep_db_query('select bp.* from products_entity pe, bestellpositionen bp                                           where pe.entity_id='.$id.' and pe.bestellposition=bp.position_id');         $positionen = tep_db_fetch_array($positionen_query);

//Löschen         $entity_query = tep_db_query('select * from products_entity where entity_id='.$id);         $entity = tep_db_fetch_array($entity_query);         if(is_null($entity['seriennummer']) && $entity['status']=='1')          tep_db_query('delete from products_entity where entity_id='.$id.' limit 1');

//Status         $anzahl_entities_query = tep_db_query('select count(*)as anzahl from products_entity where bestellposition='.$positionen['position_id']);         $anzahl_entities = tep_db_fetch_array($anzahl_entities_query);         $status = '1';         if($anzahl_entities['anzahl']<$positionen['anzahl'])$status='4'; //Teillieferung         if($anzahl_entities['anzahl']>=$positionen['anzahl'])$status='2';  //komplett         if($anzahl_entities['anzahl']=='0')$status='1';  //offen         tep_db_query('update bestellpositionen set bestellstatus='.$status.' where position_id='.$positionen['position_id']);

$positionen_query = tep_db_query('select * from bestellpositionen where position_id='.$positionen['position_id']);         while($positionen = tep_db_fetch_array($positionen_query)){          tep_update_products_attribute($positionen['attributes_id']);         }      break;

case 'save':          foreach($POST['cf_seriennummer'] as $id){           $seriennummer = array(array('seriennummer', $POST['tf_seriennummer'.$id], 'string', '', 'NULL', '', ''));           $endung = substr($id, -1);           if($endung=='1'){ //schon vorhandene Entities            $entity_id = substr($id, 0, -2);            //passende Bestellposition ermitteln            $positionen_query = tep_db_query('select bp.* from products_entity pe, bestellpositionen bp                                              where pe.entity_id='.$entity_id.' and pe.bestellposition=bp.position_id');            $positionen = tep_db_fetch_array($positionen_query);            tep_db_query(tep_db_perform('products_entity', 'update', $seriennummer, ' where entity_id='.$entity_id));           } else { //neu eingescannte            $position_id = substr($id, 0, strpos($id, ''));            $positionen_query = tep_db_query('select bp.* from bestellpositionen bp                                              where bp.position_id='.$position_id);            $positionen = tep_db_fetch_array($positionen_query);            $seriennummer[]= array('attributes_id', $positionen['attributes_id'], 'int', '', '', '', '');            $seriennummer[]= array('name', $positionen['products_name'], 'string', '', 'NULL', '', '');            $seriennummer[]= array('bestellposition', $positionen['position_id'], 'int', '', '', '', '');            tep_db_query(tep_db_perform('products_entity', 'insert', $seriennummer, ''));

//            //            //runterzählen des potentiellen Lagerbestands            //            tep_db_query(tep_db_perform('products_attributes',             'update',             array(array('potentiell', '(potentiell-1)', 'int', '', 'NULL', '', '')),             'where potentiell>0 and attributes_id='.$positionen['attributes_id']));

}

//Status der Position           $anzahl_entities_query = tep_db_query('select count(*)as anzahl from products_entity where bestellposition='.$positionen['position_id']);           $anzahl_entities = tep_db_fetch_array($anzahl_entities_query);           $status = '1';           if($anzahl_entities['anzahl']<$positionen['anzahl'])$status='4'; //Teillieferung           if($anzahl_entities['anzahl']>=$positionen['anzahl'])$status='2';  //komplett           if($anzahl_entities['anzahl']=='0')$status='1';  //offen           tep_db_query('update bestellpositionen set bestellstatus='.$status.' where position_id='.$positionen['position_id']);          }

$positionen_query = tep_db_query('select * from bestellpositionen where bestell_id='.$_GET['bestellung']);          while($positionen = tep_db_fetch_array($positionen_query)){           tep_update_products_attribute($positionen['attributes_id']);          }

break;    }    tep_redirect(tep_href_link(FILENAME, tep_get_parameter('', 'doit')));   }   $pos = 0; ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title>ecpon-Wareneingang</title> <link rel="stylesheet" type="text/css" href="includes/stylesheet.css"> </head> <Script language="JavaScript"> var automatisch = true; var jump = true; var klick = false; var theid = '';

function auto_weiter(){     if(document.getElementsByName('cf_automatisch')[0].checked == true){      automatisch = true;     } else {      automatisch = false;     }   }

function weiter_springen(id){    if(automatisch==true)if(jump==true){     theid = id;     document.getElementById(id).focus;     window.setTimeout("do_jump()",1500);     jump = false;    }   }

function do_jump(){    jump = true;    document.getElementById(theid).focus();   } </Script> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //-->

<!-- body //--> <?php echo tep_draw_form('party', FILENAME, tep_get_parameter('doit=save')); ?> <table border="0" width="100%" cellspacing="2" cellpadding="2">   <tr> <!-- left_navigation //--> <!-- left_navigation_eof //-->

<!-- body_text //-->    <td width="100%" valign="top"> <?php /*************************************************************************************** Kopfzeile ***************************************************************************************/ ?>     <table width="100%" border="0" cellspacing="0" cellpadding="0" class="header">      <tr align="center" height="35">       <td style="border-bottom: 1px solid #C0C0C0; padding-left: 3px;" width="70%" valign="middle">        <font size="3"><b>         Wareneingang für die Bestellung <?php echo $_GET['bestellung']; ?>        </b></font>        &nbsp;&nbsp;<?php echo tep_draw_checkbox_field('cf_automatisch', $value['id'], true, '', 'onClick="auto_weiter();"'); ?>         automatisch weiter       </td>      </tr>     </table>     <table width="100%" border="0" cellspacing="0" cellpadding="0">     <?php      $positionen_query = tep_db_query('select * from bestellpositionen where bestell_id='.$GET['bestellung']);      while($positionen = tep_db_fetch_array($positionen_query)){     ?>       <tr height="30" bgcolor="#CACAD6">        <th>         <?php echo $positionen['products_name']; ?>        </th>        <th style="border-left: 1px solid #AEAEAE; padding-left: 3px;">         <?php echo 'Anzahl: '.$positionen['anzahl']; ?>        </th>       </tr>      <?php      //schon vorhandene Entities aus der db holen      $product = array();      $entity_query = tep_db_query('select * from products_entity where                                    bestellposition='.$positionen['position_id'].' and attributes_id='.$positionen['attributes_id'].'                                    order by entity_id');      while($entity = tep_db_fetch_array($entity_query)){       $product[]= array('id' => $entity['entity_id'].'#1', 'seriennummer' => $entity['seriennummer'], 'indb' => '1');      }      //ist die Anzahl in der Bestellposition größer als die Anzahl der entities in der db      $x = 0;      while(count($product)<$positionen['anzahl']){       $x++;       $product[]= array('id' => $positionen['position_id'].''.$x.'#0',                         'seriennummer' => '', 'indb' => '0');      }

//Ausgabe      foreach($product as $id => $value){      $pos++;      ?>      <tr height="1" bgcolor="#AEAEAE"><td colspan="2"></td></tr>      <tr class="boxLight" height="30">       <td align="left" width="45%">        <?php echo tep_draw_checkbox_field('cf_seriennummer[]', $value['id'], true); ?>        <?php echo $positionen['products_name']; ?>       </td>       <td align="left" style="border-left: 1px solid #AEAEAE; padding-left: 3px;">        <?php echo tep_draw_input_field('tf_seriennummer_'.$value['id'], $value['seriennummer'], 'size="50" style="font-size: 12pt" onkeyup="weiter_springen('pos_'.($pos+1).'')" id="pos_'.$pos.'"'); ?>        &nbsp;        <?php if($value['indb']=='1'){         echo tep_image(DIR_WS_ICONS.'1.gif', 'Stück bereits in der Datenbank').'&nbsp;';         echo tep_draw_input_field('bt_delete#'.substr($value['id'], 0, -2), 'Löschen', 'onmousedown="klick=true;" onClick="return klick;"', false, 'submit');        }  ?>       </td>      </tr>      <?php } } ?>      <tr height="40" class="navigationDark">       <td width="30%" align="center">        <?php echo tep_draw_input_field('bt_save', 'in Datenbank speichern', 'onmousedown="klick=true;" onClick="return klick;"', false, 'submit'); ?>       </td>       <td width="70%">        <?php echo tep_draw_input_field('bt_cancel', 'Abbrechen', 'onmousedown="klick=true;" onClick="return klick;"', false, 'submit'); ?>       </td>      </tr>     </table>    </td>   </tr>

</table> </form> <!-- body_eof //-->

<!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>