Errore nell'aggiornamento news

  • Creatore Discussione Creatore Discussione Mr_S
  • Data di inizio Data di inizio

Mr_S

Nuovo Utente
28 Mag 2010
3
0
0
Ciao!
Ho un problema abbastanza grosso e per me, webmaster alle prime armi col php, anche inusuale:
In un sito da cui eredito la gestione, curo solo la parte html e qualche cosa di applet java e fino ad oggi non ci sono stati problemi, ma pultroppo effettuando un aggiornamento del tutto ordinario dopo cioè aver sostituito la pagina delle news (facendo solo una piccola aggiunta che dopo vari controlli mi sono accertato che non influiva assolutamente sulla parte di codice php esistente) mi sono accorto che nella pagina che il precedente webmaster aveva costruito per inserire le news e le immagini relative, dà errore ogni volta che si tenta di salvare gli aggiornamenti.
Non solo, i campi di scritte con immagini che c'erano prima sono sparite completamente...
Mi escono questi avvisi, prima di caricare le immagini:

PHP Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\siti\xxx.it\xxx.it\cambio\index_foto.php on line 25

e dopo aver premuto il pulsante per salvare le modifiche:

PHP Fatal error: Call to undefined function error_page() in D:\siti\xxx.it\xxx.it\cambio\ok_foto_index.php on line 95

Questa è la pagina relativa al primo avviso (mai toccata prima e dopo l'errore):

PHP:
<?php

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

header('Cache-Control: no-store, no-cache, must-revalidate');

header('Cache-Control: post-check=0, pre-check=0', FALSE);

header('Pragma: no-cache');

?><head>
  <link rel="stylesheet" type="text/css" href="../css/style.css" />
  <title>Il sito</title>
</head>
<?php

$dbh=mysql_connect ("195.128.234.xxx", "xxx", "xxx") or die ('Connessione fallita per questo errore: ' . mysql_error());
mysql_select_db ("Sql1675ro");

$posi=$HTTP_GET_VARS['posi'];
$ann=$HTTP_GET_VARS['ann'];

# select advert data
$result = mysql_query("SELECT $posi FROM indice WHERE ID=1");
$sql_array7 = mysql_fetch_object($result);
$foto = $sql_array7->$posi;
$percorso = "../imgpg/".$foto;
$fotogrande = "../imgpg/".$foto;
?>

<table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td height="124" background="../img/header_bg2.jpg">
    <div id="header-title2" title="il sito">Il sito</div></td>
        </tr>
        <tr>
          <td>    <div id="header"><font color="#333333" size="4" face="Arial, Helvetica, sans-serif">Modifica
  Foto Index</font><font color="#FF6600" size="4" face="Arial, Helvetica, sans-serif">
  IL SITO <font color="#333333">ANNUNCIO: <?php print("$ann"); ?></font></font>
    </div>
            <p><font color="#333333" face="Arial, Helvetica, sans-serif"><a href="cambioindex.php"><font color="#FF6600">Lista
    Annunci</font></a>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;     Torna alla <a href="index.html"><font color="#FF6600">pagina iniziale</font></a></font></p>
</td>
        </tr>
</table>

    <div align="left">
     <form enctype='multipart/form-data' method='post' action='ok_foto_index.php?<?php print("posi=$posi"); ?>' name="FrmPicture">
    <table border="0" align="center">
      <tr>
        <td height="40" colspan="2"><font color="#333333" size="2" face="Arial, Helvetica, sans-serif">
              <?php if((strlen($foto)>0)){
              print("<a href='elimina_photo.php?posi=$posi'><font color='#FF0000'>ELIMINA FOTO</font></a>");
              }
              ?>    
        </font></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td width="87%" height="40">
              <?php if((strlen($foto)>0)){
              print("<a href='$fotogrande' target='_blank'><img border='0' src='$percorso'></a>");
              }
              ?>        </td>
      </tr>
      <tr>
        <td width="13%"><strong><font color="#669966" face="Arial, Helvetica, sans-serif">Foto</font></strong></td>
        <td height="40"> <input type='file' name='metti1' size='50'></td>
      </tr>
      <tr valign="bottom">
        <td height="50" colspan="2"> <div align="center"> </div>
          <div align="center">
            <input name="Submit" type="submit" class="Stile3" value="salva" />
          </div></td>
      </tr>
    </table>
    <p>&nbsp; </p>
    </form>
   
      
  <p align="center"><font color="#333333" face="Arial, Helvetica, sans-serif"><a href="cambioindex.php"><font color="#FF6600">Lista
    Annunci</font></a><br>
    <br>
    Torna alla <a href="index.html"><font color="#FF6600">pagina iniziale</font></a></font></p>
  </div>

la riga 25 spero sia questa:

$sql_array7 = mysql_fetch_object($result);

Mentre questa è la pagina dell'ultimo avviso (neanche questa mai toccata prima):

PHP:
<head>
  <link rel="stylesheet" type="text/css" href="../css/style.css" />
  <title>Il sito</title>
</head>
<?php
$dbh=mysql_connect ("195.128.234.xxx", "xxx", "xxx") or die ('Connessione fallita per questo errore: ' . mysql_error());
mysql_select_db ("Sql1675ro");

$posi=$HTTP_GET_VARS['posi'];
$dir = "../imgpg/";

    if (isset($_FILES['metti1'])) {

            if ($_FILES['metti1']['name'] != "") {

                if ($_FILES['metti1']['type'] == "image/pjpeg" || $_FILES['metti1']['type'] == "image/jpeg" || $_FILES['metti1']['type'] == "image/gif") {
                    if ( $_FILES['metti1']['type'] == "image/pjpeg" ) { $extension=".jpg"; }
                    if ( $_FILES['metti1']['type'] == "image/jpeg" ) { $extension=".jpg"; }
                    if ( $_FILES['metti1']['type'] == "image/gif" ) { $extension=".gif"; }

                    $tempusername="grande".$posi;
                    $filename="$tempusername"."$extension";

                    $targetfile=$dir."$filename";
                    $thumbfile=$dir."tb_$filename";

                    copy($_FILES['metti1']['tmp_name'],"$targetfile");
                    
        $dir = "../imgpg";
        $ext = $extension;
        $file="$posi"."$extension";
    
        global $config, $skin;
        
        $fullfile = $dir."/grande".$file;
        
        /* File di destinazione */
        $new_file = $dir."/".$file;
        
        /* Info Immagine originale */
        $info = @getimagesize($fullfile);
        
        $new_width = $info[0];
        $new_height = $info[1];
        
        /* Se l'immagine è + larga dei valori di config.php, riassegno le dimensioni */
        if($new_width > 50)
        {
            $new_width = 50;
            $new_height = ceil($new_width * $info[1] / $info[0]);
        }
        
        /* Se l'immagine è + alta dei valori di config.php, riassegno le dimensioni */
        if($new_height > 50)
        {
            $new_height = 50;
            $new_width = ceil($new_height * $info[0] / $info[1]);
        }
        
        switch($ext) {
        case ".gif": $source = imagecreatefromgif($fullfile); $out = 1; break;
        case ".png": $source = imagecreatefrompng($fullfile); $out = 2; break;
        case ".jpg": $source = imagecreatefromjpeg($fullfile); $out = 3; break;
        case ".jpeg": $source = imagecreatefromjpeg($fullfile); $out = 4; break;
        default: $source = imagecreatefromjpeg($fullfile); $out = 3;
        }
        
        /* Creo un immagine delle dimensioni desiderate*/
        $thumb = imagecreatetruecolor($new_width, $new_height);
        
        /* Se è un file gif setto un background "trasparente" */
        if($ext == "gif" || $ext == "png")
        {
            sscanf($skin->transparent_thumb, "%2x%2x%2x", $red, $green, $blue);
            $transparent = imagecolorallocate($thumb, $red, $green, $blue);
            @imagefill($thumb, 0, 0, $transparent);
        }
        
        @imagecopyresampled($thumb,$source,0,0,0,0,$new_width,$new_height,imagesx($source),imagesy($source));
        
        switch($out){
        case 1: function_exists('imagegif') ? @imagegif($thumb, $new_file, 80): @imagepng($thumb, $new_file, 80); break;
        case 2: @imagepng($thumb, $new_file, 80); break;
        case 3: @imagejpeg($thumb, $new_file, 80); break;
        case 4: @imagejpeg($thumb, $new_file, 80); break;
        default: @imagejpeg($thumb, $new_file, 80);
        }
        
        imagedestroy($source);
                    $query="UPDATE indice SET $posi ='$file' WHERE ID=1";
                    $result=mysql_query($query) or die(mysql_error());                    
                    sleep(1);

                } else {
                    error_page("Le foto devono essere in '<span class='errore'>formato JPG oppure GIF</span>'.","User Error");
                }
            }
        }    
?>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td height="124" background="../img/header_bg2.jpg">
    <div id="header-title2" title="il sito">Il sito</div></td>
        </tr>
        <tr>
          <td>    <div id="header">
    </div>
            <p>&nbsp;</p>
            <p><font color="#333333" face="Arial, Helvetica, sans-serif">Foto inserita</font><font face="Arial, Helvetica, sans-serif">
              <a href="cambioindex.php"><font color="#FF6600">torna alla lista degli Annunci</font>            </a> </font>
                      </p></td>
        </tr>
</table>

Alla linea 95 si legge:

error_page("Le foto devono essere in '<span class='errore'>formato JPG oppure GIF</span>'.","User Error");

A parte l'avviso che non si capisce bene (le immagini caricate sono tutte jpg), questo non spiega la scomparsa degli aggiornamenti precedenti...

Ho già provato a postare il problema in altri forum senza trovare soluzioni :( se trovo qualche buon'anima disposta almeno a dargli un'occhiata gli sarei infinitamente grato!
Non sò se ho tralasciato di postare qualcosa, se serve altro fatemi sapere.
 
Ciao, scusa se te lo chiedo, ma questo sito allora non ha mai funzionato bene, perchè se tu dici che non sei intervenuto sul codice, tutto ciò mi a credere questo
Ciao
 
Ciao minatore,
mi piacerebbe dirti che è così ma pultroppo ha sempre funzionato a meraviglia fino a quel momento ed è qui che stà il grosso del problema perchè non sò proprio dove andare a mettere mano! Che voi sappiate, php è solito fare questi scherzi? E' possibile che il problema vada cercato altrove, ad esempio nel database del server di hosting? Grazie per qualsiasi aiuto.
 
Ma di preciso in cosa è consistito l'aggiornamento?
Ad occhio, ma da perfetto ignorante in materia, il prob è che si son sballati i campi del db

PHP:
$result = mysql_query("SELECT $posi FROM indice WHERE ID=1"); 
$sql_array7 = mysql_fetch_object($result);

per me (ma ripeto prendi con le pinze quello che dico perchè ho iniziato da 3 giorni contati) il prob sta in $result che effettua una query, se i campi con l'aggiornamento si sono sballati, è normale che ti restituisca l'errore e da questo poi potrebbero venire gli altri.

Non hai modo di tornare allo stato pre-aggiornamento e poi testare in locale per vedere cosa avviene?
 
L'aggiornameto consisteva nell'aggiungere un link e delle parole chiave, ma nella pagina che ho postato non ho mai modificato nulla!
Ho già provato a ripristinare i file di backup ma niente :confused: .
Non mi perdo d'animo un motivo ci sarà, no??
 

Discussioni simili